Bug 1864760 - Hide Menu, Home, and Tab counter button from BrowserFragment Toolbar.

fenix/125.0
Harrison Oglesby 4 months ago committed by mergify[bot]
parent aa8403e585
commit 56e77609ba

@ -113,29 +113,32 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler {
} }
val isPrivate = (activity as HomeActivity).browsingModeManager.mode.isPrivate val isPrivate = (activity as HomeActivity).browsingModeManager.mode.isPrivate
val leadingAction = if (isPrivate && context.settings().feltPrivateBrowsingEnabled) {
BrowserToolbar.Button(
imageDrawable = AppCompatResources.getDrawable(
context,
R.drawable.mozac_ic_data_clearance_24,
)!!,
contentDescription = context.getString(R.string.browser_toolbar_erase),
iconTintColorResource = ThemeManager.resolveAttribute(R.attr.textPrimary, context),
listener = browserToolbarInteractor::onEraseButtonClicked,
)
} else {
BrowserToolbar.Button(
imageDrawable = AppCompatResources.getDrawable(
context,
R.drawable.mozac_ic_home_24,
)!!,
contentDescription = context.getString(R.string.browser_toolbar_home),
iconTintColorResource = ThemeManager.resolveAttribute(R.attr.textPrimary, context),
listener = browserToolbarInteractor::onHomeButtonClicked,
)
}
browserToolbarView.view.addNavigationAction(leadingAction) if (!IncompleteRedesignToolbarFeature(context.settings()).isEnabled) {
val leadingAction = if (isPrivate && context.settings().feltPrivateBrowsingEnabled) {
BrowserToolbar.Button(
imageDrawable = AppCompatResources.getDrawable(
context,
R.drawable.mozac_ic_data_clearance_24,
)!!,
contentDescription = context.getString(R.string.browser_toolbar_erase),
iconTintColorResource = ThemeManager.resolveAttribute(R.attr.textPrimary, context),
listener = browserToolbarInteractor::onEraseButtonClicked,
)
} else {
BrowserToolbar.Button(
imageDrawable = AppCompatResources.getDrawable(
context,
R.drawable.mozac_ic_home_24,
)!!,
contentDescription = context.getString(R.string.browser_toolbar_home),
iconTintColorResource = ThemeManager.resolveAttribute(R.attr.textPrimary, context),
listener = browserToolbarInteractor::onHomeButtonClicked,
)
}
browserToolbarView.view.addNavigationAction(leadingAction)
}
updateToolbarActions(isTablet = resources.getBoolean(R.bool.tablet)) updateToolbarActions(isTablet = resources.getBoolean(R.bool.tablet))

@ -12,12 +12,14 @@ import android.view.View
import android.widget.FrameLayout import android.widget.FrameLayout
import androidx.appcompat.content.res.AppCompatResources import androidx.appcompat.content.res.AppCompatResources
import androidx.core.view.doOnNextLayout import androidx.core.view.doOnNextLayout
import androidx.core.view.isVisible
import androidx.core.view.updateLayoutParams import androidx.core.view.updateLayoutParams
import mozilla.components.browser.state.selector.getNormalOrPrivateTabs import mozilla.components.browser.state.selector.getNormalOrPrivateTabs
import mozilla.components.browser.state.selector.selectedTab import mozilla.components.browser.state.selector.selectedTab
import mozilla.components.browser.thumbnails.loader.ThumbnailLoader import mozilla.components.browser.thumbnails.loader.ThumbnailLoader
import mozilla.components.concept.base.images.ImageLoadRequest import mozilla.components.concept.base.images.ImageLoadRequest
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.components.toolbar.IncompleteRedesignToolbarFeature
import org.mozilla.fenix.components.toolbar.ToolbarPosition import org.mozilla.fenix.components.toolbar.ToolbarPosition
import org.mozilla.fenix.databinding.TabPreviewBinding import org.mozilla.fenix.databinding.TabPreviewBinding
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
@ -46,6 +48,10 @@ class TabPreview @JvmOverloads constructor(
) )
} }
val isNavBarEnabled = IncompleteRedesignToolbarFeature(context.settings()).isEnabled
binding.tabButton.isVisible = !isNavBarEnabled
binding.menuButton.isVisible = !isNavBarEnabled
// Change view properties to avoid confusing the UI tests // Change view properties to avoid confusing the UI tests
binding.tabButton.findViewById<View>(R.id.counter_box).id = View.NO_ID binding.tabButton.findViewById<View>(R.id.counter_box).id = View.NO_ID
binding.tabButton.findViewById<View>(R.id.counter_text).id = View.NO_ID binding.tabButton.findViewById<View>(R.id.counter_text).id = View.NO_ID

