diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarView.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarView.kt index 8bc5d342d..2f6719da0 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarView.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarView.kt @@ -178,6 +178,7 @@ class BrowserToolbarView( this, sessionManager, customTabSession?.id, + shouldReverseItems = !shouldUseBottomToolbar, onItemTapped = { interactor.onBrowserToolbarMenuItemTapped(it) } diff --git a/app/src/main/java/org/mozilla/fenix/customtabs/CustomTabToolbarMenu.kt b/app/src/main/java/org/mozilla/fenix/customtabs/CustomTabToolbarMenu.kt index 0dd612231..9aed183be 100644 --- a/app/src/main/java/org/mozilla/fenix/customtabs/CustomTabToolbarMenu.kt +++ b/app/src/main/java/org/mozilla/fenix/customtabs/CustomTabToolbarMenu.kt @@ -5,12 +5,14 @@ package org.mozilla.fenix.customtabs import android.content.Context +import android.graphics.Typeface import mozilla.components.browser.menu.BrowserMenuBuilder import mozilla.components.browser.menu.item.BrowserMenuDivider import mozilla.components.browser.menu.item.BrowserMenuImageText import mozilla.components.browser.menu.item.BrowserMenuItemToolbar -import mozilla.components.browser.menu.item.BrowserMenuSwitch import mozilla.components.browser.menu.item.SimpleBrowserMenuItem +import mozilla.components.browser.menu.item.BrowserMenuImageSwitch +import mozilla.components.browser.menu.item.BrowserMenuCategory import mozilla.components.browser.session.Session import mozilla.components.browser.session.SessionManager import org.mozilla.fenix.R @@ -21,6 +23,7 @@ class CustomTabToolbarMenu( private val context: Context, private val sessionManager: SessionManager, private val sessionId: String?, + private val shouldReverseItems: Boolean, private val onItemTapped: (ToolbarMenu.Item) -> Unit = {} ) : ToolbarMenu { override val menuBuilder by lazy { BrowserMenuBuilder(menuItems) } @@ -84,16 +87,17 @@ class CustomTabToolbarMenu( } private val menuItems by lazy { - listOf( - menuToolbar, + val menuItems = listOf( + poweredBy, BrowserMenuDivider(), share, desktopMode, findInPage, openInFenix, BrowserMenuDivider(), - poweredBy + menuToolbar ) + if (shouldReverseItems) { menuItems.reversed() } else { menuItems } } private val share = BrowserMenuImageText( @@ -105,7 +109,8 @@ class CustomTabToolbarMenu( onItemTapped.invoke(ToolbarMenu.Item.Share) } - private val desktopMode = BrowserMenuSwitch( + private val desktopMode = BrowserMenuImageSwitch( + imageResource = R.drawable.ic_desktop, label = context.getString(R.string.browser_menu_desktop_site), initialState = { session?.desktopMode ?: false } ) { checked -> @@ -130,13 +135,14 @@ class CustomTabToolbarMenu( onItemTapped.invoke(ToolbarMenu.Item.OpenInFenix) } - private val poweredBy = SimpleBrowserMenuItem( + private val poweredBy = BrowserMenuCategory( label = { val appName = context.getString(R.string.app_name) context.getString(R.string.browser_menu_powered_by, appName).toUpperCase() }(), textSize = ToolbarMenu.CAPTION_TEXT_SIZE, - textColorResource = primaryTextColor() + textColorResource = primaryTextColor(), + textStyle = Typeface.NORMAL ) private fun primaryTextColor() = ThemeManager.resolveAttribute(R.attr.primaryText, context) diff --git a/app/src/main/java/org/mozilla/fenix/customtabs/CustomTabsIntegration.kt b/app/src/main/java/org/mozilla/fenix/customtabs/CustomTabsIntegration.kt index 5c436ff4c..79c8d0165 100644 --- a/app/src/main/java/org/mozilla/fenix/customtabs/CustomTabsIntegration.kt +++ b/app/src/main/java/org/mozilla/fenix/customtabs/CustomTabsIntegration.kt @@ -25,6 +25,7 @@ class CustomTabsIntegration( activity: Activity, engineLayout: View, onItemTapped: (ToolbarMenu.Item) -> Unit = {}, + shouldReverseItems: Boolean, isPrivate: Boolean ) : LifecycleAwareFeature, UserInteractionHandler { @@ -86,6 +87,7 @@ class CustomTabsIntegration( activity, sessionManager, sessionId, + shouldReverseItems, onItemTapped = onItemTapped ) } diff --git a/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserFragment.kt index d6dd18369..f7c81714b 100644 --- a/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserFragment.kt @@ -35,6 +35,7 @@ import org.mozilla.fenix.browser.FenixSnackbarDelegate import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.nav import org.mozilla.fenix.ext.requireComponents +import org.mozilla.fenix.ext.settings /** * Fragment used for browsing the web within external apps. @@ -68,7 +69,8 @@ class ExternalAppBrowserFragment : BaseBrowserFragment(), UserInteractionHandler activity = activity, engineLayout = view.swipeRefresh, onItemTapped = { browserInteractor.onBrowserToolbarMenuItemTapped(it) }, - isPrivate = (activity as HomeActivity).browsingModeManager.mode.isPrivate + isPrivate = (activity as HomeActivity).browsingModeManager.mode.isPrivate, + shouldReverseItems = !activity.settings().shouldUseBottomToolbar ), owner = this, view = view