Skip to content

Commit 9eaa3cb

Browse files
committed
Bug 1973366 - Part 3: Refactoring opening URLs from the Homepage Menu to use FenixBrowserUseCases.loadUrlOrSearch r=android-reviewers,pollymce
- Refactors the existing usage of `HomeActivity.openToBrowserAndLoad` in `HomeMenuView` to use `FenixBrowserUseCases.loadUrlOrSearch`. Differential Revision: https://phabricator.services.mozilla.com/D254757
1 parent a0357fe commit 9eaa3cb

File tree

3 files changed

+35
-10
lines changed

3 files changed

+35
-10
lines changed

mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/HomeMenuView.kt

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import org.mozilla.fenix.R
2323
import org.mozilla.fenix.components.accounts.AccountState
2424
import org.mozilla.fenix.components.accounts.FenixFxAEntryPoint
2525
import org.mozilla.fenix.components.menu.MenuAccessPoint
26+
import org.mozilla.fenix.components.usecases.FenixBrowserUseCases
2627
import org.mozilla.fenix.ext.nav
2728
import org.mozilla.fenix.ext.settings
2829
import org.mozilla.fenix.settings.SupportUtils
@@ -37,8 +38,9 @@ import org.mozilla.fenix.GleanMetrics.HomeMenu as HomeMenuMetrics
3738
*
3839
* @param context An Android [Context].
3940
* @param lifecycleOwner [LifecycleOwner] for the view.
40-
* @param homeActivity [HomeActivity] used to open URLs in a new tab.
41+
* @param homeActivity [HomeActivity] used for accessing various app components.
4142
* @param navController [NavController] used for navigation.
43+
* @param fenixBrowserUseCases [FenixBrowserUseCases] used to open URLs when clicked.
4244
* @param menuButton The [MenuButton] that will be used to create a menu when the button is
4345
* clicked.
4446
* @param fxaEntrypoint The source entry point to FxA.
@@ -49,6 +51,7 @@ class HomeMenuView(
4951
private val lifecycleOwner: LifecycleOwner,
5052
private val homeActivity: HomeActivity,
5153
private val navController: NavController,
54+
private val fenixBrowserUseCases: FenixBrowserUseCases,
5255
private val menuButton: WeakReference<MenuButton>,
5356
private val fxaEntrypoint: FxAEntryPoint = FenixFxAEntryPoint.HomeMenu,
5457
) {
@@ -170,23 +173,32 @@ class HomeMenuView(
170173
}
171174
HomeMenu.Item.Help -> {
172175
HomeMenuMetrics.helpTapped.record(NoExtras())
173-
homeActivity.openToBrowserAndLoad(
176+
177+
navController.nav(
178+
R.id.homeFragment,
179+
HomeFragmentDirections.actionGlobalBrowser(),
180+
)
181+
fenixBrowserUseCases.loadUrlOrSearch(
174182
searchTermOrURL = SupportUtils.getSumoURLForTopic(
175183
context = context,
176184
topic = SupportUtils.SumoTopic.HELP,
177185
),
178186
newTab = true,
179-
from = BrowserDirection.FromHome,
187+
private = homeActivity.browsingModeManager.mode.isPrivate,
180188
)
181189
}
182190
HomeMenu.Item.WhatsNew -> {
183191
WhatsNew.userViewedWhatsNew(context)
184192
Events.whatsNewTapped.record(Events.WhatsNewTappedExtra(source = "HOME"))
185193

186-
homeActivity.openToBrowserAndLoad(
194+
navController.nav(
195+
R.id.homeFragment,
196+
HomeFragmentDirections.actionGlobalBrowser(),
197+
)
198+
fenixBrowserUseCases.loadUrlOrSearch(
187199
searchTermOrURL = SupportUtils.WHATS_NEW_URL,
188200
newTab = true,
189-
from = BrowserDirection.FromHome,
201+
private = homeActivity.browsingModeManager.mode.isPrivate,
190202
)
191203
}
192204
HomeMenu.Item.Quit -> {

mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/toolbar/HomeToolbarView.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import org.mozilla.fenix.R
2525
import org.mozilla.fenix.components.toolbar.ToolbarPosition
2626
import org.mozilla.fenix.databinding.FragmentHomeBinding
2727
import org.mozilla.fenix.databinding.FragmentHomeToolbarViewLayoutBinding
28+
import org.mozilla.fenix.ext.components
2829
import org.mozilla.fenix.ext.increaseTapAreaVertically
2930
import org.mozilla.fenix.ext.isLargeWindow
3031
import org.mozilla.fenix.ext.settings
@@ -157,6 +158,7 @@ internal class HomeToolbarView(
157158
lifecycleOwner = homeFragment.viewLifecycleOwner,
158159
homeActivity = homeActivity,
159160
navController = homeFragment.findNavController(),
161+
fenixBrowserUseCases = context.components.useCases.fenixBrowserUseCases,
160162
menuButton = WeakReference(toolbarBinding.menuButton),
161163
).also { it.build() }
162164

mobile/android/fenix/app/src/test/java/org/mozilla/fenix/home/HomeMenuViewTest.kt

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ import org.junit.Before
2525
import org.junit.Rule
2626
import org.junit.Test
2727
import org.junit.runner.RunWith
28-
import org.mozilla.fenix.BrowserDirection
2928
import org.mozilla.fenix.GleanMetrics.Events
3029
import org.mozilla.fenix.GleanMetrics.HomeScreen
3130
import org.mozilla.fenix.HomeActivity
3231
import org.mozilla.fenix.R
3332
import org.mozilla.fenix.components.accounts.AccountState
3433
import org.mozilla.fenix.components.accounts.FenixFxAEntryPoint
34+
import org.mozilla.fenix.components.usecases.FenixBrowserUseCases
3535
import org.mozilla.fenix.helpers.FenixGleanTestRule
3636
import org.mozilla.fenix.settings.SupportUtils
3737
import org.mozilla.fenix.whatsnew.WhatsNew
@@ -50,6 +50,7 @@ class HomeMenuViewTest {
5050
private lateinit var homeActivity: HomeActivity
5151
private lateinit var navController: NavController
5252
private lateinit var menuButton: MenuButton
53+
private lateinit var fenixBrowserUseCases: FenixBrowserUseCases
5354
private lateinit var homeMenuView: HomeMenuView
5455

5556
@Before
@@ -61,6 +62,7 @@ class HomeMenuViewTest {
6162
every { navigate(any<NavDirections>(), any<NavOptions>()) } just runs
6263
every { currentDestination?.id } returns R.id.homeFragment
6364
}
65+
fenixBrowserUseCases = mockk(relaxed = true)
6466

6567
menuButton = spyk(MenuButton(testContext))
6668

@@ -69,6 +71,7 @@ class HomeMenuViewTest {
6971
lifecycleOwner = lifecycleOwner,
7072
homeActivity = homeActivity,
7173
navController = navController,
74+
fenixBrowserUseCases = fenixBrowserUseCases,
7275
menuButton = WeakReference(menuButton),
7376
)
7477
}
@@ -191,13 +194,17 @@ class HomeMenuViewTest {
191194
assertNotNull(HomeMenuMetrics.helpTapped.testGetValue())
192195

193196
verify {
194-
homeActivity.openToBrowserAndLoad(
197+
navController.navigate(
198+
HomeFragmentDirections.actionGlobalBrowser(),
199+
null,
200+
)
201+
fenixBrowserUseCases.loadUrlOrSearch(
195202
searchTermOrURL = SupportUtils.getSumoURLForTopic(
196203
context = testContext,
197204
topic = SupportUtils.SumoTopic.HELP,
198205
),
199206
newTab = true,
200-
from = BrowserDirection.FromHome,
207+
private = false,
201208
)
202209
}
203210
}
@@ -218,10 +225,14 @@ class HomeMenuViewTest {
218225
verify {
219226
WhatsNew.userViewedWhatsNew(testContext)
220227

221-
homeActivity.openToBrowserAndLoad(
228+
navController.navigate(
229+
HomeFragmentDirections.actionGlobalBrowser(),
230+
null,
231+
)
232+
fenixBrowserUseCases.loadUrlOrSearch(
222233
searchTermOrURL = SupportUtils.WHATS_NEW_URL,
223234
newTab = true,
224-
from = BrowserDirection.FromHome,
235+
private = false,
225236
)
226237
}
227238
}

0 commit comments

Comments
 (0)