Skip to content

Commit c1e1bda

Browse files
author
rmalicdem
committed
Bug 1969110 - Add 'Homepage' to expanded shortcuts r=android-reviewers,Roger
Differential Revision: https://phabricator.services.mozilla.com/D271659
1 parent 74df37a commit c1e1bda

File tree

4 files changed

+51
-1
lines changed

4 files changed

+51
-1
lines changed

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -483,6 +483,7 @@ class BrowserToolbarMiddleware(
483483
FakeShare,
484484
NewTab,
485485
FakeTranslate,
486+
FakeHomepage,
486487
}
487488

488489
private data class HomeToolbarActionConfig(
@@ -560,6 +561,13 @@ class BrowserToolbarMiddleware(
560561
state = ActionButton.State.DISABLED,
561562
onClick = FakeClicked,
562563
)
564+
565+
HomeToolbarAction.FakeHomepage -> ActionButtonRes(
566+
drawableResId = iconsR.drawable.mozac_ic_home_24,
567+
contentDescription = R.string.browser_menu_homepage,
568+
state = ActionButton.State.DISABLED,
569+
onClick = FakeClicked,
570+
)
563571
}
564572

565573
companion object {
@@ -569,6 +577,7 @@ class BrowserToolbarMiddleware(
569577
): HomeToolbarAction = when (key) {
570578
ShortcutType.BOOKMARK -> HomeToolbarAction.FakeBookmark
571579
ShortcutType.TRANSLATE -> HomeToolbarAction.FakeTranslate
580+
ShortcutType.HOMEPAGE -> HomeToolbarAction.FakeHomepage
572581
else -> HomeToolbarAction.FakeBookmark
573582
}
574583
}

mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/ToolbarShortcut.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ internal val allShortcutOptions: List<ShortcutOption> = listOf(
6363
ShortcutType.HOMEPAGE,
6464
iconsR.drawable.mozac_ic_home_24,
6565
R.string.toolbar_customize_shortcut_homepage,
66-
setOf(ShortcutAvailability.SIMPLE),
66+
setOf(ShortcutAvailability.SIMPLE, ShortcutAvailability.EXPANDED),
6767
),
6868
ShortcutOption(
6969
ShortcutType.BACK,

mobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/toolbar/BrowserToolbarMiddlewareTest.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3138,6 +3138,18 @@ class BrowserToolbarMiddlewareTest {
31383138
assertEquals(expectedTranslateButton(isActive = true), translateButton)
31393139
}
31403140

3141+
@Test
3142+
fun `GIVEN expanded toolbar use homepage shortcut WHEN initializing toolbar THEN show Homepage in navigation actions`() = runTest {
3143+
every { settings.shouldUseExpandedToolbar } returns true
3144+
every { settings.shouldShowToolbarCustomization } returns true
3145+
every { settings.toolbarExpandedShortcutKey } returns ShortcutType.HOMEPAGE
3146+
3147+
val toolbarStore = buildStore()
3148+
3149+
val homepageButton = toolbarStore.state.displayState.navigationActions.first() as ActionButtonRes
3150+
assertEquals(expectedHomepageButton(source = Source.NavigationBar), homepageButton)
3151+
}
3152+
31413153
@Test
31423154
fun `mapShortcutToAction maps keys to actions and falls back to default set`() {
31433155
assertEquals(

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

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -834,6 +834,24 @@ class BrowserToolbarMiddlewareTest {
834834
assertEquals(expectedTranslateButton, translateButton)
835835
}
836836

837+
@Test
838+
fun `GIVEN expanded toolbar use homepage shortcut WHEN initializing toolbar THEN show DISABLED Homepage in navigation actions`() = runTest {
839+
every { testContext.settings().shouldShowToolbarCustomization } returns true
840+
every { testContext.settings().shouldUseExpandedToolbar } returns true
841+
every { testContext.settings().toolbarExpandedShortcutKey } returns ShortcutType.HOMEPAGE
842+
843+
val middleware = BrowserToolbarMiddleware(
844+
appStore,
845+
browserStore,
846+
mockk(),
847+
mockk(),
848+
)
849+
val toolbarStore = buildStore(middleware)
850+
851+
val homepageButton = toolbarStore.state.displayState.navigationActions.first() as ActionButtonRes
852+
assertEquals(expectedHomepageButton, homepageButton)
853+
}
854+
837855
@Test
838856
fun `mapShortcutToAction maps keys to actions and falls back to fake bookmark action`() {
839857
assertEquals(
@@ -844,6 +862,10 @@ class BrowserToolbarMiddlewareTest {
844862
HomeToolbarAction.FakeTranslate,
845863
mapShortcutToAction(key = ShortcutType.TRANSLATE),
846864
)
865+
assertEquals(
866+
HomeToolbarAction.FakeHomepage,
867+
mapShortcutToAction(key = ShortcutType.HOMEPAGE),
868+
)
847869
assertEquals(
848870
HomeToolbarAction.FakeBookmark,
849871
mapShortcutToAction(key = "does_not_exist"),
@@ -983,6 +1005,13 @@ class BrowserToolbarMiddlewareTest {
9831005
onClick = FakeClicked,
9841006
)
9851007

1008+
private val expectedHomepageButton = ActionButtonRes(
1009+
drawableResId = iconsR.drawable.mozac_ic_home_24,
1010+
contentDescription = R.string.browser_menu_homepage,
1011+
state = ActionButton.State.DISABLED,
1012+
onClick = FakeClicked,
1013+
)
1014+
9861015
private class FakeLifecycleOwner(initialState: Lifecycle.State) : LifecycleOwner {
9871016
override val lifecycle: Lifecycle = LifecycleRegistry(this).apply {
9881017
currentState = initialState

0 commit comments

Comments
 (0)