From 26b79092143adc0a97e0d9007459b55a3ee48859 Mon Sep 17 00:00:00 2001 From: Severin Rudie Date: Fri, 27 Dec 2019 12:15:21 -0800 Subject: [PATCH] For #7352: integrate highlightable browser menu changes (#7353) * For #7352: integrate highlightable browser menu changes * For 7352: invalidate menu when reader mode availability changes * For 7352: removed highlight from reader mode appearance per UX --- .../components/toolbar/DefaultToolbarMenu.kt | 23 ++++++++++++++----- .../fenix/components/toolbar/MenuPresenter.kt | 4 ++++ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt index cf673f3fa..60c8da98b 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt @@ -14,6 +14,7 @@ import mozilla.components.browser.menu.BrowserMenuBuilder import mozilla.components.browser.menu.BrowserMenuHighlight import mozilla.components.browser.menu.item.BrowserMenuDivider import mozilla.components.browser.menu.item.BrowserMenuHighlightableItem +import mozilla.components.browser.menu.item.BrowserMenuHighlightableSwitch import mozilla.components.browser.menu.item.BrowserMenuImageSwitch import mozilla.components.browser.menu.item.BrowserMenuImageText import mozilla.components.browser.menu.item.BrowserMenuItemToolbar @@ -277,10 +278,15 @@ class DefaultToolbarMenu( onItemTapped.invoke(ToolbarMenu.Item.Quit) } - private val readerMode = BrowserMenuImageSwitch( + private val readerMode = BrowserMenuHighlightableSwitch( label = context.getString(R.string.browser_menu_read), - imageResource = R.drawable.ic_readermode, - initialState = readerModeStateProvider + startImageResource = R.drawable.ic_readermode, + initialState = readerModeStateProvider, + highlight = BrowserMenuHighlight.LowPriority( + label = context.getString(R.string.browser_menu_read), + notificationTint = getColor(context, R.color.whats_new_notification_color) + ), + isHighlighted = { true } ) { checked -> onItemTapped.invoke(ToolbarMenu.Item.ReaderMode(checked)) } @@ -293,10 +299,15 @@ class DefaultToolbarMenu( onItemTapped.invoke(ToolbarMenu.Item.ReaderModeAppearance) } - private val openInApp = BrowserMenuImageText( + private val openInApp = BrowserMenuHighlightableItem( label = context.getString(R.string.browser_menu_open_app_link), - imageResource = R.drawable.ic_app_links, - iconTintColorResource = primaryTextColor() + startImageResource = R.drawable.ic_app_links, + iconTintColorResource = primaryTextColor(), + highlight = BrowserMenuHighlight.LowPriority( + label = context.getString(R.string.browser_menu_open_app_link), + notificationTint = getColor(context, R.color.whats_new_notification_color) + ), + isHighlighted = { true } ) { onItemTapped.invoke(ToolbarMenu.Item.OpenInApp) } diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/MenuPresenter.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/MenuPresenter.kt index ec5404a99..e87fa7fb8 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/MenuPresenter.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/MenuPresenter.kt @@ -34,4 +34,8 @@ class MenuPresenter( override fun onWebAppManifestChanged(session: Session, manifest: WebAppManifest?) { menuToolbar.invalidateActions() } + + override fun onReaderableStateUpdated(session: Session, readerable: Boolean) { + menuToolbar.invalidateActions() + } }