commit fa568b5dac7cda3d781bdb479763b448b4067db7 parent f717645abdf56b04bae6aaa510a03e2a65debcef Author: rmalicdem <rmalicdem@mozilla.com> Date: Tue, 18 Nov 2025 01:49:26 +0000 Bug 2000089 - Refactor ShortcutType to use enums r=android-reviewers,Roger Differential Revision: https://phabricator.services.mozilla.com/D272536 Diffstat:
9 files changed, 90 insertions(+), 127 deletions(-)
diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/TabPreview.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/TabPreview.kt @@ -528,11 +528,8 @@ class TabPreview @JvmOverloads constructor( val shouldUseExpandedToolbar = settings.shouldUseExpandedToolbar val useCustomPrimary = settings.shouldShowToolbarCustomization - val primarySlotAction = mapShortcutToAction( - settings.toolbarSimpleShortcutKey, - ToolbarAction.NewTab, - isBookmarked, - ).takeIf { useCustomPrimary } ?: ToolbarAction.NewTab + val primarySlotAction = ShortcutType.fromValue(settings.toolbarSimpleShortcutKey) + ?.toToolbarAction(isBookmarked).takeIf { useCustomPrimary } ?: ToolbarAction.NewTab return listOf( ToolbarActionConfig(primarySlotAction) { @@ -567,11 +564,8 @@ class TabPreview @JvmOverloads constructor( val shouldUseExpandedToolbar = settings.shouldUseExpandedToolbar val useCustomPrimary = settings.shouldShowToolbarCustomization - val primarySlotAction = mapShortcutToAction( - settings.toolbarExpandedShortcutKey, - getBookmarkAction(isBookmarked), - isBookmarked, - ).takeIf { useCustomPrimary } ?: getBookmarkAction(isBookmarked) + val primarySlotAction = ShortcutType.fromValue(settings.toolbarExpandedShortcutKey) + ?.toToolbarAction(isBookmarked).takeIf { useCustomPrimary } ?: getBookmarkAction(isBookmarked) return listOf( ToolbarActionConfig(primarySlotAction) { shouldUseExpandedToolbar && isTallWindow && !isWideWindow }, @@ -623,18 +617,13 @@ class TabPreview @JvmOverloads constructor( false -> ToolbarAction.Bookmark } - private fun mapShortcutToAction( - key: String, - default: ToolbarAction, - isBookmarked: Boolean = false, - ): ToolbarAction = when (key) { + private fun ShortcutType.toToolbarAction(isBookmarked: Boolean) = when (this) { ShortcutType.NEW_TAB -> ToolbarAction.NewTab ShortcutType.SHARE -> ToolbarAction.Share ShortcutType.BOOKMARK -> getBookmarkAction(isBookmarked) ShortcutType.TRANSLATE -> ToolbarAction.Translate ShortcutType.HOMEPAGE -> ToolbarAction.Homepage ShortcutType.BACK -> ToolbarAction.Back - else -> default } } } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarMiddleware.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarMiddleware.kt @@ -747,8 +747,9 @@ class BrowserToolbarMiddleware( private fun buildEndPageActions(): List<Action> { val isWideScreen = environment?.fragment?.isWideWindow() == true val tabStripEnabled = settings.isTabStripEnabled - val translateShortcutEnabled = settings.toolbarSimpleShortcutKey == ShortcutType.TRANSLATE - val shareShortcutEnabled = settings.toolbarSimpleShortcutKey == ShortcutType.SHARE + val simpleShortcut = ShortcutType.fromValue(settings.toolbarSimpleShortcutKey) + val translateShortcutEnabled = simpleShortcut == ShortcutType.TRANSLATE + val shareShortcutEnabled = simpleShortcut == ShortcutType.SHARE return listOf( ToolbarActionConfig(ToolbarAction.ReaderMode) { @@ -775,11 +776,8 @@ class BrowserToolbarMiddleware( val tabStripEnabled = settings.isTabStripEnabled val shouldUseExpandedToolbar = settings.shouldUseExpandedToolbar val useCustomPrimary = settings.shouldShowToolbarCustomization - val primarySlotAction = mapShortcutToAction( - settings.toolbarSimpleShortcutKey, - ToolbarAction.NewTab, - isBookmarked, - ).takeIf { useCustomPrimary } ?: ToolbarAction.NewTab + val primarySlotAction = ShortcutType.fromValue(settings.toolbarSimpleShortcutKey) + ?.toToolbarAction(isBookmarked).takeIf { useCustomPrimary } ?: ToolbarAction.NewTab val configs = listOf( ToolbarActionConfig(primarySlotAction) { @@ -819,11 +817,8 @@ class BrowserToolbarMiddleware( val isTallWindow = environment.fragment.isTallWindow() val shouldUseExpandedToolbar = settings.shouldUseExpandedToolbar val useCustomPrimary = settings.shouldShowToolbarCustomization - val primarySlotAction = mapShortcutToAction( - settings.toolbarExpandedShortcutKey, - getBookmarkAction(isBookmarked), - isBookmarked, - ).takeIf { useCustomPrimary } ?: getBookmarkAction(isBookmarked) + val primarySlotAction = ShortcutType.fromValue(settings.toolbarExpandedShortcutKey) + ?.toToolbarAction(isBookmarked).takeIf { useCustomPrimary } ?: getBookmarkAction(isBookmarked) return listOf( ToolbarActionConfig(primarySlotAction) { shouldUseExpandedToolbar && isTallWindow && !isWideWindow }, @@ -1026,10 +1021,10 @@ class BrowserToolbarMiddleware( distinctUntilChangedBy { it.pageTranslationStatus } .collect { updateEndPageActions(context) - if (settings.toolbarSimpleShortcutKey == ShortcutType.TRANSLATE) { + if (ShortcutType.fromValue(settings.toolbarSimpleShortcutKey) == ShortcutType.TRANSLATE) { updateEndBrowserActions(context) } - if (settings.toolbarExpandedShortcutKey == ShortcutType.TRANSLATE) { + if (ShortcutType.fromValue(settings.toolbarExpandedShortcutKey) == ShortcutType.TRANSLATE) { updateNavigationActions(context) } } @@ -1331,18 +1326,13 @@ class BrowserToolbarMiddleware( @VisibleForTesting @JvmStatic - internal fun mapShortcutToAction( - key: String, - default: ToolbarAction, - isBookmarked: Boolean = false, - ): ToolbarAction = when (key) { + internal fun ShortcutType.toToolbarAction(isBookmarked: Boolean = false) = when (this) { ShortcutType.NEW_TAB -> ToolbarAction.NewTab ShortcutType.SHARE -> ToolbarAction.Share ShortcutType.BOOKMARK -> getBookmarkAction(isBookmarked) ShortcutType.TRANSLATE -> ToolbarAction.Translate ShortcutType.HOMEPAGE -> ToolbarAction.Homepage ShortcutType.BACK -> ToolbarAction.Back - else -> default } } } 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 @@ -370,9 +370,8 @@ class BrowserToolbarMiddleware( val isTallWindow = environment.fragment.isTallWindow() val shouldUseExpandedToolbar = settings.shouldUseExpandedToolbar val useCustomPrimary = settings.shouldShowToolbarCustomization && shouldUseExpandedToolbar - val primarySlotAction = mapShortcutToAction( - settings.toolbarExpandedShortcutKey, - ).takeIf { useCustomPrimary } ?: HomeToolbarAction.FakeBookmark + val primarySlotAction = ShortcutType.fromValue(settings.toolbarExpandedShortcutKey) + ?.toHomeToolbarAction().takeIf { useCustomPrimary } ?: HomeToolbarAction.FakeBookmark return listOf( HomeToolbarActionConfig(primarySlotAction) { @@ -580,14 +579,13 @@ class BrowserToolbarMiddleware( companion object { @VisibleForTesting - internal fun mapShortcutToAction( - key: String, - ): HomeToolbarAction = when (key) { + internal fun ShortcutType.toHomeToolbarAction() = when (this) { + ShortcutType.NEW_TAB -> HomeToolbarAction.NewTab + ShortcutType.SHARE -> HomeToolbarAction.FakeShare ShortcutType.BOOKMARK -> HomeToolbarAction.FakeBookmark ShortcutType.TRANSLATE -> HomeToolbarAction.FakeTranslate ShortcutType.HOMEPAGE -> HomeToolbarAction.FakeHomepage ShortcutType.BACK -> HomeToolbarAction.FakeBack - else -> HomeToolbarAction.FakeBookmark } } } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/ToolbarExpandedShortcutPreference.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/ToolbarExpandedShortcutPreference.kt @@ -16,7 +16,7 @@ internal class ToolbarExpandedShortcutPreference @JvmOverloads constructor( override val options: List<ShortcutOption> = expandedShortcutOptions - override fun readSelectedKey(): String? = context.settings().toolbarExpandedShortcutKey + override fun readSelectedKey(): String = context.settings().toolbarExpandedShortcutKey override fun writeSelectedKey(key: String) { context.settings().toolbarExpandedShortcutKey = key 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 @@ -10,16 +10,25 @@ import org.mozilla.fenix.R import mozilla.components.ui.icons.R as iconsR /** - * String keys used to persist and map the selected toolbar shortcut option. - * These values are stored in preferences and also used to resolve the UI/action. + * Keys used to persist and map the selected toolbar shortcut option. + * These string values are stored in preferences and also used to resolve the UI/action. */ -object ShortcutType { - const val NEW_TAB = "new_tab" - const val SHARE = "share" - const val BOOKMARK = "bookmark" - const val TRANSLATE = "translate" - const val HOMEPAGE = "homepage" - const val BACK = "back" +enum class ShortcutType(val value: String) { + NEW_TAB("new_tab"), + SHARE("share"), + BOOKMARK("bookmark"), + TRANSLATE("translate"), + HOMEPAGE("homepage"), + BACK("back"), + ; + + companion object { + /** + * Returns the [ShortcutType] for the given string [value], or null if no matching type is found. + */ + fun fromValue(value: String): ShortcutType? = + entries.find { it.value == value } + } } internal enum class ShortcutAvailability { @@ -28,7 +37,7 @@ internal enum class ShortcutAvailability { } internal data class ShortcutOption( - val key: String, + val key: ShortcutType, @param:DrawableRes val icon: Int, @param:StringRes val label: Int, val availability: Set<ShortcutAvailability>, diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/ToolbarShortcutPreference.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/ToolbarShortcutPreference.kt @@ -47,7 +47,7 @@ internal abstract class ToolbarShortcutPreference @JvmOverloads constructor( } protected abstract val options: List<ShortcutOption> - protected abstract fun readSelectedKey(): String? + protected abstract fun readSelectedKey(): String protected abstract fun writeSelectedKey(key: String) protected abstract fun toolbarShortcutPreview(): Int @@ -66,7 +66,9 @@ internal abstract class ToolbarShortcutPreference @JvmOverloads constructor( preview.setImageResource(toolbarShortcutPreview()) val selectedKey = readSelectedKey() - val selected = options.firstOrNull { it.key == selectedKey } ?: options.first() + val selected = options.firstOrNull { + it.key == ShortcutType.fromValue(selectedKey) + } ?: options.first() selectedContainer.removeAllViews() selectedContainer.addView( makeRow( @@ -88,7 +90,7 @@ internal abstract class ToolbarShortcutPreference @JvmOverloads constructor( isChecked = false, isEnabled = true, ) { newlySelected -> - writeSelectedKey(newlySelected.key) + writeSelectedKey(newlySelected.key.value) notifyChanged() }, ) diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/ToolbarSimpleShortcutPreference.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/ToolbarSimpleShortcutPreference.kt @@ -16,7 +16,7 @@ internal class ToolbarSimpleShortcutPreference @JvmOverloads constructor( override val options: List<ShortcutOption> = simpleShortcutOptions - override fun readSelectedKey(): String? = context.settings().toolbarSimpleShortcutKey + override fun readSelectedKey(): String = context.settings().toolbarSimpleShortcutKey override fun writeSelectedKey(key: String) { context.settings().toolbarSimpleShortcutKey = key 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 @@ -142,6 +142,7 @@ import org.mozilla.fenix.components.menu.MenuAccessPoint import org.mozilla.fenix.components.search.BOOKMARKS_SEARCH_ENGINE_ID import org.mozilla.fenix.components.search.HISTORY_SEARCH_ENGINE_ID import org.mozilla.fenix.components.search.TABS_SEARCH_ENGINE_ID +import org.mozilla.fenix.components.toolbar.BrowserToolbarMiddleware.Companion.toToolbarAction import org.mozilla.fenix.components.toolbar.BrowserToolbarMiddleware.ToolbarAction import org.mozilla.fenix.components.toolbar.DisplayActions.AddBookmarkClicked import org.mozilla.fenix.components.toolbar.DisplayActions.EditBookmarkClicked @@ -2892,7 +2893,7 @@ class BrowserToolbarMiddlewareTest { } every { mockContext.resources.configuration } returns configuration every { settings.isTabStripEnabled } returns false - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.SHARE + every { settings.toolbarSimpleShortcutKey } returns ShortcutType.SHARE.value val browserScreenStore = buildBrowserScreenStore() val middleware = buildMiddleware(appStore, browserScreenStore, browserStore) val toolbarStore = buildStore(middleware, browsingModeManager = browsingModeManager, navController = navController) @@ -2909,7 +2910,7 @@ class BrowserToolbarMiddlewareTest { } every { mockContext.resources.configuration } returns configuration every { settings.isTabStripEnabled } returns false - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.TRANSLATE + every { settings.toolbarSimpleShortcutKey } returns ShortcutType.TRANSLATE.value val browserScreenStore = buildBrowserScreenStore() val middleware = buildMiddleware(appStore, browserScreenStore, browserStore) val toolbarStore = buildStore(middleware, browsingModeManager = browsingModeManager, navController = navController) @@ -2939,7 +2940,7 @@ class BrowserToolbarMiddlewareTest { ) } answers { browserAnimatorActionCaptor.captured.invoke(true) } every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.HOMEPAGE + every { settings.toolbarSimpleShortcutKey } returns ShortcutType.HOMEPAGE.value val middleware = buildMiddleware() val toolbarStore = buildStore( @@ -2956,7 +2957,7 @@ class BrowserToolbarMiddlewareTest { fun `GIVEN homepage as new tab is enabled WHEN clicking the homepage button THEN navigate to homepage`() = runTest { every { settings.enableHomepageAsNewTab } returns true every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.HOMEPAGE + every { settings.toolbarSimpleShortcutKey } returns ShortcutType.HOMEPAGE.value val middleware = buildMiddleware() val toolbarStore = buildStore( @@ -2978,7 +2979,7 @@ class BrowserToolbarMiddlewareTest { every { mockContext.resources.configuration } returns configuration every { settings.shouldShowToolbarCustomization } returns true every { settings.shouldUseExpandedToolbar } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.HOMEPAGE + every { settings.toolbarSimpleShortcutKey } returns ShortcutType.HOMEPAGE.value val toolbarStore = buildStore() @@ -2989,7 +2990,7 @@ class BrowserToolbarMiddlewareTest { @Test fun `GIVEN simple toolbar use add bookmark shortcut AND the current page is not bookmarked WHEN initializing toolbar THEN show Bookmark in end browser actions`() = runTest { every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.BOOKMARK + every { settings.toolbarSimpleShortcutKey } returns ShortcutType.BOOKMARK.value val toolbarStore = buildStore() val bookmarkButton = toolbarStore.state.displayState.browserActionsEnd[0] as ActionButtonRes @@ -2999,7 +3000,7 @@ class BrowserToolbarMiddlewareTest { @Test fun `GIVEN simple toolbar use add bookmark shortcut AND the current page is bookmarked WHEN initializing toolbar THEN show ACTIVE EditBookmark in end browser actions`() = runTest { every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.BOOKMARK + every { settings.toolbarSimpleShortcutKey } returns ShortcutType.BOOKMARK.value val tab = createTab("https://example.com") val browserStore = BrowserStore( @@ -3028,7 +3029,7 @@ class BrowserToolbarMiddlewareTest { @Test fun `GIVEN simple toolbar use translate shortcut AND current page is not translated WHEN initializing toolbar THEN show Translate in end browser actions`() = runTest { every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.TRANSLATE + every { settings.toolbarSimpleShortcutKey } returns ShortcutType.TRANSLATE.value val pageTranslationStatus: PageTranslationStatus = mockk(relaxed = true) { every { isTranslationPossible } returns true @@ -3047,7 +3048,7 @@ class BrowserToolbarMiddlewareTest { @Test fun `GIVEN simple toolbar use translate shortcut AND current page is translated WHEN initializing toolbar THEN show ACTIVE Translate in end browser actions`() = runTest { every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.TRANSLATE + every { settings.toolbarSimpleShortcutKey } returns ShortcutType.TRANSLATE.value val pageTranslationStatus: PageTranslationStatus = mockk(relaxed = true) { every { isTranslationPossible } returns true @@ -3066,7 +3067,7 @@ class BrowserToolbarMiddlewareTest { @Test fun `GIVEN simple toolbar use homepage shortcut WHEN initializing toolbar THEN show Homepage in end browser actions`() = runTest { every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.HOMEPAGE + every { settings.toolbarSimpleShortcutKey } returns ShortcutType.HOMEPAGE.value val toolbarStore = buildStore() @@ -3077,7 +3078,7 @@ class BrowserToolbarMiddlewareTest { @Test fun `GIVEN simple toolbar use back shortcut AND current page has no history WHEN initializing toolbar THEN show DISABLED Back in end browser actions`() = runTest { every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.BACK + every { settings.toolbarSimpleShortcutKey } returns ShortcutType.BACK.value val toolbarStore = buildStore() @@ -3088,7 +3089,7 @@ class BrowserToolbarMiddlewareTest { @Test fun `GIVEN simple toolbar use back shortcut AND current page has history WHEN initializing toolbar THEN show ACTIVE Back in end browser actions`() = runTest { every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarSimpleShortcutKey } returns ShortcutType.BACK + every { settings.toolbarSimpleShortcutKey } returns ShortcutType.BACK.value val tab = createTab(url = "https://example.com").let { it.copy(content = it.content.copy(canGoBack = true)) @@ -3113,7 +3114,7 @@ class BrowserToolbarMiddlewareTest { fun `GIVEN expanded toolbar use translate shortcut AND current page is not translated WHEN initializing toolbar THEN show Translate in navigation actions`() = runTest { every { settings.shouldShowToolbarCustomization } returns true every { settings.shouldUseExpandedToolbar } returns true - every { settings.toolbarExpandedShortcutKey } returns ShortcutType.TRANSLATE + every { settings.toolbarExpandedShortcutKey } returns ShortcutType.TRANSLATE.value val pageTranslationStatus: PageTranslationStatus = mockk(relaxed = true) { every { isTranslationPossible } returns true @@ -3133,7 +3134,7 @@ class BrowserToolbarMiddlewareTest { fun `GIVEN expanded toolbar use translate shortcut AND current page is translated WHEN initializing toolbar THEN show ACTIVE Translate in navigation actions`() = runTest { every { settings.shouldShowToolbarCustomization } returns true every { settings.shouldUseExpandedToolbar } returns true - every { settings.toolbarExpandedShortcutKey } returns ShortcutType.TRANSLATE + every { settings.toolbarExpandedShortcutKey } returns ShortcutType.TRANSLATE.value val pageTranslationStatus: PageTranslationStatus = mockk(relaxed = true) { every { isTranslationPossible } returns true @@ -3153,7 +3154,7 @@ class BrowserToolbarMiddlewareTest { 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 + every { settings.toolbarExpandedShortcutKey } returns ShortcutType.HOMEPAGE.value val toolbarStore = buildStore() @@ -3165,7 +3166,7 @@ class BrowserToolbarMiddlewareTest { fun `GIVEN expanded toolbar use back shortcut AND current page has no history WHEN initializing toolbar THEN show DISABLED Back in navigation actions`() = runTest { every { settings.shouldUseExpandedToolbar } returns true every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarExpandedShortcutKey } returns ShortcutType.BACK + every { settings.toolbarExpandedShortcutKey } returns ShortcutType.BACK.value val toolbarStore = buildStore() @@ -3177,7 +3178,7 @@ class BrowserToolbarMiddlewareTest { fun `GIVEN expanded toolbar use back shortcut AND current page has history WHEN initializing toolbar THEN show ACTIVE Back in navigation actions`() = runTest { every { settings.shouldUseExpandedToolbar } returns true every { settings.shouldShowToolbarCustomization } returns true - every { settings.toolbarExpandedShortcutKey } returns ShortcutType.BACK + every { settings.toolbarExpandedShortcutKey } returns ShortcutType.BACK.value val tab = createTab(url = "https://example.com").let { it.copy(content = it.content.copy(canGoBack = true)) @@ -3199,64 +3200,34 @@ class BrowserToolbarMiddlewareTest { } @Test - fun `mapShortcutToAction maps keys to actions and falls back to default set`() { + fun `toToolbarAction maps ShortcutType to ToolbarAction`() { assertEquals( ToolbarAction.NewTab, - BrowserToolbarMiddleware.mapShortcutToAction( - key = ShortcutType.NEW_TAB, - default = ToolbarAction.NewTab, - ), + ShortcutType.NEW_TAB.toToolbarAction(), ) assertEquals( ToolbarAction.Share, - BrowserToolbarMiddleware.mapShortcutToAction( - key = ShortcutType.SHARE, - default = ToolbarAction.NewTab, - ), + ShortcutType.SHARE.toToolbarAction(), ) assertEquals( ToolbarAction.Bookmark, - BrowserToolbarMiddleware.mapShortcutToAction( - key = ShortcutType.BOOKMARK, - default = ToolbarAction.NewTab, - isBookmarked = false, - ), + ShortcutType.BOOKMARK.toToolbarAction(false), ) assertEquals( ToolbarAction.EditBookmark, - BrowserToolbarMiddleware.mapShortcutToAction( - key = ShortcutType.BOOKMARK, - default = ToolbarAction.NewTab, - isBookmarked = true, - ), + ShortcutType.BOOKMARK.toToolbarAction(true), ) assertEquals( ToolbarAction.Translate, - BrowserToolbarMiddleware.mapShortcutToAction( - key = ShortcutType.TRANSLATE, - default = ToolbarAction.NewTab, - ), + ShortcutType.TRANSLATE.toToolbarAction(), ) assertEquals( ToolbarAction.Homepage, - BrowserToolbarMiddleware.mapShortcutToAction( - key = ShortcutType.HOMEPAGE, - default = ToolbarAction.NewTab, - ), + ShortcutType.HOMEPAGE.toToolbarAction(), ) assertEquals( ToolbarAction.Back, - BrowserToolbarMiddleware.mapShortcutToAction( - key = ShortcutType.BACK, - default = ToolbarAction.NewTab, - ), - ) - assertEquals( - ToolbarAction.NewTab, - BrowserToolbarMiddleware.mapShortcutToAction( - key = "does_not_exist", - default = ToolbarAction.NewTab, - ), + ShortcutType.BACK.toToolbarAction(), ) } 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 @@ -85,7 +85,7 @@ import org.mozilla.fenix.components.usecases.FenixBrowserUseCases import org.mozilla.fenix.ext.nav import org.mozilla.fenix.ext.settings import org.mozilla.fenix.helpers.FenixGleanTestRule -import org.mozilla.fenix.home.toolbar.BrowserToolbarMiddleware.Companion.mapShortcutToAction +import org.mozilla.fenix.home.toolbar.BrowserToolbarMiddleware.Companion.toHomeToolbarAction import org.mozilla.fenix.home.toolbar.BrowserToolbarMiddleware.HomeToolbarAction import org.mozilla.fenix.home.toolbar.DisplayActions.FakeClicked import org.mozilla.fenix.home.toolbar.DisplayActions.MenuClicked @@ -125,7 +125,7 @@ class BrowserToolbarMiddlewareTest { every { testContext.settings().isTabStripEnabled } returns false every { testContext.settings().tabManagerEnhancementsEnabled } returns false every { testContext.settings().shouldShowToolbarCustomization } returns false - every { testContext.settings().toolbarExpandedShortcutKey } returns ShortcutType.BOOKMARK + every { testContext.settings().toolbarExpandedShortcutKey } returns ShortcutType.BOOKMARK.value fragment = spyk(Fragment()).apply { every { context } returns mockContext @@ -819,7 +819,7 @@ class BrowserToolbarMiddlewareTest { fun `GIVEN expanded toolbar use translate shortcut WHEN initializing toolbar THEN show DISABLED Translate in navigation actions`() = runTest { every { testContext.settings().shouldShowToolbarCustomization } returns true every { testContext.settings().shouldUseExpandedToolbar } returns true - every { testContext.settings().toolbarExpandedShortcutKey } returns ShortcutType.TRANSLATE + every { testContext.settings().toolbarExpandedShortcutKey } returns ShortcutType.TRANSLATE.value val middleware = BrowserToolbarMiddleware( appStore, @@ -837,7 +837,7 @@ class BrowserToolbarMiddlewareTest { 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 + every { testContext.settings().toolbarExpandedShortcutKey } returns ShortcutType.HOMEPAGE.value val middleware = BrowserToolbarMiddleware( appStore, @@ -855,7 +855,7 @@ class BrowserToolbarMiddlewareTest { fun `GIVEN expanded toolbar use back shortcut WHEN initializing toolbar THEN show DISABLED Back in navigation actions`() = runTest { every { testContext.settings().shouldShowToolbarCustomization } returns true every { testContext.settings().shouldUseExpandedToolbar } returns true - every { testContext.settings().toolbarExpandedShortcutKey } returns ShortcutType.BACK + every { testContext.settings().toolbarExpandedShortcutKey } returns ShortcutType.BACK.value val middleware = BrowserToolbarMiddleware( appStore, @@ -870,26 +870,30 @@ class BrowserToolbarMiddlewareTest { } @Test - fun `mapShortcutToAction maps keys to actions and falls back to fake bookmark action`() { + fun `toHomeToolbarAction maps ShortcutType to HomeToolbarAction`() { + assertEquals( + HomeToolbarAction.NewTab, + ShortcutType.NEW_TAB.toHomeToolbarAction(), + ) + assertEquals( + HomeToolbarAction.FakeShare, + ShortcutType.SHARE.toHomeToolbarAction(), + ) assertEquals( HomeToolbarAction.FakeBookmark, - mapShortcutToAction(key = ShortcutType.BOOKMARK), + ShortcutType.BOOKMARK.toHomeToolbarAction(), ) assertEquals( HomeToolbarAction.FakeTranslate, - mapShortcutToAction(key = ShortcutType.TRANSLATE), + ShortcutType.TRANSLATE.toHomeToolbarAction(), ) assertEquals( HomeToolbarAction.FakeHomepage, - mapShortcutToAction(key = ShortcutType.HOMEPAGE), + ShortcutType.HOMEPAGE.toHomeToolbarAction(), ) assertEquals( HomeToolbarAction.FakeBack, - mapShortcutToAction(key = ShortcutType.BACK), - ) - assertEquals( - HomeToolbarAction.FakeBookmark, - mapShortcutToAction(key = "does_not_exist"), + ShortcutType.BACK.toHomeToolbarAction(), ) }