diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarController.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarController.kt index 46000a273..eb3d117b6 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarController.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarController.kt @@ -147,7 +147,7 @@ class DefaultBrowserToolbarController( if (sessionManager.sessionsOfType(it.private).count() == 1) { // The tab tray always returns to normal mode so do that here too (activity as HomeActivity).browsingModeManager.mode = BrowsingMode.Normal - navController.navigate(BrowserFragmentDirections.actionGlobalHome(it.id)) + navController.navigate(BrowserFragmentDirections.actionGlobalHome(sessionToDelete = it.id)) } else { onCloseTab.invoke(it) activity.components.useCases.tabsUseCases.removeTab.invoke(it) diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt index bbb8e53c5..af9b77a6b 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -15,6 +15,7 @@ import android.view.Gravity import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.accessibility.AccessibilityEvent import android.widget.Button import android.widget.LinearLayout import android.widget.PopupWindow @@ -107,12 +108,12 @@ import kotlin.math.min @SuppressWarnings("TooManyFunctions", "LargeClass") class HomeFragment : Fragment() { + private val args by navArgs() + private val homeViewModel: HomeScreenViewModel by viewModels { ViewModelProvider.AndroidViewModelFactory(requireActivity().application) } - private val args by navArgs() - private val snackbarAnchorView: View? get() { return if (requireContext().settings().shouldUseBottomToolbar) { @@ -359,6 +360,15 @@ class HomeFragment : Fragment() { SearchWidgetCFR(view.context) { view.toolbar_wrapper }.displayIfNecessary() } } + + if (view.context.settings().accessibilityServicesEnabled && args.focusOnAddressBar) { + // We cannot put this in the fragment_home.xml file as it breaks tests + view.toolbar_wrapper.isFocusableInTouchMode = true + viewLifecycleOwner.lifecycleScope.launch { + view.toolbar_wrapper?.requestFocus() + view.toolbar_wrapper?.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED) + } + } } override fun onDestroyView() { diff --git a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt index ca0f57dcb..a7cbf2d73 100644 --- a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt @@ -196,7 +196,7 @@ class TabTrayDialogFragment : AppCompatDialogFragment(), TabTrayInteractor { override fun onNewTabTapped(private: Boolean) { (activity as HomeActivity).browsingModeManager.mode = BrowsingMode.fromBoolean(private) - findNavController().popBackStack(R.id.homeFragment, false) + findNavController().navigate(TabTrayDialogFragmentDirections.actionGlobalHome(focusOnAddressBar = true)) dismissAllowingStateLoss() } @@ -311,7 +311,9 @@ class TabTrayDialogFragment : AppCompatDialogFragment(), TabTrayInteractor { .setText(requireContext().getString(R.string.create_collection_tabs_saved)) .setAction(requireContext().getString(R.string.create_collection_view)) { dismissAllowingStateLoss() - findNavController().navigate(TabTrayDialogFragmentDirections.actionGlobalHome()) + findNavController().navigate( + TabTrayDialogFragmentDirections.actionGlobalHome(focusOnAddressBar = false) + ) } snackbar.view.elevation = ELEVATION diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml index 0e40a8dfc..64b1caf45 100644 --- a/app/src/main/res/navigation/nav_graph.xml +++ b/app/src/main/res/navigation/nav_graph.xml @@ -66,6 +66,11 @@ app:destination="@id/browserFragment" app:exitAnim="@anim/zoom_in_fade" app:popEnterAnim="@anim/zoom_out_fade" /> + +