From 6b950ee4a9478f498de08abb37c620eb57e035b0 Mon Sep 17 00:00:00 2001 From: Hafiz Date: Fri, 8 Sep 2023 13:11:22 -0400 Subject: [PATCH] review-manager feedback updates --- .../android/habitica/helpers/ReviewManager.kt | 19 ++++++++++++++----- .../android/habitica/modules/AppModule.kt | 6 ++++++ .../habitica/ui/activities/ArmoireActivity.kt | 9 +++++---- .../ui/activities/ClassSelectionActivity.kt | 9 ++++++--- .../ui/activities/FullProfileActivity.kt | 5 ++++- .../habitica/ui/activities/MainActivity.kt | 4 +++- .../equipment/EquipmentDetailFragment.kt | 4 +++- .../stable/PetDetailRecyclerFragment.kt | 4 +++- 8 files changed, 44 insertions(+), 16 deletions(-) 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 b0d330f3c..2902debb4 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 @@ -2,6 +2,7 @@ package com.habitrpg.android.habitica.helpers import android.content.Context import androidx.appcompat.app.AppCompatActivity +import androidx.core.content.edit import com.google.android.play.core.review.ReviewManagerFactory class ReviewManager(private val context: Context) { @@ -24,13 +25,17 @@ class ReviewManager(private val context: Context) { if (!shouldQueueReview) { // First review request has been made, wait for following request (if any) // to request again in the spirit of asking during a logical break. - sharedPref.edit().putBoolean(SHOULD_QUEUE_REVIEW, true).apply() - return false + sharedPref.edit { + putBoolean(SHOULD_QUEUE_REVIEW, true) + } } if (initialCheckins == -1) { // Store the current checkins as the initial value - sharedPref.edit().putInt(INITIAL_CHECKINS_KEY, currentCheckins).apply() + + sharedPref.edit { + putInt(INITIAL_CHECKINS_KEY, currentCheckins) + } return true } @@ -70,12 +75,16 @@ class ReviewManager(private val context: Context) { } // Save the current checkins after a successful review request - sharedPref.edit().putInt(LAST_REVIEW_CHECKIN_KEY, currentCheckins).apply() + sharedPref.edit { + putInt(LAST_REVIEW_CHECKIN_KEY, currentCheckins) + } } private fun incrementReviewRequestCount() { val currentCount = sharedPref.getInt(REVIEW_REQUEST_COUNT_KEY, 0) - sharedPref.edit().putInt(REVIEW_REQUEST_COUNT_KEY, currentCount + 1).apply() + sharedPref.edit { + putInt(REVIEW_REQUEST_COUNT_KEY, currentCount + 1) + } } } 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 45fcb8d75..f415addb4 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 @@ -8,6 +8,7 @@ import com.habitrpg.android.habitica.BuildConfig import com.habitrpg.android.habitica.data.ApiClient import com.habitrpg.android.habitica.data.ContentRepository import com.habitrpg.android.habitica.helpers.AppConfigManager +import com.habitrpg.android.habitica.helpers.ReviewManager import com.habitrpg.android.habitica.helpers.SoundFileLoader import com.habitrpg.android.habitica.helpers.notifications.PushNotificationManager import com.habitrpg.common.habitica.helpers.KeyHelper @@ -100,4 +101,9 @@ class AppModule { fun providesRemoteConfigManager(contentRepository: ContentRepository?): AppConfigManager { return AppConfigManager(contentRepository) } + + @Provides + fun providesReviewManager(@ApplicationContext context: Context): ReviewManager { + return ReviewManager(context) + } } 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 175a5d297..33c44d11a 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 @@ -51,7 +51,9 @@ class ArmoireActivity : BaseActivity() { @Inject lateinit var userViewModel: MainUserViewModel - private lateinit var reviewManager: ReviewManager + + @Inject + lateinit var reviewManager: ReviewManager override fun getLayoutResId(): Int = R.layout.activity_armoire @@ -153,9 +155,8 @@ class ArmoireActivity : BaseActivity() { if (args.type == "gear") { userViewModel.user.observeOnce(this) { user -> - val totalCheckIns = user?.loginIncentives - if (totalCheckIns != null) { - reviewManager.requestReview(this@ArmoireActivity, totalCheckIns) + user?.loginIncentives?.let { totalCheckins -> + reviewManager.requestReview(this@ArmoireActivity, totalCheckins) } } } 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 ae5d3f8cc..569874164 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 @@ -36,7 +36,9 @@ class ClassSelectionActivity : BaseActivity() { @Inject lateinit var userViewModel: MainUserViewModel - private lateinit var reviewManager: ReviewManager + + @Inject + lateinit var reviewManager: ReviewManager private lateinit var binding: ActivityClassSelectionBinding private var currentClass: String? = null @@ -303,8 +305,9 @@ class ClassSelectionActivity : BaseActivity() { private fun checkForReviewPromptAfterClassSelection() { userViewModel.user.observeOnce(this) { user -> - val totalCheckIns = user?.loginIncentives ?: return@observeOnce - reviewManager.requestReview(this, totalCheckIns) + user?.loginIncentives?.let { totalCheckins -> + reviewManager.requestReview(this, totalCheckins) + } } } } 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 e6cd01f6a..7a4065299 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 @@ -79,6 +79,9 @@ class FullProfileActivity : BaseActivity() { @Inject lateinit var sharedPrefs: SharedPreferences + @Inject + lateinit var reviewManager: ReviewManager + private var userID = "" private var username: String? = null private var userDisplayName: String? = null @@ -90,7 +93,7 @@ class FullProfileActivity : BaseActivity() { private val attributeRows = ArrayList() private val dateFormatter = SimpleDateFormat.getDateInstance() private lateinit var binding: ActivityFullProfileBinding - private lateinit var reviewManager: ReviewManager + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) 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 ed6948bbf..d93f9a4cc 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 @@ -135,7 +135,9 @@ open class MainActivity : BaseActivity(), SnackbarActivity { @Inject internal lateinit var appConfigManager: AppConfigManager - private lateinit var reviewManager: ReviewManager + + @Inject + lateinit var reviewManager: ReviewManager lateinit var binding: ActivityMainBinding diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentDetailFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentDetailFragment.kt index cfe977d65..9b6ccab9d 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentDetailFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentDetailFragment.kt @@ -36,7 +36,9 @@ class EquipmentDetailFragment : override var binding: FragmentRefreshRecyclerviewBinding? = null @Inject lateinit var userViewModel: MainUserViewModel - private lateinit var reviewManager: ReviewManager + + @Inject + lateinit var reviewManager: ReviewManager override fun createBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentRefreshRecyclerviewBinding { return FragmentRefreshRecyclerviewBinding.inflate(inflater, container, false) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/PetDetailRecyclerFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/PetDetailRecyclerFragment.kt index 0ec4f427b..35ab6e88a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/PetDetailRecyclerFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/stable/PetDetailRecyclerFragment.kt @@ -52,7 +52,9 @@ class PetDetailRecyclerFragment : private var animalGroup: String? = null private var animalColor: String? = null internal var layoutManager: androidx.recyclerview.widget.GridLayoutManager? = null - private lateinit var reviewManager: ReviewManager + + @Inject + lateinit var reviewManager: ReviewManager override var binding: FragmentRefreshRecyclerviewBinding? = null