Giter Club home page Giter Club logo

androidrate's People

Contributors

alexanderls avatar codacy-badger avatar hafizahmmed avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

androidrate's Issues

Custom dialog options not working on different locales

Hello, I tried using the custom dialog strings as mentioned and they work fine on the default locale, but if I change them to one of the supported languages it reverts back to the default text.
Any clue on what to do?

IllegalArgumentException not attached to window manager

View=DecorView@9cb1f85[HomeActivity] not attached to window manager
android.view.WindowManagerGlobal.findViewLocked (WindowManagerGlobal.java:533)
android.view.WindowManagerGlobal.removeView (WindowManagerGlobal.java:433)
android.view.WindowManagerImpl.removeViewImmediate (WindowManagerImpl.java:124)
android.app.Dialog.dismissDialog (Dialog.java:518)
android.app.Dialog.dismiss (Dialog.java:501)
com.vorlonsoft.android.rate.AppRate.dismissRateDialog (AppRate.java:663)
com.vorlonsoft.android.rate.AppRate.showRateDialog (AppRate.java:628)
com.vorlonsoft.android.rate.AppRate.showRateDialogIfMeetsConditions (AppRate.java:118)
com.....HomeActivity.onCreate (HomeActivity.kt:330)

The above is happening for less than 1% of my users.

Here is my Activity's code:

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        if (isFinishing) {
            return
        }

        // https://github.com/Vorlonsoft/AndroidRate#micro-configuration
        @Suppress("SimplifyBooleanWithConstants")
        AppRate.with(this)
                .setInstallDays(7)
                .setLaunchTimes(10)
                .setRemindInterval(3)
                .setRemindLaunchesNumber(10)
                .setMessage(R.string.pb_rate_dialog_message)
                .setDebug(true && BuildConfig.DEBUG)
                .setOnClickButtonListener { which ->
                    run {
                        PbLog.d(TAG, "AppRate.OnClickButtonListener(which=$which)")
                        val result = when (which.toInt()) {
                            DialogInterface.BUTTON_POSITIVE -> {
                                "RateNow"
                            }
                            DialogInterface.BUTTON_NEUTRAL -> {
                                "Later"
                            }
                            DialogInterface.BUTTON_NEGATIVE -> {
                                "Never"
                            }
                            else -> {
                                "UNKNOWN($which)"
                            }
                        }
                        val phoneModelName = PbPlatformUtils.getDeviceName()
                        hiveManager!!.analyticsManager.appRatePromptButtonClicked(result, phoneModelName)
                    }
                }
                .monitor()
        if (AppRate.with(this).storeType == StoreType.GOOGLEPLAY) {
            if (GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(this) != ConnectionResult.SERVICE_MISSING) {
                AppRate.showRateDialogIfMeetsConditions(this)
            }
        } else {
            AppRate.showRateDialogIfMeetsConditions(this)
        }

        setContentView(R.layout.activity_home)

        ...
    }

dialog error

dialog error when app just back to home, when i open app again dialog error "window manager bad token".
use AppRate.with(this).clearAgreeShowDialog() but nothing change. oh ya apprate.debug(true).
sorry my english very bad. but android rate libarary is awesome

Logo for AndroidRate

Hello,
Good Day, i make a logo icon for your project.Because there is no logo in your project. If you want to use this icon in your project, then comment below, I will give you the source file. And if you want a change, then tell me I will change.

androidrate-01

README images

It seems like the images and gifs in the README aren't showing up. Any other way I can see what the result would look like?

NumberFormatException occuring on startup

It seems like recently we've been getting NumberFormatException errors when starting the app and initializing AndroidRate. I'll need to do further investigation but here's an (obfuscated) stack trace in case someone else bumps into this:

java.lang.RuntimeException: 
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3840)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:4016)
  at android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:85)
  at android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:135)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:95)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2325)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loop (Looper.java:247)
  at android.app.ActivityThread.main (ActivityThread.java:8656)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:602)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1130)
Caused by: java.lang.NumberFormatException: 
  at java.lang.Integer.parseInt (Integer.java:615)
  at java.lang.Short.parseShort (Short.java:118)
  at java.lang.Short.valueOf (Short.java:174)
  at java.lang.Short.valueOf (Short.java:200)
  at com.vorlonsoft.android.rate.h.b (SourceFile:12)
  at com.vorlonsoft.android.rate.a.e (SourceFile:1)
  at com.vorlonsoft.android.rate.a.T (SourceFile:7)
  at com.vorlonsoft.android.rate.a.V (SourceFile:1)
  at com.xxx.xxx.xxx.XXActivity.onCreate (SourceFile:17)
  at android.app.Activity.performCreate (Activity.java:8215)
  at android.app.Activity.performCreate (Activity.java:8199)
  at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1309)
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3813)

Clearing the app data appears to fix it - I assume some dodgy value is being stored by AppRate and re-parsing it causes a crash.

Invalid language code for Greek

The language code for Greek should be el, not gr per the IANA registry. This incorrect language code seems to be causing apps containing this library to fail when uploaded to Google Play.

set365DayPeriodMaxNumberDialogLaunchTimes not honored

I've set the set365DayPeriodMaxNumberDialogLaunchTimes to a value of 3 but noticed when testing and inspecting the shared preferences that the count is only being incremented one time and a user would potentially be shown the dialog every time the remindTimeToWait value is met.

Is there some other property I'm missing to ensure the dialog launch times is incremented every time it's shown?

androiddx api

hallo @AlexanderLS . what causes androidx error in my app ?
and what a function androidx . i can remove it ? thanks

Set OnClickListner To Nigative Button

i add this to onBackPressed when i click back button rating dialog launch all good but i want if you click on "No Thanks" Button dismiss dialog and exit from App

Singleton DialogManager break the library

When we want to show the rate dialog in multiple Activity or in the same activity, if the first activity that call AppRate.showRateDialogIfMeetsConditions(this); is destroyed. The next call will fail with:

java.lang.RuntimeException: Unable to resume activity {xxx/xxx.HomeActivity}: android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@b857bc1 is not valid; is your activity running?
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3454)
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3494)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2757)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1496)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6186)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
     Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@b857bc1 is not valid; is your activity running?
        at android.view.ViewRootImpl.setView(ViewRootImpl.java:679)
        at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:342)
        at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:94)
        at android.app.Dialog.show(Dialog.java:329)
        at com.vorlonsoft.android.rate.AppRate.showRateDialog(AppRate.java:413)
        at com.vorlonsoft.android.rate.AppRate.showRateDialogIfMeetsConditions(AppRate.java:114)
        at xxx.activity.HomeActivity.onResume(HomeActivity.java:411)
        at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1270)
        at android.app.Activity.performResume(Activity.java:6788)
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3431)

The DialogManager Singleton hold the first activity as context and reuse it even it was destroyed.

If you want to keep the singleton, I think the createDialogManager function must check if the singleton context is not destroyed before reuse it.

This issue is linked to #5.
ps: I have tested with the version 1.1.9 and with the latest commit into the master branch.
Thanks,

New logo/icon proposal

Good day sir. I am a graphic designer and i am interested in designing a logo for your good project. I will be doing it as a gift for free. I just need your permission first before I begin my design. Hoping for your positive feedback. Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.