Loading mobile/android/fenix/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt +1 −0 Changes for mobile/android/fenix/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -42,4 +42,5 @@ enum class BrowserDirection(@IdRes val fragmentId: Int) { FromTranslationsDialogFragment(R.id.translationsDialogFragment), FromDownloadLanguagesPreferenceFragment(R.id.downloadLanguagesPreferenceFragment), FromMenuDialogFragment(R.id.menuDialogFragment), FromTorConnectionAssistFragment(R.id.torConnectionAssistFragment), } mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +65 −3 Changes for mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt: 65 added lines, 3 removed lines. Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.view.MotionEvent import android.view.View import android.view.ViewConfiguration import android.view.WindowManager.LayoutParams.FLAG_SECURE import androidx.activity.viewModels import androidx.annotation.CallSuper import androidx.annotation.IdRes import androidx.annotation.RequiresApi Loading @@ -35,7 +36,6 @@ import androidx.appcompat.app.ActionBar import androidx.appcompat.widget.Toolbar import androidx.compose.runtime.mutableStateOf import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.core.content.ContentProviderCompat.requireContext import androidx.core.view.doOnAttach import androidx.lifecycle.lifecycleScope import androidx.navigation.NavController Loading Loading @@ -84,6 +84,7 @@ import mozilla.components.support.utils.BrowsersCache import mozilla.components.support.utils.ManufacturerCodes import mozilla.components.support.utils.SafeIntent import mozilla.components.support.utils.TorUtils import mozilla.components.support.utils.ext.getParcelableExtraCompat import mozilla.components.support.utils.toSafeIntent import mozilla.components.support.webextensions.WebExtensionPopupObserver import mozilla.telemetry.glean.private.NoExtras Loading Loading @@ -154,12 +155,19 @@ import org.mozilla.fenix.tabhistory.TabHistoryDialogFragment import org.mozilla.fenix.tabstray.TabsTrayFragment import org.mozilla.fenix.theme.DefaultThemeManager import org.mozilla.fenix.theme.ThemeManager import org.mozilla.fenix.tor.TorConnectionAssistFragmentDirections import org.mozilla.fenix.tor.TorEvents import org.mozilla.fenix.utils.Settings import org.mozilla.fenix.utils.changeAppLauncherIconBackgroundColor import java.lang.ref.WeakReference import java.util.Locale import mozilla.components.browser.engine.gecko.GeckoEngine import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.home.HomeFragment import org.mozilla.fenix.tor.TorConnectionAssistViewModel import org.mozilla.geckoview.TorIntegrationAndroid /** * The main activity of the application. The application is primarily a single Activity (this one) * with fragments switching out to display different views. The most important views shown here are the: Loading @@ -167,7 +175,7 @@ import java.util.Locale * - browser screen */ @SuppressWarnings("TooManyFunctions", "LargeClass", "LongMethod") open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorIntegrationAndroid.BootstrapStateChangeListener { @VisibleForTesting internal lateinit var binding: ActivityHomeBinding lateinit var themeManager: ThemeManager Loading Loading @@ -249,6 +257,8 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { private var dialog: RedirectDialogFragment? = null private val torConnectionAssistViewModel: TorConnectionAssistViewModel by viewModels() @Suppress("ComplexMethod") final override fun onCreate(savedInstanceState: Bundle?) { // DO NOT MOVE ANYTHING ABOVE THIS getProfilerTime CALL. Loading Loading @@ -478,6 +488,12 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { ), ) val engine = components.core.engine if (engine is GeckoEngine) { val torIntegration = engine.getTorIntegrationController() torIntegration.registerBootstrapStateChangeListener(this) } StartupTimeline.onActivityCreateEndHome(this) // DO NOT MOVE ANYTHING BELOW HERE. } Loading Loading @@ -655,8 +671,10 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { override fun onProvideAssistContent(outContent: AssistContent?) { super.onProvideAssistContent(outContent) val currentTabUrl = components.core.store.state.selectedTab?.content?.url if (components.core.store.state.selectedTab?.content?.private == false) { outContent?.webUri = currentTabUrl?.let { Uri.parse(it) } } } @CallSuper override fun onDestroy() { Loading Loading @@ -689,6 +707,13 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { // and not only the top Activity/Task. Therefore we kill the // underlying Application, as well. (application as FenixApplication).terminate() if (settings().useHtmlConnectionUi) { val engine = components.core.engine if (engine is GeckoEngine) { val torIntegration = engine.getTorIntegrationController() torIntegration.unregisterBootstrapStateChangeListener(this) } } } } Loading Loading @@ -1143,6 +1168,24 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { historyMetadata: HistoryMetadataKey? = null, additionalHeaders: Map<String, String>? = null, ) { if (!components.torController.isBootstrapped && !searchTermOrURL.startsWith("about:")) { FenixSnackbar.make( view = binding.root, ) .setText(getString(R.string.connection_assist_connect_to_tor_before_opening_links)) .setAction(getString(R.string.connection_assist_connect_to_tor_before_opening_links_confirmation)) { torConnectionAssistViewModel.handleConnect(searchTermOrURL) if (navHost.navController.previousBackStackEntry?.destination?.id == R.id.torConnectionAssistFragment) { supportFragmentManager.popBackStack() } else { navHost.navController.navigate( TorConnectionAssistFragmentDirections.actionConnectToTorBeforeOpeningLinks() ) } } .show() return } openToBrowser(from, customTabSessionId) load( searchTermOrURL = searchTermOrURL, Loading Loading @@ -1282,7 +1325,16 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { // return //} navHost.navController.navigate(NavGraphDirections.actionStartupTorbootstrap()) if (!settings().useHtmlConnectionUi) { navController.navigate(NavGraphDirections.actionStartupTorConnectionAssist()) } else { navController.navigate(NavGraphDirections.actionStartupHome()) openToBrowserAndLoad( searchTermOrURL = "about:torconnect", newTab = true, from = BrowserDirection.FromHome, ) } } final override fun attachBaseContext(base: Context) { Loading Loading @@ -1467,4 +1519,14 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { // telemetry purposes. private const val PWA_RECENTLY_USED_THRESHOLD = DateUtils.DAY_IN_MILLIS * 30L } override fun onBootstrapStateChange(state: String) = Unit override fun onBootstrapProgress(progress: Double, hasWarnings: Boolean) = Unit override fun onBootstrapComplete() { if (settings().useHtmlConnectionUi) { components.useCases.tabsUseCases.removeAllTabs() navHost.navController.navigate(NavGraphDirections.actionStartupHome()) } } override fun onBootstrapError(code: String?, message: String?, phase: String?, reason: String?) = Unit } mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt +19 −0 Changes for mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt: 19 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -1964,6 +1964,9 @@ abstract class BaseBrowserFragment : val context = requireContext() resumeDownloadDialogState(selectedTab.id, context.components.core.store, context) it.announceForAccessibility(selectedTab.toDisplayTitle()) if (getCurrentTab()?.content?.url == "about:torconnect") { browserToolbarView.view.visibility = View.GONE } } } else { view?.let { view -> initializeUI(view) } Loading @@ -1990,6 +1993,22 @@ abstract class BaseBrowserFragment : } evaluateMessagesForMicrosurvey(components) handleBetaHtmlTorConnect() } private fun handleBetaHtmlTorConnect() { val currentTab = getCurrentTab() ?: return if (currentTab.content.url == "about:torconnect") { if (!requireActivity().settings().useHtmlConnectionUi) { requireContext().components.useCases.tabsUseCases.removeTab(currentTab.id) (requireActivity() as HomeActivity).navigateToHome(findNavController()) } else { // This just makes it not flash (be visible for a split second) before handleTabSelected() hides it again browserToolbarView.view.visibility = View.GONE } } else if (currentTab.content.url == "about:tor") { requireContext().components.useCases.tabsUseCases.removeTab(currentTab.id) } } private fun evaluateMessagesForMicrosurvey(components: Components) = Loading mobile/android/fenix/app/src/main/java/org/mozilla/fenix/ext/Activity.kt +4 −0 Changes for mobile/android/fenix/app/src/main/java/org/mozilla/fenix/ext/Activity.kt: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ import org.mozilla.fenix.settings.wallpaper.WallpaperSettingsFragmentDirections import org.mozilla.fenix.share.AddNewDeviceFragmentDirections import org.mozilla.fenix.shopping.ReviewQualityCheckFragmentDirections import org.mozilla.fenix.tabstray.TabsTrayFragmentDirections import org.mozilla.fenix.tor.TorConnectionAssistFragmentDirections import org.mozilla.fenix.trackingprotection.TrackingProtectionPanelDialogFragmentDirections import org.mozilla.fenix.translations.TranslationsDialogFragmentDirections import org.mozilla.fenix.translations.preferences.downloadlanguages.DownloadLanguagesPreferenceFragmentDirections Loading Loading @@ -331,6 +332,9 @@ private fun getHomeNavDirections( BrowserDirection.FromDownloadLanguagesPreferenceFragment -> DownloadLanguagesPreferenceFragmentDirections.actionGlobalBrowser() BrowserDirection.FromTorConnectionAssistFragment -> TorConnectionAssistFragmentDirections.actionGlobalBrowser() } const val REQUEST_CODE_BROWSER_ROLE = 1 Loading mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +20 −1 Changes for mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt: 20 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -92,6 +92,7 @@ import mozilla.components.feature.top.sites.TopSitesProviderConfig import mozilla.components.lib.state.ext.consumeFlow import mozilla.components.lib.state.ext.consumeFrom import mozilla.components.lib.state.ext.observeAsState import mozilla.components.support.base.feature.UserInteractionHandler import mozilla.components.support.base.feature.ViewBoundFeatureWrapper import mozilla.components.ui.colors.PhotonColors import mozilla.components.ui.tabcounter.TabCounterMenu Loading Loading @@ -181,6 +182,7 @@ import org.mozilla.fenix.tabstray.TabsTrayAccessPoint import org.mozilla.fenix.theme.FirefoxTheme import org.mozilla.fenix.tor.TorBootstrapFragmentDirections import org.mozilla.fenix.tor.TorBootstrapStatus import org.mozilla.fenix.tor.TorConnectionAssistViewModel import org.mozilla.fenix.utils.Settings.Companion.TOP_SITES_PROVIDER_MAX_THRESHOLD import org.mozilla.fenix.utils.allowUndo import org.mozilla.fenix.wallpapers.Wallpaper Loading @@ -188,7 +190,7 @@ import java.lang.ref.WeakReference import org.mozilla.fenix.GleanMetrics.TabStrip as TabStripMetrics @Suppress("TooManyFunctions", "LargeClass") class HomeFragment : Fragment() { class HomeFragment : Fragment(), UserInteractionHandler { private val args by navArgs<HomeFragmentArgs>() @VisibleForTesting Loading @@ -201,6 +203,7 @@ class HomeFragment : Fragment() { private val snackbarBinding = ViewBoundFeatureWrapper<SnackbarBinding>() private val homeViewModel: HomeScreenViewModel by activityViewModels() private val torConnectionAssistViewModel: TorConnectionAssistViewModel by activityViewModels() private var _bottomToolbarContainerView: BottomToolbarContainerView? = null private val bottomToolbarContainerView: BottomToolbarContainerView Loading Loading @@ -1155,6 +1158,17 @@ class HomeFragment : Fragment() { view = view, ) torConnectionAssistViewModel.urlToLoadAfterConnecting.also { if(!it.isNullOrBlank()){ (requireActivity() as HomeActivity).openToBrowserAndLoad( searchTermOrURL = it, newTab = true, from = BrowserDirection.FromHome, ) torConnectionAssistViewModel.urlToLoadAfterConnecting = null // Only load this url once } } // DO NOT MOVE ANYTHING BELOW THIS addMarker CALL! requireComponents.core.engine.profiler?.addMarker( MarkersFragmentLifecycleCallbacks.MARKER_NAME, Loading Loading @@ -1670,4 +1684,9 @@ class HomeFragment : Fragment() { // Elevation for undo toasts internal const val TOAST_ELEVATION = 80f } override fun onBackPressed(): Boolean { requireActivity().finish() return true } } Loading
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt +1 −0 Changes for mobile/android/fenix/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -42,4 +42,5 @@ enum class BrowserDirection(@IdRes val fragmentId: Int) { FromTranslationsDialogFragment(R.id.translationsDialogFragment), FromDownloadLanguagesPreferenceFragment(R.id.downloadLanguagesPreferenceFragment), FromMenuDialogFragment(R.id.menuDialogFragment), FromTorConnectionAssistFragment(R.id.torConnectionAssistFragment), }
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +65 −3 Changes for mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt: 65 added lines, 3 removed lines. Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.view.MotionEvent import android.view.View import android.view.ViewConfiguration import android.view.WindowManager.LayoutParams.FLAG_SECURE import androidx.activity.viewModels import androidx.annotation.CallSuper import androidx.annotation.IdRes import androidx.annotation.RequiresApi Loading @@ -35,7 +36,6 @@ import androidx.appcompat.app.ActionBar import androidx.appcompat.widget.Toolbar import androidx.compose.runtime.mutableStateOf import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.core.content.ContentProviderCompat.requireContext import androidx.core.view.doOnAttach import androidx.lifecycle.lifecycleScope import androidx.navigation.NavController Loading Loading @@ -84,6 +84,7 @@ import mozilla.components.support.utils.BrowsersCache import mozilla.components.support.utils.ManufacturerCodes import mozilla.components.support.utils.SafeIntent import mozilla.components.support.utils.TorUtils import mozilla.components.support.utils.ext.getParcelableExtraCompat import mozilla.components.support.utils.toSafeIntent import mozilla.components.support.webextensions.WebExtensionPopupObserver import mozilla.telemetry.glean.private.NoExtras Loading Loading @@ -154,12 +155,19 @@ import org.mozilla.fenix.tabhistory.TabHistoryDialogFragment import org.mozilla.fenix.tabstray.TabsTrayFragment import org.mozilla.fenix.theme.DefaultThemeManager import org.mozilla.fenix.theme.ThemeManager import org.mozilla.fenix.tor.TorConnectionAssistFragmentDirections import org.mozilla.fenix.tor.TorEvents import org.mozilla.fenix.utils.Settings import org.mozilla.fenix.utils.changeAppLauncherIconBackgroundColor import java.lang.ref.WeakReference import java.util.Locale import mozilla.components.browser.engine.gecko.GeckoEngine import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.home.HomeFragment import org.mozilla.fenix.tor.TorConnectionAssistViewModel import org.mozilla.geckoview.TorIntegrationAndroid /** * The main activity of the application. The application is primarily a single Activity (this one) * with fragments switching out to display different views. The most important views shown here are the: Loading @@ -167,7 +175,7 @@ import java.util.Locale * - browser screen */ @SuppressWarnings("TooManyFunctions", "LargeClass", "LongMethod") open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorIntegrationAndroid.BootstrapStateChangeListener { @VisibleForTesting internal lateinit var binding: ActivityHomeBinding lateinit var themeManager: ThemeManager Loading Loading @@ -249,6 +257,8 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { private var dialog: RedirectDialogFragment? = null private val torConnectionAssistViewModel: TorConnectionAssistViewModel by viewModels() @Suppress("ComplexMethod") final override fun onCreate(savedInstanceState: Bundle?) { // DO NOT MOVE ANYTHING ABOVE THIS getProfilerTime CALL. Loading Loading @@ -478,6 +488,12 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { ), ) val engine = components.core.engine if (engine is GeckoEngine) { val torIntegration = engine.getTorIntegrationController() torIntegration.registerBootstrapStateChangeListener(this) } StartupTimeline.onActivityCreateEndHome(this) // DO NOT MOVE ANYTHING BELOW HERE. } Loading Loading @@ -655,8 +671,10 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { override fun onProvideAssistContent(outContent: AssistContent?) { super.onProvideAssistContent(outContent) val currentTabUrl = components.core.store.state.selectedTab?.content?.url if (components.core.store.state.selectedTab?.content?.private == false) { outContent?.webUri = currentTabUrl?.let { Uri.parse(it) } } } @CallSuper override fun onDestroy() { Loading Loading @@ -689,6 +707,13 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { // and not only the top Activity/Task. Therefore we kill the // underlying Application, as well. (application as FenixApplication).terminate() if (settings().useHtmlConnectionUi) { val engine = components.core.engine if (engine is GeckoEngine) { val torIntegration = engine.getTorIntegrationController() torIntegration.unregisterBootstrapStateChangeListener(this) } } } } Loading Loading @@ -1143,6 +1168,24 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { historyMetadata: HistoryMetadataKey? = null, additionalHeaders: Map<String, String>? = null, ) { if (!components.torController.isBootstrapped && !searchTermOrURL.startsWith("about:")) { FenixSnackbar.make( view = binding.root, ) .setText(getString(R.string.connection_assist_connect_to_tor_before_opening_links)) .setAction(getString(R.string.connection_assist_connect_to_tor_before_opening_links_confirmation)) { torConnectionAssistViewModel.handleConnect(searchTermOrURL) if (navHost.navController.previousBackStackEntry?.destination?.id == R.id.torConnectionAssistFragment) { supportFragmentManager.popBackStack() } else { navHost.navController.navigate( TorConnectionAssistFragmentDirections.actionConnectToTorBeforeOpeningLinks() ) } } .show() return } openToBrowser(from, customTabSessionId) load( searchTermOrURL = searchTermOrURL, Loading Loading @@ -1282,7 +1325,16 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { // return //} navHost.navController.navigate(NavGraphDirections.actionStartupTorbootstrap()) if (!settings().useHtmlConnectionUi) { navController.navigate(NavGraphDirections.actionStartupTorConnectionAssist()) } else { navController.navigate(NavGraphDirections.actionStartupHome()) openToBrowserAndLoad( searchTermOrURL = "about:torconnect", newTab = true, from = BrowserDirection.FromHome, ) } } final override fun attachBaseContext(base: Context) { Loading Loading @@ -1467,4 +1519,14 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { // telemetry purposes. private const val PWA_RECENTLY_USED_THRESHOLD = DateUtils.DAY_IN_MILLIS * 30L } override fun onBootstrapStateChange(state: String) = Unit override fun onBootstrapProgress(progress: Double, hasWarnings: Boolean) = Unit override fun onBootstrapComplete() { if (settings().useHtmlConnectionUi) { components.useCases.tabsUseCases.removeAllTabs() navHost.navController.navigate(NavGraphDirections.actionStartupHome()) } } override fun onBootstrapError(code: String?, message: String?, phase: String?, reason: String?) = Unit }
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt +19 −0 Changes for mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt: 19 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -1964,6 +1964,9 @@ abstract class BaseBrowserFragment : val context = requireContext() resumeDownloadDialogState(selectedTab.id, context.components.core.store, context) it.announceForAccessibility(selectedTab.toDisplayTitle()) if (getCurrentTab()?.content?.url == "about:torconnect") { browserToolbarView.view.visibility = View.GONE } } } else { view?.let { view -> initializeUI(view) } Loading @@ -1990,6 +1993,22 @@ abstract class BaseBrowserFragment : } evaluateMessagesForMicrosurvey(components) handleBetaHtmlTorConnect() } private fun handleBetaHtmlTorConnect() { val currentTab = getCurrentTab() ?: return if (currentTab.content.url == "about:torconnect") { if (!requireActivity().settings().useHtmlConnectionUi) { requireContext().components.useCases.tabsUseCases.removeTab(currentTab.id) (requireActivity() as HomeActivity).navigateToHome(findNavController()) } else { // This just makes it not flash (be visible for a split second) before handleTabSelected() hides it again browserToolbarView.view.visibility = View.GONE } } else if (currentTab.content.url == "about:tor") { requireContext().components.useCases.tabsUseCases.removeTab(currentTab.id) } } private fun evaluateMessagesForMicrosurvey(components: Components) = Loading
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/ext/Activity.kt +4 −0 Changes for mobile/android/fenix/app/src/main/java/org/mozilla/fenix/ext/Activity.kt: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ import org.mozilla.fenix.settings.wallpaper.WallpaperSettingsFragmentDirections import org.mozilla.fenix.share.AddNewDeviceFragmentDirections import org.mozilla.fenix.shopping.ReviewQualityCheckFragmentDirections import org.mozilla.fenix.tabstray.TabsTrayFragmentDirections import org.mozilla.fenix.tor.TorConnectionAssistFragmentDirections import org.mozilla.fenix.trackingprotection.TrackingProtectionPanelDialogFragmentDirections import org.mozilla.fenix.translations.TranslationsDialogFragmentDirections import org.mozilla.fenix.translations.preferences.downloadlanguages.DownloadLanguagesPreferenceFragmentDirections Loading Loading @@ -331,6 +332,9 @@ private fun getHomeNavDirections( BrowserDirection.FromDownloadLanguagesPreferenceFragment -> DownloadLanguagesPreferenceFragmentDirections.actionGlobalBrowser() BrowserDirection.FromTorConnectionAssistFragment -> TorConnectionAssistFragmentDirections.actionGlobalBrowser() } const val REQUEST_CODE_BROWSER_ROLE = 1 Loading
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +20 −1 Changes for mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt: 20 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -92,6 +92,7 @@ import mozilla.components.feature.top.sites.TopSitesProviderConfig import mozilla.components.lib.state.ext.consumeFlow import mozilla.components.lib.state.ext.consumeFrom import mozilla.components.lib.state.ext.observeAsState import mozilla.components.support.base.feature.UserInteractionHandler import mozilla.components.support.base.feature.ViewBoundFeatureWrapper import mozilla.components.ui.colors.PhotonColors import mozilla.components.ui.tabcounter.TabCounterMenu Loading Loading @@ -181,6 +182,7 @@ import org.mozilla.fenix.tabstray.TabsTrayAccessPoint import org.mozilla.fenix.theme.FirefoxTheme import org.mozilla.fenix.tor.TorBootstrapFragmentDirections import org.mozilla.fenix.tor.TorBootstrapStatus import org.mozilla.fenix.tor.TorConnectionAssistViewModel import org.mozilla.fenix.utils.Settings.Companion.TOP_SITES_PROVIDER_MAX_THRESHOLD import org.mozilla.fenix.utils.allowUndo import org.mozilla.fenix.wallpapers.Wallpaper Loading @@ -188,7 +190,7 @@ import java.lang.ref.WeakReference import org.mozilla.fenix.GleanMetrics.TabStrip as TabStripMetrics @Suppress("TooManyFunctions", "LargeClass") class HomeFragment : Fragment() { class HomeFragment : Fragment(), UserInteractionHandler { private val args by navArgs<HomeFragmentArgs>() @VisibleForTesting Loading @@ -201,6 +203,7 @@ class HomeFragment : Fragment() { private val snackbarBinding = ViewBoundFeatureWrapper<SnackbarBinding>() private val homeViewModel: HomeScreenViewModel by activityViewModels() private val torConnectionAssistViewModel: TorConnectionAssistViewModel by activityViewModels() private var _bottomToolbarContainerView: BottomToolbarContainerView? = null private val bottomToolbarContainerView: BottomToolbarContainerView Loading Loading @@ -1155,6 +1158,17 @@ class HomeFragment : Fragment() { view = view, ) torConnectionAssistViewModel.urlToLoadAfterConnecting.also { if(!it.isNullOrBlank()){ (requireActivity() as HomeActivity).openToBrowserAndLoad( searchTermOrURL = it, newTab = true, from = BrowserDirection.FromHome, ) torConnectionAssistViewModel.urlToLoadAfterConnecting = null // Only load this url once } } // DO NOT MOVE ANYTHING BELOW THIS addMarker CALL! requireComponents.core.engine.profiler?.addMarker( MarkersFragmentLifecycleCallbacks.MARKER_NAME, Loading Loading @@ -1670,4 +1684,9 @@ class HomeFragment : Fragment() { // Elevation for undo toasts internal const val TOAST_ELEVATION = 80f } override fun onBackPressed(): Boolean { requireActivity().finish() return true } }