commit 911891bab91f5c7749c8914d59ffd6d3966f9d7a
parent 7cc59907a56b04393954b3d34a0a8e3d93dab6e0
Author: rmalicdem <rmalicdem@mozilla.com>
Date: Tue, 11 Nov 2025 21:29:23 +0000
Bug 1998550 - Support tab previews with expanded toolbar customization r=android-reviewers,Roger
Differential Revision: https://phabricator.services.mozilla.com/D271798
Diffstat:
1 file changed, 30 insertions(+), 20 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
@@ -44,7 +44,6 @@ import mozilla.components.support.ktx.kotlin.applyRegistrableDomainSpan
import mozilla.components.support.ktx.kotlin.isContentUrl
import mozilla.components.support.ktx.util.URLStringUtils
import org.mozilla.fenix.R
-import org.mozilla.fenix.components.appstate.OrientationMode
import org.mozilla.fenix.components.toolbar.ToolbarPosition
import org.mozilla.fenix.databinding.TabPreviewBinding
import org.mozilla.fenix.ext.components
@@ -528,8 +527,11 @@ class TabPreview @JvmOverloads constructor(
val shouldUseExpandedToolbar = settings.shouldUseExpandedToolbar
val useCustomPrimary = settings.shouldShowToolbarCustomization && !shouldUseExpandedToolbar
- val primarySlotAction = mapShortcutToAction(settings.toolbarSimpleShortcutKey, isBookmarked)
- .takeIf { useCustomPrimary } ?: ToolbarAction.NewTab
+ val primarySlotAction = mapShortcutToAction(
+ settings.toolbarSimpleShortcutKey,
+ ToolbarAction.NewTab,
+ isBookmarked,
+ ).takeIf { useCustomPrimary } ?: ToolbarAction.NewTab
return listOf(
ToolbarActionConfig(primarySlotAction) {
@@ -558,20 +560,24 @@ class TabPreview @JvmOverloads constructor(
.getOrDefault(listOf())
.isNotEmpty()
- val isExpandedAndPortrait = context.settings().shouldUseExpandedToolbar &&
- context.components.appStore.state.orientation == OrientationMode.Portrait
+ val settings = context.settings()
+ val isWideWindow = context.isWideWindow()
+ val isTallWindow = context.isTallWindow()
+ val shouldUseExpandedToolbar = settings.shouldUseExpandedToolbar
+
+ val useCustomPrimary = settings.shouldShowToolbarCustomization && shouldUseExpandedToolbar
+ val primarySlotAction = mapShortcutToAction(
+ settings.toolbarExpandedShortcutKey,
+ getBookmarkAction(isBookmarked),
+ isBookmarked,
+ ).takeIf { useCustomPrimary } ?: getBookmarkAction(isBookmarked)
return listOf(
- ToolbarActionConfig(ToolbarAction.Bookmark) {
- isExpandedAndPortrait && !isBookmarked
- },
- ToolbarActionConfig(ToolbarAction.EditBookmark) {
- isExpandedAndPortrait && isBookmarked
- },
- ToolbarActionConfig(ToolbarAction.Share) { isExpandedAndPortrait },
- ToolbarActionConfig(ToolbarAction.NewTab) { isExpandedAndPortrait },
- ToolbarActionConfig(ToolbarAction.TabCounter) { isExpandedAndPortrait },
- ToolbarActionConfig(ToolbarAction.Menu) { isExpandedAndPortrait },
+ ToolbarActionConfig(primarySlotAction) { shouldUseExpandedToolbar && isTallWindow && !isWideWindow },
+ ToolbarActionConfig(ToolbarAction.Share) { shouldUseExpandedToolbar && isTallWindow && !isWideWindow },
+ ToolbarActionConfig(ToolbarAction.NewTab) { shouldUseExpandedToolbar && isTallWindow && !isWideWindow },
+ ToolbarActionConfig(ToolbarAction.TabCounter) { shouldUseExpandedToolbar && isTallWindow && !isWideWindow },
+ ToolbarActionConfig(ToolbarAction.Menu) { shouldUseExpandedToolbar && isTallWindow && !isWideWindow },
).filter { config ->
config.isVisible()
}.map { config ->
@@ -610,20 +616,24 @@ class TabPreview @JvmOverloads constructor(
}
companion object {
+ private fun getBookmarkAction(isBookmarked: Boolean): ToolbarAction =
+ when (isBookmarked) {
+ true -> ToolbarAction.EditBookmark
+ false -> ToolbarAction.Bookmark
+ }
+
private fun mapShortcutToAction(
key: String,
+ default: ToolbarAction,
isBookmarked: Boolean = false,
): ToolbarAction = when (key) {
ShortcutType.NEW_TAB -> ToolbarAction.NewTab
ShortcutType.SHARE -> ToolbarAction.Share
- ShortcutType.BOOKMARK -> when (isBookmarked) {
- true -> ToolbarAction.EditBookmark
- false -> ToolbarAction.Bookmark
- }
+ ShortcutType.BOOKMARK -> getBookmarkAction(isBookmarked)
ShortcutType.TRANSLATE -> ToolbarAction.Translate
ShortcutType.HOMEPAGE -> ToolbarAction.Homepage
ShortcutType.BACK -> ToolbarAction.Back
- else -> ToolbarAction.NewTab
+ else -> default
}
}
}