diff --git a/app/src/main/java/com/geeksville/mesh/MainActivity.kt b/app/src/main/java/com/geeksville/mesh/MainActivity.kt index cf2624caa..2c7ad328c 100644 --- a/app/src/main/java/com/geeksville/mesh/MainActivity.kt +++ b/app/src/main/java/com/geeksville/mesh/MainActivity.kt @@ -332,25 +332,28 @@ class MainActivity : AppCompatActivity(), Logging, /// Ask user to rate in play store private fun askToRate() { - AppRate.with(this) - .setInstallDays(10.toByte()) // default is 10, 0 means install day, 10 means app is launched 10 or more days later than installation - .setLaunchTimes(10.toByte()) // default is 10, 3 means app is launched 3 or more times - .setRemindInterval(1.toByte()) // default is 1, 1 means app is launched 1 or more days after neutral button clicked - .setRemindLaunchesNumber(1.toByte()) // default is 0, 1 means app is launched 1 or more times after neutral button clicked - .monitor() // Monitors the app launch times + exceptionReporter { // Got one IllegalArgumentException from inside this lib, but we don't want to crash our app because of bugs in this optional feature + + AppRate.with(this) + .setInstallDays(10.toByte()) // default is 10, 0 means install day, 10 means app is launched 10 or more days later than installation + .setLaunchTimes(10.toByte()) // default is 10, 3 means app is launched 3 or more times + .setRemindInterval(1.toByte()) // default is 1, 1 means app is launched 1 or more days after neutral button clicked + .setRemindLaunchesNumber(1.toByte()) // default is 0, 1 means app is launched 1 or more times after neutral button clicked + .monitor() // Monitors the app launch times - // Only ask to rate if the user has a suitable store - if (AppRate.with(this).storeType == StoreType.GOOGLEPLAY) { // Checks that current app store type from library options is StoreType.GOOGLEPLAY - if (GoogleApiAvailability.getInstance() - .isGooglePlayServicesAvailable(this) != ConnectionResult.SERVICE_MISSING - ) { // Checks that Google Play is available - AppRate.showRateDialogIfMeetsConditions(this) // Shows the Rate Dialog when conditions are met + // Only ask to rate if the user has a suitable store + if (AppRate.with(this).storeType == StoreType.GOOGLEPLAY) { // Checks that current app store type from library options is StoreType.GOOGLEPLAY + if (GoogleApiAvailability.getInstance() + .isGooglePlayServicesAvailable(this) != ConnectionResult.SERVICE_MISSING + ) { // Checks that Google Play is available + AppRate.showRateDialogIfMeetsConditions(this) // Shows the Rate Dialog when conditions are met - // Force the dialog - for testing - // AppRate.with(this).showRateDialog(this) + // Force the dialog - for testing + // AppRate.with(this).showRateDialog(this) + } + } else { + AppRate.showRateDialogIfMeetsConditions(this); // Shows the Rate Dialog when conditions are met } - } else { - AppRate.showRateDialogIfMeetsConditions(this); // Shows the Rate Dialog when conditions are met } }