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 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))

@ -12,12 +12,14 @@ import android.view.View
import android.widget.FrameLayout
import androidx.appcompat.content.res.AppCompatResources
import androidx.core.view.doOnNextLayout
import androidx.core.view.isVisible
import androidx.core.view.updateLayoutParams
import mozilla.components.browser.state.selector.getNormalOrPrivateTabs
import mozilla.components.browser.state.selector.selectedTab
import mozilla.components.browser.thumbnails.loader.ThumbnailLoader
import mozilla.components.concept.base.images.ImageLoadRequest
import org.mozilla.fenix.R
import org.mozilla.fenix.components.toolbar.IncompleteRedesignToolbarFeature
import org.mozilla.fenix.components.toolbar.ToolbarPosition
import org.mozilla.fenix.databinding.TabPreviewBinding
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
binding.tabButton.findViewById<View>(R.id.counter_box).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.ext.bookmarkStorage
import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.theme.ThemeManager
import org.mozilla.fenix.utils.Settings
import org.mozilla.fenix.utils.ToolbarPopupWindow
@ -170,6 +171,8 @@ class BrowserToolbarView(
isPrivate = customTabSession.content.private,
)
} else {
val isNavBarEnabled = IncompleteRedesignToolbarFeature(context.settings()).isEnabled
DefaultToolbarIntegration(
this,
view,
@ -177,6 +180,7 @@ class BrowserToolbarView(
lifecycleOwner,
sessionId = null,
isPrivate = components.core.store.state.selectedTab?.content?.private ?: false,
isNavBarEnabled = isNavBarEnabled,
interactor = interactor,
)
}

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

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

Loading…
Cancel
Save