Issue #19647: Navigate to browser from home via Synced Tabs page

(cherry picked from commit 758700cbb0)
pull/420/head
Jonathan Almeida 3 years ago committed by Jonathan Almeida
parent d8b8636a8f
commit 614bc4a9c3

@ -31,6 +31,7 @@ enum class BrowserDirection(@IdRes val fragmentId: Int) {
FromAddonDetailsFragment(R.id.addonDetailsFragment), FromAddonDetailsFragment(R.id.addonDetailsFragment),
FromAddonPermissionsDetailsFragment(R.id.addonPermissionsDetailFragment), FromAddonPermissionsDetailsFragment(R.id.addonPermissionsDetailFragment),
FromLoginDetailFragment(R.id.loginDetailFragment), FromLoginDetailFragment(R.id.loginDetailFragment),
FromTabTray(R.id.tabTrayDialogFragment), FromTabTrayDialog(R.id.tabTrayDialogFragment),
FromTabTray(R.id.tabsTrayFragment),
FromRecentlyClosed(R.id.recentlyClosedFragment) FromRecentlyClosed(R.id.recentlyClosedFragment)
} }

@ -112,6 +112,7 @@ import org.mozilla.fenix.settings.search.AddSearchEngineFragmentDirections
import org.mozilla.fenix.settings.search.EditCustomSearchEngineFragmentDirections import org.mozilla.fenix.settings.search.EditCustomSearchEngineFragmentDirections
import org.mozilla.fenix.share.AddNewDeviceFragmentDirections import org.mozilla.fenix.share.AddNewDeviceFragmentDirections
import org.mozilla.fenix.sync.SyncedTabsFragmentDirections import org.mozilla.fenix.sync.SyncedTabsFragmentDirections
import org.mozilla.fenix.tabstray.TabsTrayFragmentDirections
import org.mozilla.fenix.tabtray.TabTrayDialogFragment import org.mozilla.fenix.tabtray.TabTrayDialogFragment
import org.mozilla.fenix.tabtray.TabTrayDialogFragmentDirections import org.mozilla.fenix.tabtray.TabTrayDialogFragmentDirections
import org.mozilla.fenix.theme.DefaultThemeManager import org.mozilla.fenix.theme.DefaultThemeManager
@ -807,8 +808,10 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
AddonPermissionsDetailsFragmentDirections.actionGlobalBrowser(customTabSessionId) AddonPermissionsDetailsFragmentDirections.actionGlobalBrowser(customTabSessionId)
BrowserDirection.FromLoginDetailFragment -> BrowserDirection.FromLoginDetailFragment ->
LoginDetailFragmentDirections.actionGlobalBrowser(customTabSessionId) LoginDetailFragmentDirections.actionGlobalBrowser(customTabSessionId)
BrowserDirection.FromTabTray -> BrowserDirection.FromTabTrayDialog ->
TabTrayDialogFragmentDirections.actionGlobalBrowser(customTabSessionId) TabTrayDialogFragmentDirections.actionGlobalBrowser(customTabSessionId)
BrowserDirection.FromTabTray ->
TabsTrayFragmentDirections.actionGlobalBrowser(customTabSessionId)
BrowserDirection.FromRecentlyClosed -> BrowserDirection.FromRecentlyClosed ->
RecentlyClosedFragmentDirections.actionGlobalBrowser(customTabSessionId) RecentlyClosedFragmentDirections.actionGlobalBrowser(customTabSessionId)
} }

@ -198,11 +198,13 @@ class DefaultNavigationInteractor(
tabsTrayStore.dispatch(TabsTrayAction.ExitSelectMode) tabsTrayStore.dispatch(TabsTrayAction.ExitSelectMode)
// TODO show successful snackbar here (regardless of operation succes). // TODO show successful snackbar here (regardless of operation success).
} }
override fun onSyncedTabClicked(tab: SyncTab) { override fun onSyncedTabClicked(tab: SyncTab) {
metrics.track(Event.SyncedTabOpened) metrics.track(Event.SyncedTabOpened)
dismissTabTray()
activity.openToBrowserAndLoad( activity.openToBrowserAndLoad(
searchTermOrURL = tab.active().url, searchTermOrURL = tab.active().url,
newTab = true, newTab = true,

@ -13,6 +13,7 @@ import io.mockk.mockk
import io.mockk.verify import io.mockk.verify
import io.mockk.mockkStatic import io.mockk.mockkStatic
import io.mockk.unmockkStatic import io.mockk.unmockkStatic
import io.mockk.verifyOrder
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.test.runBlockingTest import kotlinx.coroutines.test.runBlockingTest
import mozilla.components.browser.state.state.BrowserState import mozilla.components.browser.state.state.BrowserState
@ -249,8 +250,10 @@ class NavigationInteractorTest {
navigationInteractor.onSyncedTabClicked(tab) navigationInteractor.onSyncedTabClicked(tab)
verify { metrics.track(Event.SyncedTabOpened) } verifyOrder {
verify { metrics.track(Event.SyncedTabOpened)
dismissTabTray()
activity.openToBrowserAndLoad( activity.openToBrowserAndLoad(
searchTermOrURL = "https://mozilla.org", searchTermOrURL = "https://mozilla.org",
newTab = true, newTab = true,

Loading…
Cancel
Save