tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 3c8218f11dde21dbc4af7144a842df6f837f5cae
parent 092473b3a40cac386cda52db7369439b2276f38a
Author: Andrey Zinovyev <azinovyev@mozilla.com>
Date:   Thu, 27 Nov 2025 17:16:43 +0000

Bug 1992720 - Remove (activity as HomeActivity) casts in PlayStoreReviewPromptController r=android-reviewers,jonalmeida

Differential Revision: https://phabricator.services.mozilla.com/D267606

Diffstat:
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/PlayStoreReviewPromptController.kt | 19+++++++++++++++----
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/UseCases.kt | 2+-
2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/PlayStoreReviewPromptController.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/PlayStoreReviewPromptController.kt @@ -9,19 +9,21 @@ import android.content.ActivityNotFoundException import android.content.Intent import androidx.annotation.VisibleForTesting import androidx.core.net.toUri +import androidx.fragment.app.FragmentActivity +import androidx.navigation.fragment.NavHostFragment import com.google.android.play.core.review.ReviewException import com.google.android.play.core.review.ReviewInfo import com.google.android.play.core.review.ReviewManager import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import mozilla.components.support.base.log.logger.Logger -import org.mozilla.fenix.BrowserDirection import org.mozilla.fenix.GleanMetrics.ReviewPrompt -import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.components.ReviewPromptAttemptResult.Displayed import org.mozilla.fenix.components.ReviewPromptAttemptResult.Error import org.mozilla.fenix.components.ReviewPromptAttemptResult.NotDisplayed import org.mozilla.fenix.components.ReviewPromptAttemptResult.Unknown +import org.mozilla.fenix.ext.components +import org.mozilla.fenix.ext.openToBrowser import org.mozilla.fenix.settings.SupportUtils import java.text.SimpleDateFormat import java.util.Date @@ -101,11 +103,20 @@ class PlayStoreReviewPromptController( } catch (e: ActivityNotFoundException) { // Device without the play store installed. // Opening the play store website. - (activity as HomeActivity).openToBrowserAndLoad( + + activity.applicationContext.components.useCases.fenixBrowserUseCases.loadUrlOrSearch( searchTermOrURL = SupportUtils.FENIX_PLAY_STORE_URL, newTab = true, - from = BrowserDirection.FromGlobal, ) + + // https://bugzilla.mozilla.org/show_bug.cgi?id=1997148 + (activity as? FragmentActivity) + ?.supportFragmentManager + ?.fragments + ?.firstOrNull { it is NavHostFragment } + ?.let { (it as NavHostFragment).navController } + ?.openToBrowser() + logger.warn("Failed to launch play store review flow due to: $e.") } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/UseCases.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/UseCases.kt @@ -132,12 +132,12 @@ class UseCases( val fenixBrowserUseCases by lazyMonitored { FenixBrowserUseCases( + appStore = appStore.value, addNewTabUseCase = tabsUseCases.addTab, loadUrlUseCase = sessionUseCases.loadUrl, searchUseCases = searchUseCases, homepageTitle = context.getString(R.string.tab_tray_homepage_tab), profiler = engine.value.profiler, - appStore = appStore.value, ) }