Loading mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +2 −1 Original line number Diff line number Diff line Loading @@ -343,10 +343,11 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { } else { StartOnHome.enterHomeScreen.record(NoExtras()) } /* if (settings().showHomeOnboardingDialog && components.fenixOnboarding.userHasBeenOnboarded()) { navHost.navController.navigate(NavGraphDirections.actionGlobalHomeOnboardingDialog()) } */ } Performance.processIntentIfPerformanceTest(intent, this) Loading mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +2 −158 Original line number Diff line number Diff line Loading @@ -157,7 +157,6 @@ import org.mozilla.fenix.search.toolbar.SearchSelectorMenu import org.mozilla.fenix.tabstray.Page import org.mozilla.fenix.tabstray.TabsTrayAccessPoint import org.mozilla.fenix.theme.FirefoxTheme import org.mozilla.fenix.tor.bootstrap.TorQuickStart 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 Loading @@ -258,8 +257,6 @@ class HomeFragment : Fragment() { private val bottomToolbarContainerIntegration = ViewBoundFeatureWrapper<BottomToolbarContainerIntegration>() private lateinit var savedLoginsLauncher: ActivityResultLauncher<Intent> private val torQuickStart by lazy { TorQuickStart(requireContext()) } private lateinit var currentMode: CurrentMode override fun onCreate(savedInstanceState: Bundle?) { // DO NOT ADD ANYTHING ABOVE THIS getProfilerTime CALL! Loading Loading @@ -302,7 +299,7 @@ class HomeFragment : Fragment() { // Splits by full stops or commas and puts the parts in different lines. // Ignoring separators at the end of the string, it is expected // that there are at most two parts (e.g. "Explore. Privately."). val localBinding = binding; val localBinding = binding binding.exploreprivately.text = localBinding .exploreprivately .text Loading Loading @@ -432,10 +429,6 @@ class HomeFragment : Fragment() { removeCollectionWithUndo = ::removeCollectionWithUndo, showUndoSnackbarForTopSite = ::showUndoSnackbarForTopSite, showTabTray = ::openTabsTray, handleTorBootstrapConnect = ::handleTorBootstrapConnect, cancelTorBootstrap = ::cancelTorBootstrap, initiateTorBootstrap = ::initiateTorBootstrap, openTorNetworkSettings = ::openTorNetworkSettings ), recentTabController = DefaultRecentTabsController( selectTabUseCase = components.useCases.tabsUseCases.selectTab, Loading Loading @@ -512,9 +505,6 @@ class HomeFragment : Fragment() { // FxNimbus.features.homescreen.recordExposure() adjustHomeFragmentView(currentMode.getCurrentMode()) showSessionControlView() // DO NOT MOVE ANYTHING BELOW THIS addMarker CALL! requireComponents.core.engine.profiler?.addMarker( MarkersFragmentLifecycleCallbacks.MARKER_NAME, Loading Loading @@ -759,6 +749,7 @@ class HomeFragment : Fragment() { if (browsingModeManager.mode == BrowsingMode.Private) { binding.root.consumeFrom(requireContext().components.appStore, viewLifecycleOwner) { sessionControlView?.update(it) } } else { sessionControlView?.update(requireContext().components.appStore.state) Loading @@ -785,111 +776,6 @@ class HomeFragment : Fragment() { binding.homeAppBar.setExpanded(true) } // This function should be paired with showSessionControlView() @SuppressWarnings("ComplexMethod", "NestedBlockDepth", "LongMethod") private fun adjustHomeFragmentView(mode: Mode) { binding.sessionControlRecyclerView.apply { visibility = View.INVISIBLE } if (mode == Mode.Bootstrap) { binding.sessionControlRecyclerView.apply { setPadding(0, 0, 0, 0) (layoutParams as ViewGroup.MarginLayoutParams).setMargins(0, 0, 0, 0) } binding.homeAppBar.apply { visibility = View.GONE // Reset this as SCROLL in case it was previously set as NO_SCROLL after bootstrap children.forEach { (it.layoutParams as AppBarLayout.LayoutParams).scrollFlags = AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL } } binding.onionPatternImage.apply { visibility = View.GONE } binding.toolbarLayout.apply { visibility = View.GONE } } else { // Keep synchronized with xml layout (somehow). binding.sessionControlRecyclerView.apply { setPadding( SESSION_CONTROL_VIEW_PADDING, SESSION_CONTROL_VIEW_PADDING, SESSION_CONTROL_VIEW_PADDING, SESSION_CONTROL_VIEW_PADDING ) // Default margin until it is re-set below (either set immediately or after Layout) (layoutParams as ViewGroup.MarginLayoutParams).setMargins( 0, 0, 0, DEFAULT_ONBOARDING_FINISH_MARGIN ) } binding.toolbarLayout.apply { visibility = View.VISIBLE // If the Layout rendering pass was completed, then we have a |height| value, // if it wasn't completed then we have 0. if (height == 0) { // Set the bottom margin after the toolbar height is defined during Layout doOnLayout { val toolbarLayoutHeight = binding.toolbarLayout.height binding.sessionControlRecyclerView.apply { (layoutParams as ViewGroup.MarginLayoutParams).setMargins( 0, 0, 0, toolbarLayoutHeight - SESSION_CONTROL_VIEW_PADDING ) } } } else { binding.sessionControlRecyclerView.apply { (layoutParams as ViewGroup.MarginLayoutParams).setMargins( 0, 0, 0, height - SESSION_CONTROL_VIEW_PADDING ) } } } // Hide the onion pattern during Onboarding, too. // With new onboarding HomeFragment is only reached once onboarding is complete binding.onionPatternImage.apply { visibility = if (currentMode.getCurrentMode() != Mode.Bootstrap) { View.VISIBLE } else { View.GONE } } binding.homeAppBar.apply { visibility = View.VISIBLE children.forEach { (it.layoutParams as AppBarLayout.LayoutParams).scrollFlags = if (currentMode.getCurrentMode() != Mode.Bootstrap) { AppBarLayout.LayoutParams.SCROLL_FLAG_NO_SCROLL } else { AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL } } } } } // This function should be paired with adjustHomeFragmentView() private fun showSessionControlView() { binding.sessionControlRecyclerView.apply { visibility = View.VISIBLE } } @Suppress("LongMethod", "ComplexMethod") override fun onViewCreated(view: View, savedInstanceState: Bundle?) { // DO NOT ADD ANYTHING ABOVE THIS getProfilerTime CALL! Loading Loading @@ -1181,14 +1067,6 @@ class HomeFragment : Fragment() { } } private fun dispatchModeChanges(mode: Mode) { requireComponents.appStore.dispatch(AppAction.ModeChange(mode)) adjustHomeFragmentView(mode) updateSessionControlView() showSessionControlView() } @VisibleForTesting internal fun removeCollectionWithUndo(tabCollection: TabCollection) { val snackbarMessage = getString(R.string.snackbar_collection_deleted) Loading @@ -1210,23 +1088,12 @@ class HomeFragment : Fragment() { } } override fun onStop() { super.onStop() currentMode.unregisterTorListener() } override fun onResume() { super.onResume() if (browsingModeManager.mode == BrowsingMode.Private) { activity?.window?.setBackgroundDrawableResource(R.drawable.private_home_background_gradient) } // fenix#40176: Ensure the Home fragment is rendered correctly when we resume. val mode = currentMode.getCurrentMode() adjustHomeFragmentView(mode) updateSessionControlView() showSessionControlView() hideToolbar() // Whenever a tab is selected its last access timestamp is automatically updated by A-C. Loading Loading @@ -1490,25 +1357,6 @@ class HomeFragment : Fragment() { } } private fun handleTorBootstrapConnect() { requireComponents.torController.onTorConnecting() } private fun cancelTorBootstrap() { requireComponents.torController.stopTor() } private fun initiateTorBootstrap(withDebugLogging: Boolean = false) { requireComponents.torController.initiateTorBootstrap(lifecycleScope, withDebugLogging) } private fun openTorNetworkSettings() { val directions = HomeFragmentDirections .actionHomeFragmentToTorNetworkSettingsFragment() findNavController().navigate(directions) } companion object { // Used to set homeViewModel.sessionToDelete when all tabs of a browsing mode are closed const val ALL_NORMAL_TABS = "all_normal" Loading @@ -1528,9 +1376,5 @@ class HomeFragment : Fragment() { // Elevation for undo toasts internal const val TOAST_ELEVATION = 80f // Layout private const val DEFAULT_ONBOARDING_FINISH_MARGIN = 60 private const val SESSION_CONTROL_VIEW_PADDING = 16 } } mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt +0 −20 Original line number Diff line number Diff line Loading @@ -34,10 +34,7 @@ import org.mozilla.fenix.home.sessioncontrol.viewholders.CollectionHeaderViewHol import org.mozilla.fenix.home.sessioncontrol.viewholders.CustomizeHomeButtonViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.NoCollectionsMessageViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.PrivateBrowsingDescriptionViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.TorBootstrapPagerViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.MessageCardViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.TorOnboardingSecurityLevelViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.TorOnboardingDonateViewHolder import org.mozilla.fenix.home.topsites.TopSitePagerViewHolder import org.mozilla.fenix.home.topsites.TopSitesViewHolder import mozilla.components.feature.tab.collections.Tab as ComponentTab Loading Loading @@ -147,9 +144,6 @@ sealed class AdapterItem(@LayoutRes val viewType: Int) { object CustomizeHomeButton : AdapterItem(CustomizeHomeButtonViewHolder.LAYOUT_ID) object TorOnboardingSecurityLevel : AdapterItem(TorOnboardingSecurityLevelViewHolder.LAYOUT_ID) object TorOnboardingDonate : AdapterItem(TorOnboardingDonateViewHolder.LAYOUT_ID) object RecentTabsHeader : AdapterItem(RecentTabsHeaderViewHolder.LAYOUT_ID) object RecentTabItem : AdapterItem(RecentTabViewHolder.LAYOUT_ID) Loading Loading @@ -308,11 +302,6 @@ class SessionControlAdapter( viewLifecycleOwner = viewLifecycleOwner, interactor = interactor, ) TorBootstrapPagerViewHolder.LAYOUT_ID -> TorBootstrapPagerViewHolder( view, components, interactor ) NoCollectionsMessageViewHolder.LAYOUT_ID -> NoCollectionsMessageViewHolder( view, Loading @@ -322,15 +311,6 @@ class SessionControlAdapter( interactor, ) BottomSpacerViewHolder.LAYOUT_ID -> BottomSpacerViewHolder(view) TorOnboardingSecurityLevelViewHolder.LAYOUT_ID -> TorOnboardingSecurityLevelViewHolder( view, interactor ) TorOnboardingDonateViewHolder.LAYOUT_ID -> TorOnboardingDonateViewHolder( view, interactor ) else -> throw IllegalStateException() } } Loading mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlController.kt +0 −83 Original line number Diff line number Diff line Loading @@ -135,21 +135,6 @@ interface SessionControlController { */ fun handleTopSiteLongClicked(topSite: TopSite) /** * @see [OnboardingInteractor.onOpenSettingsClicked] */ fun handleOpenSettingsClicked() /** * @see [OnboardingInteractor.onOpenSecurityLevelSettingsClicked] */ fun handleOpenSecurityLevelSettingsClicked() /** * @see [OnboardingInteractor.onDonateClicked] */ fun handleDonateClicked() /** * @see [CollectionInteractor.onToggleCollectionExpanded] */ Loading Loading @@ -189,31 +174,6 @@ interface SessionControlController { * @see [SessionControlInteractor.reportSessionMetrics] */ fun handleReportSessionMetrics(state: AppState) /** * @see [TorBootstrapInteractor.onTorBootstrapConnectClicked] */ fun handleTorBootstrapConnectClicked() /** * @see [TorBootstrapInteractor.onTorStopBootstrapping] */ fun handleTorStopBootstrapping() /** * @see [TorBootstrapInteractor.onTorStartBootstrapping] */ fun handleTorStartBootstrapping() /** * @see [TorBootstrapInteractor.onTorStartDebugBootstrapping] */ fun handleTorStartDebugBootstrapping() /** * @see [TorBootstrapInteractor.onTorBootstrapNetworkSettingsClicked] */ fun handleTorNetworkSettingsClicked() } @Suppress("TooManyFunctions", "LargeClass", "LongParameterList") Loading @@ -235,10 +195,6 @@ class DefaultSessionControlController( private val removeCollectionWithUndo: (tabCollection: TabCollection) -> Unit, private val showUndoSnackbarForTopSite: (topSite: TopSite) -> Unit, private val showTabTray: () -> Unit, private val handleTorBootstrapConnect: () -> Unit, private val initiateTorBootstrap: (Boolean) -> Unit, private val cancelTorBootstrap: () -> Unit, private val openTorNetworkSettings: () -> Unit ) : SessionControlController { override fun handleCollectionAddTabTapped(collection: TabCollection) { Loading Loading @@ -532,25 +488,6 @@ class DefaultSessionControlController( } } } override fun handleOpenSettingsClicked() { val directions = HomeFragmentDirections.actionGlobalPrivateBrowsingFragment() navController.nav(R.id.homeFragment, directions) } override fun handleOpenSecurityLevelSettingsClicked() { val directions = HomeFragmentDirections.actionGlobalTorSecurityLevelFragment() navController.nav(R.id.homeFragment, directions) } override fun handleDonateClicked() { activity.openToBrowserAndLoad( searchTermOrURL = SupportUtils.DONATE_URL, newTab = true, from = BrowserDirection.FromHome ) } override fun handleToggleCollectionExpanded(collection: TabCollection, expand: Boolean) { appStore.dispatch(AppAction.CollectionExpanded(collection, expand)) } Loading Loading @@ -622,24 +559,4 @@ class DefaultSessionControlController( HomeBookmarks.bookmarksCount.set(state.bookmarks.size.toLong()) } override fun handleTorBootstrapConnectClicked() { handleTorBootstrapConnect() } override fun handleTorStopBootstrapping() { cancelTorBootstrap() } override fun handleTorStartBootstrapping() { initiateTorBootstrap(false) } override fun handleTorStartDebugBootstrapping() { initiateTorBootstrap(true) } override fun handleTorNetworkSettingsClicked() { openTorNetworkSettings() } } mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlInteractor.kt +0 −78 Original line number Diff line number Diff line Loading @@ -129,26 +129,6 @@ interface CollectionInteractor { fun onRemoveCollectionsPlaceholder() } /** * Interface for onboarding related actions in the [SessionControlInteractor]. */ interface OnboardingInteractor { /** * Hides the onboarding and navigates to Search. Called when a user clicks on the "Start Browsing" button. */ fun onStartBrowsingClicked() /** * Hides the onboarding and navigates to Settings. Called when a user clicks on the "Open settings" button. */ fun onOpenSettingsClicked() /** * Opens a custom tab to privacy notice url. Called when a user clicks on the "read our privacy notice" button. */ fun onDonateClicked() } interface CustomizeHomeIteractor { /** * Opens the customize home settings page. Loading @@ -156,34 +136,6 @@ interface CustomizeHomeIteractor { fun openCustomizeHomePage() } interface TorBootstrapInteractor { /** * Initiates Tor bootstrapping. Called when a user clicks on the "Connect" button. */ fun onTorBootstrapConnectClicked() /** * Initiates Tor bootstrapping. Called when a user clicks on the "Connect" button. */ fun onTorStartBootstrapping() /** * Stop Tor bootstrapping. Called when a user clicks on the "settings" cog/button. */ fun onTorStopBootstrapping() /** * Initiates Tor bootstrapping with debug logging. Called when bootstrapping fails with * the control.txt file not existing. */ fun onTorStartDebugBootstrapping() /** * Open Tor Network Settings preference screen */ fun onTorBootstrapNetworkSettingsClicked() } /** * Interface for top site related actions in the [SessionControlInteractor]. */ Loading Loading @@ -295,7 +247,6 @@ class SessionControlInteractor( PocketStoriesInteractor, PrivateBrowsingInteractor, SearchSelectorInteractor, TorBootstrapInteractor, WallpaperInteractor { override fun onCollectionAddTabTapped(collection: TabCollection) { Loading Loading @@ -358,15 +309,6 @@ class SessionControlInteractor( return controller.handleShowWallpapersOnboardingDialog(state) } // TODO: Do these still work, if not overrides, cus parent class dropped, are they wired in still? fun onOpenSettingsClicked() { controller.handleOpenSettingsClicked() } fun onDonateClicked() { controller.handleDonateClicked() } override fun onToggleCollectionExpanded(collection: TabCollection, expand: Boolean) { controller.handleToggleCollectionExpanded(collection, expand) } Loading Loading @@ -500,24 +442,4 @@ class SessionControlInteractor( override fun onMenuItemTapped(item: SearchSelectorMenu.Item) { searchSelectorController.handleMenuItemTapped(item) } override fun onTorBootstrapConnectClicked() { controller.handleTorBootstrapConnectClicked() } override fun onTorStopBootstrapping() { controller.handleTorStopBootstrapping() } override fun onTorStartBootstrapping() { controller.handleTorStartBootstrapping() } override fun onTorStartDebugBootstrapping() { controller.handleTorStartDebugBootstrapping() } override fun onTorBootstrapNetworkSettingsClicked() { controller.handleTorNetworkSettingsClicked() } } Loading
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +2 −1 Original line number Diff line number Diff line Loading @@ -343,10 +343,11 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { } else { StartOnHome.enterHomeScreen.record(NoExtras()) } /* if (settings().showHomeOnboardingDialog && components.fenixOnboarding.userHasBeenOnboarded()) { navHost.navController.navigate(NavGraphDirections.actionGlobalHomeOnboardingDialog()) } */ } Performance.processIntentIfPerformanceTest(intent, this) Loading
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +2 −158 Original line number Diff line number Diff line Loading @@ -157,7 +157,6 @@ import org.mozilla.fenix.search.toolbar.SearchSelectorMenu import org.mozilla.fenix.tabstray.Page import org.mozilla.fenix.tabstray.TabsTrayAccessPoint import org.mozilla.fenix.theme.FirefoxTheme import org.mozilla.fenix.tor.bootstrap.TorQuickStart 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 Loading @@ -258,8 +257,6 @@ class HomeFragment : Fragment() { private val bottomToolbarContainerIntegration = ViewBoundFeatureWrapper<BottomToolbarContainerIntegration>() private lateinit var savedLoginsLauncher: ActivityResultLauncher<Intent> private val torQuickStart by lazy { TorQuickStart(requireContext()) } private lateinit var currentMode: CurrentMode override fun onCreate(savedInstanceState: Bundle?) { // DO NOT ADD ANYTHING ABOVE THIS getProfilerTime CALL! Loading Loading @@ -302,7 +299,7 @@ class HomeFragment : Fragment() { // Splits by full stops or commas and puts the parts in different lines. // Ignoring separators at the end of the string, it is expected // that there are at most two parts (e.g. "Explore. Privately."). val localBinding = binding; val localBinding = binding binding.exploreprivately.text = localBinding .exploreprivately .text Loading Loading @@ -432,10 +429,6 @@ class HomeFragment : Fragment() { removeCollectionWithUndo = ::removeCollectionWithUndo, showUndoSnackbarForTopSite = ::showUndoSnackbarForTopSite, showTabTray = ::openTabsTray, handleTorBootstrapConnect = ::handleTorBootstrapConnect, cancelTorBootstrap = ::cancelTorBootstrap, initiateTorBootstrap = ::initiateTorBootstrap, openTorNetworkSettings = ::openTorNetworkSettings ), recentTabController = DefaultRecentTabsController( selectTabUseCase = components.useCases.tabsUseCases.selectTab, Loading Loading @@ -512,9 +505,6 @@ class HomeFragment : Fragment() { // FxNimbus.features.homescreen.recordExposure() adjustHomeFragmentView(currentMode.getCurrentMode()) showSessionControlView() // DO NOT MOVE ANYTHING BELOW THIS addMarker CALL! requireComponents.core.engine.profiler?.addMarker( MarkersFragmentLifecycleCallbacks.MARKER_NAME, Loading Loading @@ -759,6 +749,7 @@ class HomeFragment : Fragment() { if (browsingModeManager.mode == BrowsingMode.Private) { binding.root.consumeFrom(requireContext().components.appStore, viewLifecycleOwner) { sessionControlView?.update(it) } } else { sessionControlView?.update(requireContext().components.appStore.state) Loading @@ -785,111 +776,6 @@ class HomeFragment : Fragment() { binding.homeAppBar.setExpanded(true) } // This function should be paired with showSessionControlView() @SuppressWarnings("ComplexMethod", "NestedBlockDepth", "LongMethod") private fun adjustHomeFragmentView(mode: Mode) { binding.sessionControlRecyclerView.apply { visibility = View.INVISIBLE } if (mode == Mode.Bootstrap) { binding.sessionControlRecyclerView.apply { setPadding(0, 0, 0, 0) (layoutParams as ViewGroup.MarginLayoutParams).setMargins(0, 0, 0, 0) } binding.homeAppBar.apply { visibility = View.GONE // Reset this as SCROLL in case it was previously set as NO_SCROLL after bootstrap children.forEach { (it.layoutParams as AppBarLayout.LayoutParams).scrollFlags = AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL } } binding.onionPatternImage.apply { visibility = View.GONE } binding.toolbarLayout.apply { visibility = View.GONE } } else { // Keep synchronized with xml layout (somehow). binding.sessionControlRecyclerView.apply { setPadding( SESSION_CONTROL_VIEW_PADDING, SESSION_CONTROL_VIEW_PADDING, SESSION_CONTROL_VIEW_PADDING, SESSION_CONTROL_VIEW_PADDING ) // Default margin until it is re-set below (either set immediately or after Layout) (layoutParams as ViewGroup.MarginLayoutParams).setMargins( 0, 0, 0, DEFAULT_ONBOARDING_FINISH_MARGIN ) } binding.toolbarLayout.apply { visibility = View.VISIBLE // If the Layout rendering pass was completed, then we have a |height| value, // if it wasn't completed then we have 0. if (height == 0) { // Set the bottom margin after the toolbar height is defined during Layout doOnLayout { val toolbarLayoutHeight = binding.toolbarLayout.height binding.sessionControlRecyclerView.apply { (layoutParams as ViewGroup.MarginLayoutParams).setMargins( 0, 0, 0, toolbarLayoutHeight - SESSION_CONTROL_VIEW_PADDING ) } } } else { binding.sessionControlRecyclerView.apply { (layoutParams as ViewGroup.MarginLayoutParams).setMargins( 0, 0, 0, height - SESSION_CONTROL_VIEW_PADDING ) } } } // Hide the onion pattern during Onboarding, too. // With new onboarding HomeFragment is only reached once onboarding is complete binding.onionPatternImage.apply { visibility = if (currentMode.getCurrentMode() != Mode.Bootstrap) { View.VISIBLE } else { View.GONE } } binding.homeAppBar.apply { visibility = View.VISIBLE children.forEach { (it.layoutParams as AppBarLayout.LayoutParams).scrollFlags = if (currentMode.getCurrentMode() != Mode.Bootstrap) { AppBarLayout.LayoutParams.SCROLL_FLAG_NO_SCROLL } else { AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL } } } } } // This function should be paired with adjustHomeFragmentView() private fun showSessionControlView() { binding.sessionControlRecyclerView.apply { visibility = View.VISIBLE } } @Suppress("LongMethod", "ComplexMethod") override fun onViewCreated(view: View, savedInstanceState: Bundle?) { // DO NOT ADD ANYTHING ABOVE THIS getProfilerTime CALL! Loading Loading @@ -1181,14 +1067,6 @@ class HomeFragment : Fragment() { } } private fun dispatchModeChanges(mode: Mode) { requireComponents.appStore.dispatch(AppAction.ModeChange(mode)) adjustHomeFragmentView(mode) updateSessionControlView() showSessionControlView() } @VisibleForTesting internal fun removeCollectionWithUndo(tabCollection: TabCollection) { val snackbarMessage = getString(R.string.snackbar_collection_deleted) Loading @@ -1210,23 +1088,12 @@ class HomeFragment : Fragment() { } } override fun onStop() { super.onStop() currentMode.unregisterTorListener() } override fun onResume() { super.onResume() if (browsingModeManager.mode == BrowsingMode.Private) { activity?.window?.setBackgroundDrawableResource(R.drawable.private_home_background_gradient) } // fenix#40176: Ensure the Home fragment is rendered correctly when we resume. val mode = currentMode.getCurrentMode() adjustHomeFragmentView(mode) updateSessionControlView() showSessionControlView() hideToolbar() // Whenever a tab is selected its last access timestamp is automatically updated by A-C. Loading Loading @@ -1490,25 +1357,6 @@ class HomeFragment : Fragment() { } } private fun handleTorBootstrapConnect() { requireComponents.torController.onTorConnecting() } private fun cancelTorBootstrap() { requireComponents.torController.stopTor() } private fun initiateTorBootstrap(withDebugLogging: Boolean = false) { requireComponents.torController.initiateTorBootstrap(lifecycleScope, withDebugLogging) } private fun openTorNetworkSettings() { val directions = HomeFragmentDirections .actionHomeFragmentToTorNetworkSettingsFragment() findNavController().navigate(directions) } companion object { // Used to set homeViewModel.sessionToDelete when all tabs of a browsing mode are closed const val ALL_NORMAL_TABS = "all_normal" Loading @@ -1528,9 +1376,5 @@ class HomeFragment : Fragment() { // Elevation for undo toasts internal const val TOAST_ELEVATION = 80f // Layout private const val DEFAULT_ONBOARDING_FINISH_MARGIN = 60 private const val SESSION_CONTROL_VIEW_PADDING = 16 } }
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt +0 −20 Original line number Diff line number Diff line Loading @@ -34,10 +34,7 @@ import org.mozilla.fenix.home.sessioncontrol.viewholders.CollectionHeaderViewHol import org.mozilla.fenix.home.sessioncontrol.viewholders.CustomizeHomeButtonViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.NoCollectionsMessageViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.PrivateBrowsingDescriptionViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.TorBootstrapPagerViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.MessageCardViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.TorOnboardingSecurityLevelViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.TorOnboardingDonateViewHolder import org.mozilla.fenix.home.topsites.TopSitePagerViewHolder import org.mozilla.fenix.home.topsites.TopSitesViewHolder import mozilla.components.feature.tab.collections.Tab as ComponentTab Loading Loading @@ -147,9 +144,6 @@ sealed class AdapterItem(@LayoutRes val viewType: Int) { object CustomizeHomeButton : AdapterItem(CustomizeHomeButtonViewHolder.LAYOUT_ID) object TorOnboardingSecurityLevel : AdapterItem(TorOnboardingSecurityLevelViewHolder.LAYOUT_ID) object TorOnboardingDonate : AdapterItem(TorOnboardingDonateViewHolder.LAYOUT_ID) object RecentTabsHeader : AdapterItem(RecentTabsHeaderViewHolder.LAYOUT_ID) object RecentTabItem : AdapterItem(RecentTabViewHolder.LAYOUT_ID) Loading Loading @@ -308,11 +302,6 @@ class SessionControlAdapter( viewLifecycleOwner = viewLifecycleOwner, interactor = interactor, ) TorBootstrapPagerViewHolder.LAYOUT_ID -> TorBootstrapPagerViewHolder( view, components, interactor ) NoCollectionsMessageViewHolder.LAYOUT_ID -> NoCollectionsMessageViewHolder( view, Loading @@ -322,15 +311,6 @@ class SessionControlAdapter( interactor, ) BottomSpacerViewHolder.LAYOUT_ID -> BottomSpacerViewHolder(view) TorOnboardingSecurityLevelViewHolder.LAYOUT_ID -> TorOnboardingSecurityLevelViewHolder( view, interactor ) TorOnboardingDonateViewHolder.LAYOUT_ID -> TorOnboardingDonateViewHolder( view, interactor ) else -> throw IllegalStateException() } } Loading
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlController.kt +0 −83 Original line number Diff line number Diff line Loading @@ -135,21 +135,6 @@ interface SessionControlController { */ fun handleTopSiteLongClicked(topSite: TopSite) /** * @see [OnboardingInteractor.onOpenSettingsClicked] */ fun handleOpenSettingsClicked() /** * @see [OnboardingInteractor.onOpenSecurityLevelSettingsClicked] */ fun handleOpenSecurityLevelSettingsClicked() /** * @see [OnboardingInteractor.onDonateClicked] */ fun handleDonateClicked() /** * @see [CollectionInteractor.onToggleCollectionExpanded] */ Loading Loading @@ -189,31 +174,6 @@ interface SessionControlController { * @see [SessionControlInteractor.reportSessionMetrics] */ fun handleReportSessionMetrics(state: AppState) /** * @see [TorBootstrapInteractor.onTorBootstrapConnectClicked] */ fun handleTorBootstrapConnectClicked() /** * @see [TorBootstrapInteractor.onTorStopBootstrapping] */ fun handleTorStopBootstrapping() /** * @see [TorBootstrapInteractor.onTorStartBootstrapping] */ fun handleTorStartBootstrapping() /** * @see [TorBootstrapInteractor.onTorStartDebugBootstrapping] */ fun handleTorStartDebugBootstrapping() /** * @see [TorBootstrapInteractor.onTorBootstrapNetworkSettingsClicked] */ fun handleTorNetworkSettingsClicked() } @Suppress("TooManyFunctions", "LargeClass", "LongParameterList") Loading @@ -235,10 +195,6 @@ class DefaultSessionControlController( private val removeCollectionWithUndo: (tabCollection: TabCollection) -> Unit, private val showUndoSnackbarForTopSite: (topSite: TopSite) -> Unit, private val showTabTray: () -> Unit, private val handleTorBootstrapConnect: () -> Unit, private val initiateTorBootstrap: (Boolean) -> Unit, private val cancelTorBootstrap: () -> Unit, private val openTorNetworkSettings: () -> Unit ) : SessionControlController { override fun handleCollectionAddTabTapped(collection: TabCollection) { Loading Loading @@ -532,25 +488,6 @@ class DefaultSessionControlController( } } } override fun handleOpenSettingsClicked() { val directions = HomeFragmentDirections.actionGlobalPrivateBrowsingFragment() navController.nav(R.id.homeFragment, directions) } override fun handleOpenSecurityLevelSettingsClicked() { val directions = HomeFragmentDirections.actionGlobalTorSecurityLevelFragment() navController.nav(R.id.homeFragment, directions) } override fun handleDonateClicked() { activity.openToBrowserAndLoad( searchTermOrURL = SupportUtils.DONATE_URL, newTab = true, from = BrowserDirection.FromHome ) } override fun handleToggleCollectionExpanded(collection: TabCollection, expand: Boolean) { appStore.dispatch(AppAction.CollectionExpanded(collection, expand)) } Loading Loading @@ -622,24 +559,4 @@ class DefaultSessionControlController( HomeBookmarks.bookmarksCount.set(state.bookmarks.size.toLong()) } override fun handleTorBootstrapConnectClicked() { handleTorBootstrapConnect() } override fun handleTorStopBootstrapping() { cancelTorBootstrap() } override fun handleTorStartBootstrapping() { initiateTorBootstrap(false) } override fun handleTorStartDebugBootstrapping() { initiateTorBootstrap(true) } override fun handleTorNetworkSettingsClicked() { openTorNetworkSettings() } }
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlInteractor.kt +0 −78 Original line number Diff line number Diff line Loading @@ -129,26 +129,6 @@ interface CollectionInteractor { fun onRemoveCollectionsPlaceholder() } /** * Interface for onboarding related actions in the [SessionControlInteractor]. */ interface OnboardingInteractor { /** * Hides the onboarding and navigates to Search. Called when a user clicks on the "Start Browsing" button. */ fun onStartBrowsingClicked() /** * Hides the onboarding and navigates to Settings. Called when a user clicks on the "Open settings" button. */ fun onOpenSettingsClicked() /** * Opens a custom tab to privacy notice url. Called when a user clicks on the "read our privacy notice" button. */ fun onDonateClicked() } interface CustomizeHomeIteractor { /** * Opens the customize home settings page. Loading @@ -156,34 +136,6 @@ interface CustomizeHomeIteractor { fun openCustomizeHomePage() } interface TorBootstrapInteractor { /** * Initiates Tor bootstrapping. Called when a user clicks on the "Connect" button. */ fun onTorBootstrapConnectClicked() /** * Initiates Tor bootstrapping. Called when a user clicks on the "Connect" button. */ fun onTorStartBootstrapping() /** * Stop Tor bootstrapping. Called when a user clicks on the "settings" cog/button. */ fun onTorStopBootstrapping() /** * Initiates Tor bootstrapping with debug logging. Called when bootstrapping fails with * the control.txt file not existing. */ fun onTorStartDebugBootstrapping() /** * Open Tor Network Settings preference screen */ fun onTorBootstrapNetworkSettingsClicked() } /** * Interface for top site related actions in the [SessionControlInteractor]. */ Loading Loading @@ -295,7 +247,6 @@ class SessionControlInteractor( PocketStoriesInteractor, PrivateBrowsingInteractor, SearchSelectorInteractor, TorBootstrapInteractor, WallpaperInteractor { override fun onCollectionAddTabTapped(collection: TabCollection) { Loading Loading @@ -358,15 +309,6 @@ class SessionControlInteractor( return controller.handleShowWallpapersOnboardingDialog(state) } // TODO: Do these still work, if not overrides, cus parent class dropped, are they wired in still? fun onOpenSettingsClicked() { controller.handleOpenSettingsClicked() } fun onDonateClicked() { controller.handleDonateClicked() } override fun onToggleCollectionExpanded(collection: TabCollection, expand: Boolean) { controller.handleToggleCollectionExpanded(collection, expand) } Loading Loading @@ -500,24 +442,4 @@ class SessionControlInteractor( override fun onMenuItemTapped(item: SearchSelectorMenu.Item) { searchSelectorController.handleMenuItemTapped(item) } override fun onTorBootstrapConnectClicked() { controller.handleTorBootstrapConnectClicked() } override fun onTorStopBootstrapping() { controller.handleTorStopBootstrapping() } override fun onTorStartBootstrapping() { controller.handleTorStartBootstrapping() } override fun onTorStartDebugBootstrapping() { controller.handleTorStartDebugBootstrapping() } override fun onTorBootstrapNetworkSettingsClicked() { controller.handleTorNetworkSettingsClicked() } }