From 8cfc336a555aeb560483cd7caeb9ddcf5755ee4f Mon Sep 17 00:00:00 2001 From: Mugurell Date: Tue, 9 Nov 2021 18:38:48 +0200 Subject: [PATCH] [fenix] For https://github.com/mozilla-mobile/fenix/issues/22314 - Reuse existing tab for search group items --- .../historymetadata/HistoryMetadataGroupFragment.kt | 1 + .../controller/HistoryMetadataGroupController.kt | 12 +++++------- .../HistoryMetadataGroupControllerTest.kt | 13 ++++++------- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/library/historymetadata/HistoryMetadataGroupFragment.kt b/app/src/main/java/org/mozilla/fenix/library/historymetadata/HistoryMetadataGroupFragment.kt index 61cbffa35..b5da41f4a 100644 --- a/app/src/main/java/org/mozilla/fenix/library/historymetadata/HistoryMetadataGroupFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/library/historymetadata/HistoryMetadataGroupFragment.kt @@ -74,6 +74,7 @@ class HistoryMetadataGroupFragment : controller = DefaultHistoryMetadataGroupController( activity = activity as HomeActivity, store = historyMetadataGroupStore, + selectOrAddUseCase = requireComponents.useCases.tabsUseCases.selectOrAddTab, metrics = requireComponents.analytics.metrics, navController = findNavController(), scope = lifecycleScope, diff --git a/app/src/main/java/org/mozilla/fenix/library/historymetadata/controller/HistoryMetadataGroupController.kt b/app/src/main/java/org/mozilla/fenix/library/historymetadata/controller/HistoryMetadataGroupController.kt index bf27119ea..328efd499 100644 --- a/app/src/main/java/org/mozilla/fenix/library/historymetadata/controller/HistoryMetadataGroupController.kt +++ b/app/src/main/java/org/mozilla/fenix/library/historymetadata/controller/HistoryMetadataGroupController.kt @@ -8,10 +8,11 @@ import androidx.navigation.NavController import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch import mozilla.components.concept.engine.prompt.ShareData -import org.mozilla.fenix.BrowserDirection +import mozilla.components.feature.tabs.TabsUseCases import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.components.metrics.MetricController +import org.mozilla.fenix.R import org.mozilla.fenix.ext.components import org.mozilla.fenix.library.history.History import org.mozilla.fenix.library.historymetadata.HistoryMetadataGroupFragmentAction @@ -76,6 +77,7 @@ interface HistoryMetadataGroupController { class DefaultHistoryMetadataGroupController( private val activity: HomeActivity, private val store: HistoryMetadataGroupFragmentStore, + private val selectOrAddUseCase: TabsUseCases.SelectOrAddUseCase, private val metrics: MetricController, private val navController: NavController, private val scope: CoroutineScope, @@ -83,12 +85,8 @@ class DefaultHistoryMetadataGroupController( ) : HistoryMetadataGroupController { override fun handleOpen(item: History.Metadata) { - activity.openToBrowserAndLoad( - searchTermOrURL = item.url, - newTab = true, - from = BrowserDirection.FromHistoryMetadataGroup, - historyMetadata = item.historyMetadataKey - ) + selectOrAddUseCase.invoke(item.url, item.historyMetadataKey) + navController.navigate(R.id.browserFragment) metrics.track(Event.HistorySearchTermGroupOpenTab) } diff --git a/app/src/test/java/org/mozilla/fenix/library/historymetadata/controller/HistoryMetadataGroupControllerTest.kt b/app/src/test/java/org/mozilla/fenix/library/historymetadata/controller/HistoryMetadataGroupControllerTest.kt index 04e01d7e4..28f2fd875 100644 --- a/app/src/test/java/org/mozilla/fenix/library/historymetadata/controller/HistoryMetadataGroupControllerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/library/historymetadata/controller/HistoryMetadataGroupControllerTest.kt @@ -14,6 +14,7 @@ import kotlinx.coroutines.test.runBlockingTest import mozilla.components.browser.storage.sync.PlacesHistoryStorage import mozilla.components.concept.engine.prompt.ShareData import mozilla.components.concept.storage.HistoryMetadataKey +import mozilla.components.feature.tabs.TabsUseCases import mozilla.components.support.test.rule.MainCoroutineRule import org.junit.After import org.junit.Assert.assertFalse @@ -22,10 +23,10 @@ import org.junit.Before import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith -import org.mozilla.fenix.BrowserDirection import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.components.metrics.MetricController +import org.mozilla.fenix.R import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.directionsEq import org.mozilla.fenix.helpers.FenixRobolectricTestRunner @@ -45,6 +46,7 @@ class HistoryMetadataGroupControllerTest { private val activity: HomeActivity = mockk(relaxed = true) private val store: HistoryMetadataGroupFragmentStore = mockk(relaxed = true) + private val selectOrAddUseCase: TabsUseCases.SelectOrAddUseCase = mockk(relaxed = true) private val metrics: MetricController = mockk(relaxed = true) private val navController: NavController = mockk(relaxed = true) private val historyStorage: PlacesHistoryStorage = mockk(relaxed = true) @@ -77,6 +79,7 @@ class HistoryMetadataGroupControllerTest { controller = DefaultHistoryMetadataGroupController( activity = activity, store = store, + selectOrAddUseCase = selectOrAddUseCase, metrics = metrics, navController = navController, scope = scope, @@ -96,12 +99,8 @@ class HistoryMetadataGroupControllerTest { controller.handleOpen(mozillaHistoryMetadataItem) verify { - activity.openToBrowserAndLoad( - searchTermOrURL = mozillaHistoryMetadataItem.url, - newTab = true, - from = BrowserDirection.FromHistoryMetadataGroup, - historyMetadata = mozillaHistoryMetadataItem.historyMetadataKey - ) + selectOrAddUseCase.invoke(mozillaHistoryMetadataItem.url, mozillaHistoryMetadataItem.historyMetadataKey) + navController.navigate(R.id.browserFragment) metrics.track(Event.HistorySearchTermGroupOpenTab) } }