diff --git a/app/src/main/java/org/mozilla/fenix/components/Components.kt b/app/src/main/java/org/mozilla/fenix/components/Components.kt index 031b61e74..c451185f9 100644 --- a/app/src/main/java/org/mozilla/fenix/components/Components.kt +++ b/app/src/main/java/org/mozilla/fenix/components/Components.kt @@ -8,6 +8,7 @@ import android.app.Application import android.content.Context import android.content.Intent import androidx.core.net.toUri +import com.google.android.play.core.review.ReviewManagerFactory import mozilla.components.feature.addons.AddonManager import mozilla.components.feature.addons.amo.AddonCollectionProvider import mozilla.components.feature.addons.migration.DefaultSupportedAddonsChecker @@ -154,8 +155,8 @@ class Components(private val context: Context) { val reviewPromptController by lazyMonitored { ReviewPromptController( - context, - FenixReviewSettings(settings) + manager = ReviewManagerFactory.create(context), + reviewSettings = FenixReviewSettings(settings) ) } diff --git a/app/src/main/java/org/mozilla/fenix/components/ReviewPromptController.kt b/app/src/main/java/org/mozilla/fenix/components/ReviewPromptController.kt index 19b1f6ec3..2e8c185be 100644 --- a/app/src/main/java/org/mozilla/fenix/components/ReviewPromptController.kt +++ b/app/src/main/java/org/mozilla/fenix/components/ReviewPromptController.kt @@ -5,9 +5,8 @@ package org.mozilla.fenix.components import android.app.Activity -import android.content.Context import androidx.annotation.VisibleForTesting -import com.google.android.play.core.review.ReviewManagerFactory +import com.google.android.play.core.review.ReviewManager import kotlinx.coroutines.Dispatchers.Main import kotlinx.coroutines.withContext import org.mozilla.fenix.utils.Settings @@ -41,11 +40,10 @@ class FenixReviewSettings( * Controls the Review Prompt behavior. */ class ReviewPromptController( - private val context: Context, + private val manager: ReviewManager, private val reviewSettings: ReviewSettings, private val timeNowInMillis: () -> Long = { System.currentTimeMillis() }, private val tryPromptReview: suspend (Activity) -> Unit = { activity -> - val manager = ReviewManagerFactory.create(context) val flow = manager.requestReviewFlow() withContext(Main) { diff --git a/app/src/test/java/org/mozilla/fenix/components/ReviewPromptControllerTest.kt b/app/src/test/java/org/mozilla/fenix/components/ReviewPromptControllerTest.kt index 53e62f2f0..5668fa4b6 100644 --- a/app/src/test/java/org/mozilla/fenix/components/ReviewPromptControllerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/components/ReviewPromptControllerTest.kt @@ -4,6 +4,8 @@ package org.mozilla.fenix.components +import com.google.android.play.core.review.ReviewManager +import com.google.android.play.core.review.ReviewManagerFactory import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.runBlockingTest import mozilla.components.support.test.robolectric.testContext @@ -11,6 +13,7 @@ import org.junit.Test import org.junit.Assert.assertEquals import org.junit.Assert.assertTrue import org.junit.Assert.assertFalse +import org.junit.Before import org.junit.runner.RunWith import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.helpers.FenixRobolectricTestRunner @@ -27,6 +30,14 @@ class TestReviewSettings( @ExperimentalCoroutinesApi @RunWith(FenixRobolectricTestRunner::class) class ReviewPromptControllerTest { + + private lateinit var reviewManager: ReviewManager + + @Before + fun setUp() { + reviewManager = ReviewManagerFactory.create(testContext) + } + @Test fun promptReviewDoesNotSetMillis() = runBlockingTest { var promptWasCalled = false @@ -37,7 +48,7 @@ class ReviewPromptControllerTest { ) val controller = ReviewPromptController( - testContext, + reviewManager, settings, { 100L }, { promptWasCalled = true } @@ -60,7 +71,7 @@ class ReviewPromptControllerTest { ) val controller = ReviewPromptController( - testContext, + reviewManager, settings, { 100L }, { promptWasCalled = true } @@ -82,7 +93,7 @@ class ReviewPromptControllerTest { ) val controller = ReviewPromptController( - testContext, + reviewManager, settings, { 100L }, { promptWasCalled = true } @@ -102,7 +113,7 @@ class ReviewPromptControllerTest { ) val controller = ReviewPromptController( - testContext, + reviewManager, settings, { 100L }, { promptWasCalled = true } @@ -126,7 +137,7 @@ class ReviewPromptControllerTest { ) val controller = ReviewPromptController( - testContext, + reviewManager, settings, { 0L } ) @@ -149,7 +160,7 @@ class ReviewPromptControllerTest { ) val controller = ReviewPromptController( - testContext, + reviewManager, settings, { TEST_TIME_NOW } )