commit c1e1bdaf607a898b62eb51c0d7368fbd6b2cf908 parent 74df37aab1b4b3f08d8d0b2a50e9ca53ce78bbe3 Author: rmalicdem <rmalicdem@mozilla.com> Date: Tue, 11 Nov 2025 21:29:22 +0000 Bug 1969110 - Add 'Homepage' to expanded shortcuts r=android-reviewers,Roger Differential Revision: https://phabricator.services.mozilla.com/D271659 Diffstat:
4 files changed, 51 insertions(+), 1 deletion(-)
diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/toolbar/BrowserToolbarMiddleware.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/toolbar/BrowserToolbarMiddleware.kt @@ -483,6 +483,7 @@ class BrowserToolbarMiddleware( FakeShare, NewTab, FakeTranslate, + FakeHomepage, } private data class HomeToolbarActionConfig( @@ -560,6 +561,13 @@ class BrowserToolbarMiddleware( state = ActionButton.State.DISABLED, onClick = FakeClicked, ) + + HomeToolbarAction.FakeHomepage -> ActionButtonRes( + drawableResId = iconsR.drawable.mozac_ic_home_24, + contentDescription = R.string.browser_menu_homepage, + state = ActionButton.State.DISABLED, + onClick = FakeClicked, + ) } companion object { @@ -569,6 +577,7 @@ class BrowserToolbarMiddleware( ): HomeToolbarAction = when (key) { ShortcutType.BOOKMARK -> HomeToolbarAction.FakeBookmark ShortcutType.TRANSLATE -> HomeToolbarAction.FakeTranslate + ShortcutType.HOMEPAGE -> HomeToolbarAction.FakeHomepage else -> HomeToolbarAction.FakeBookmark } } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/ToolbarShortcut.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/ToolbarShortcut.kt @@ -63,7 +63,7 @@ internal val allShortcutOptions: List<ShortcutOption> = listOf( ShortcutType.HOMEPAGE, iconsR.drawable.mozac_ic_home_24, R.string.toolbar_customize_shortcut_homepage, - setOf(ShortcutAvailability.SIMPLE), + setOf(ShortcutAvailability.SIMPLE, ShortcutAvailability.EXPANDED), ), ShortcutOption( ShortcutType.BACK, diff --git a/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/toolbar/BrowserToolbarMiddlewareTest.kt b/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/toolbar/BrowserToolbarMiddlewareTest.kt @@ -3139,6 +3139,18 @@ class BrowserToolbarMiddlewareTest { } @Test + fun `GIVEN expanded toolbar use homepage shortcut WHEN initializing toolbar THEN show Homepage in navigation actions`() = runTest { + every { settings.shouldUseExpandedToolbar } returns true + every { settings.shouldShowToolbarCustomization } returns true + every { settings.toolbarExpandedShortcutKey } returns ShortcutType.HOMEPAGE + + val toolbarStore = buildStore() + + val homepageButton = toolbarStore.state.displayState.navigationActions.first() as ActionButtonRes + assertEquals(expectedHomepageButton(source = Source.NavigationBar), homepageButton) + } + + @Test fun `mapShortcutToAction maps keys to actions and falls back to default set`() { assertEquals( ToolbarAction.NewTab, diff --git a/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/home/toolbar/BrowserToolbarMiddlewareTest.kt b/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/home/toolbar/BrowserToolbarMiddlewareTest.kt @@ -835,6 +835,24 @@ class BrowserToolbarMiddlewareTest { } @Test + fun `GIVEN expanded toolbar use homepage shortcut WHEN initializing toolbar THEN show DISABLED Homepage in navigation actions`() = runTest { + every { testContext.settings().shouldShowToolbarCustomization } returns true + every { testContext.settings().shouldUseExpandedToolbar } returns true + every { testContext.settings().toolbarExpandedShortcutKey } returns ShortcutType.HOMEPAGE + + val middleware = BrowserToolbarMiddleware( + appStore, + browserStore, + mockk(), + mockk(), + ) + val toolbarStore = buildStore(middleware) + + val homepageButton = toolbarStore.state.displayState.navigationActions.first() as ActionButtonRes + assertEquals(expectedHomepageButton, homepageButton) + } + + @Test fun `mapShortcutToAction maps keys to actions and falls back to fake bookmark action`() { assertEquals( HomeToolbarAction.FakeBookmark, @@ -845,6 +863,10 @@ class BrowserToolbarMiddlewareTest { mapShortcutToAction(key = ShortcutType.TRANSLATE), ) assertEquals( + HomeToolbarAction.FakeHomepage, + mapShortcutToAction(key = ShortcutType.HOMEPAGE), + ) + assertEquals( HomeToolbarAction.FakeBookmark, mapShortcutToAction(key = "does_not_exist"), ) @@ -983,6 +1005,13 @@ class BrowserToolbarMiddlewareTest { onClick = FakeClicked, ) + private val expectedHomepageButton = ActionButtonRes( + drawableResId = iconsR.drawable.mozac_ic_home_24, + contentDescription = R.string.browser_menu_homepage, + state = ActionButton.State.DISABLED, + onClick = FakeClicked, + ) + private class FakeLifecycleOwner(initialState: Lifecycle.State) : LifecycleOwner { override val lifecycle: Lifecycle = LifecycleRegistry(this).apply { currentState = initialState