From ded2e1db86e600c4ed891910208d7a4d89548241 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Tue, 17 Oct 2023 15:49:19 +0200 Subject: [PATCH] make review prompt remote configurable --- Habitica/res/xml/remote_config_defaults.xml | 4 ++++ .../habitrpg/android/habitica/helpers/AppConfigManager.kt | 4 ++++ .../com/habitrpg/android/habitica/helpers/ReviewManager.kt | 5 ++--- .../java/com/habitrpg/android/habitica/modules/AppModule.kt | 4 ++-- .../android/habitica/ui/activities/ArmoireActivity.kt | 1 - .../android/habitica/ui/activities/ClassSelectionActivity.kt | 1 - .../android/habitica/ui/activities/FullProfileActivity.kt | 1 - .../habitrpg/android/habitica/ui/activities/MainActivity.kt | 1 - 8 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Habitica/res/xml/remote_config_defaults.xml b/Habitica/res/xml/remote_config_defaults.xml index c252f3d1b..4a8b40c7d 100644 --- a/Habitica/res/xml/remote_config_defaults.xml +++ b/Habitica/res/xml/remote_config_defaults.xml @@ -129,6 +129,10 @@ hideGuilds false + + enableReviewPrompti + false + hideChallenges false diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AppConfigManager.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AppConfigManager.kt index 4cf4a002f..3aa66d09a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AppConfigManager.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AppConfigManager.kt @@ -167,6 +167,10 @@ class AppConfigManager(contentRepository: ContentRepository?) : com.habitrpg.com return remoteConfig.getBoolean("hideChallenges") } + fun enableReviewPrompt(): Boolean { + return remoteConfig.getBoolean("enableReviewPrompt") + } + fun getBirthdayEvent(): WorldStateEvent? { val events = ((worldState?.events as? List) ?: listOf(worldState?.currentEvent)) return events.firstOrNull { it?.eventKey == "birthday10" && it.end?.after(Date()) == true } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/ReviewManager.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/ReviewManager.kt index 2902debb4..496849566 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/ReviewManager.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/ReviewManager.kt @@ -5,7 +5,7 @@ import androidx.appcompat.app.AppCompatActivity import androidx.core.content.edit import com.google.android.play.core.review.ReviewManagerFactory -class ReviewManager(private val context: Context) { +class ReviewManager(context: Context, private val configManager: AppConfigManager) { private val reviewManager = ReviewManagerFactory.create(context) private val sharedPref = context.getSharedPreferences("ReviewPrefs", Context.MODE_PRIVATE) @@ -18,6 +18,7 @@ class ReviewManager(private val context: Context) { } private fun canRequestReview(currentCheckins: Int): Boolean { + if (!configManager.enableReviewPrompt()) return false val initialCheckins = sharedPref.getInt(INITIAL_CHECKINS_KEY, -1) val shouldQueueReview = sharedPref.getBoolean(SHOULD_QUEUE_REVIEW, false) val lastReviewCheckin = sharedPref.getInt(LAST_REVIEW_CHECKIN_KEY, -1) @@ -32,7 +33,6 @@ class ReviewManager(private val context: Context) { if (initialCheckins == -1) { // Store the current checkins as the initial value - sharedPref.edit { putInt(INITIAL_CHECKINS_KEY, currentCheckins) } @@ -87,4 +87,3 @@ class ReviewManager(private val context: Context) { } } } - diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/AppModule.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/AppModule.kt index f415addb4..61321766c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/AppModule.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/AppModule.kt @@ -103,7 +103,7 @@ class AppModule { } @Provides - fun providesReviewManager(@ApplicationContext context: Context): ReviewManager { - return ReviewManager(context) + fun providesReviewManager(@ApplicationContext context: Context, configManager: AppConfigManager): ReviewManager { + return ReviewManager(context, configManager) } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt index f4ea240c2..d6abcc8bb 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt @@ -73,7 +73,6 @@ class ArmoireActivity : BaseActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - reviewManager = ReviewManager(this) binding.goldView.currency = "gold" binding.goldView.animationDuration = 1000 diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ClassSelectionActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ClassSelectionActivity.kt index 569874164..2c42f7b15 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ClassSelectionActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ClassSelectionActivity.kt @@ -79,7 +79,6 @@ class ClassSelectionActivity : BaseActivity() { setSupportActionBar(binding.toolbar) supportActionBar?.setDisplayHomeAsUpEnabled(true) supportActionBar?.setDisplayShowHomeEnabled(true) - reviewManager = ReviewManager(this) val args = navArgs().value isClassSelected = args.isClassSelected diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt index 0e3c598d5..99b477d37 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt @@ -104,7 +104,6 @@ class FullProfileActivity : BaseActivity() { if (userID.isEmpty()) { userID = intent?.data?.path?.removePrefix("/profile/") ?: "" } - reviewManager = ReviewManager(this) setTitle(R.string.profile_loading_data) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt index a9fa504f2..030f735ed 100755 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt @@ -216,7 +216,6 @@ open class MainActivity : BaseActivity(), SnackbarActivity { launchTrace?.start() super.onCreate(savedInstanceState) DataBindingUtils.configManager = appConfigManager - reviewManager = ReviewManager(this) if (!viewModel.isAuthenticated) { val intent = Intent(this, IntroActivity::class.java)