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)