@ -28,6 +28,7 @@ import org.mozilla.fenix.customtabs.CustomTabToolbarIntegration
import org.mozilla.fenix.customtabs.CustomTabToolbarMenu import org.mozilla.fenix.customtabs.CustomTabToolbarMenu
import org.mozilla.fenix.ext.bookmarkStorage import org.mozilla.fenix.ext.bookmarkStorage
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.theme.ThemeManager import org.mozilla.fenix.theme.ThemeManager
import org.mozilla.fenix.utils.Settings import org.mozilla.fenix.utils.Settings
import org.mozilla.fenix.utils.ToolbarPopupWindow import org.mozilla.fenix.utils.ToolbarPopupWindow
@ -170,6 +171,8 @@ class BrowserToolbarView(
isPrivate = customTabSession.content.private, isPrivate = customTabSession.content.private,
) )
} else { } else {
val isNavBarEnabled = IncompleteRedesignToolbarFeature(context.settings()).isEnabled
DefaultToolbarIntegration( DefaultToolbarIntegration(
this, this,
view, view,
@ -177,6 +180,7 @@ class BrowserToolbarView(
lifecycleOwner, lifecycleOwner,
sessionId = null, sessionId = null,
isPrivate = components.core.store.state.selectedTab?.content?.private ?: false, isPrivate = components.core.store.state.selectedTab?.content?.private ?: false,
isNavBarEnabled = isNavBarEnabled,
interactor = interactor, interactor = interactor,
) )
} }

@ -83,6 +83,7 @@ class DefaultToolbarIntegration(
lifecycleOwner: LifecycleOwner, lifecycleOwner: LifecycleOwner,
sessionId: String? = null, sessionId: String? = null,
isPrivate: Boolean, isPrivate: Boolean,
isNavBarEnabled: Boolean = false,
interactor: BrowserToolbarInteractor, interactor: BrowserToolbarInteractor,
) : ToolbarIntegration( ) : ToolbarIntegration(
context = context, context = context,
@ -115,40 +116,44 @@ class DefaultToolbarIntegration(
DisplayToolbar.Indicators.HIGHLIGHT, DisplayToolbar.Indicators.HIGHLIGHT,
) )
val tabCounterMenu = FenixTabCounterMenu( if (isNavBarEnabled) {
context = context, toolbar.hideMenuButton()
onItemTapped = { } else {
interactor.onTabCounterMenuItemTapped(it) val tabCounterMenu = FenixTabCounterMenu(
}, context = context,
iconColor = if (isPrivate) { onItemTapped = {
ContextCompat.getColor(context, R.color.fx_mobile_private_text_color_primary) interactor.onTabCounterMenuItemTapped(it)
},
iconColor = if (isPrivate) {
ContextCompat.getColor(context, R.color.fx_mobile_private_text_color_primary)
} else {
null
},
).also {
it.updateMenu(context.settings().toolbarPosition)
}
val tabsAction = TabCounterToolbarButton(
lifecycleOwner = lifecycleOwner,
showTabs = {
toolbar.hideKeyboard()
interactor.onTabCounterClicked()
},
store = store,
menu = tabCounterMenu,
showMaskInPrivateMode = context.settings().feltPrivateBrowsingEnabled,
)
val tabCount = if (isPrivate) {
store.state.privateTabs.size
} else { } else {
null store.state.normalTabs.size
}, }
).also {
it.updateMenu(context.settings().toolbarPosition)
}
val tabsAction = TabCounterToolbarButton( tabsAction.updateCount(tabCount)
lifecycleOwner = lifecycleOwner,
showTabs = {
toolbar.hideKeyboard()
interactor.onTabCounterClicked()
},
store = store,
menu = tabCounterMenu,
showMaskInPrivateMode = context.settings().feltPrivateBrowsingEnabled,
)
val tabCount = if (isPrivate) { toolbar.addBrowserAction(tabsAction)
store.state.privateTabs.size
} else {
store.state.normalTabs.size
} }
tabsAction.updateCount(tabCount)
toolbar.addBrowserAction(tabsAction)
} }
override fun start() { override fun start() {

@ -42,6 +42,7 @@ class DefaultToolbarIntegrationTest {
sessionId = null, sessionId = null,
isPrivate = false, isPrivate = false,
interactor = mockk(), interactor = mockk(),
isNavBarEnabled = false,
) )
} }

Loading…
Cancel
Save