parent
907d96e39f
commit
7c9a5c1f14
|
@ -5,11 +5,13 @@
|
||||||
package org.mozilla.fenix.components.toolbar
|
package org.mozilla.fenix.components.toolbar
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import androidx.core.content.ContextCompat.getColor
|
||||||
import androidx.lifecycle.LifecycleOwner
|
import androidx.lifecycle.LifecycleOwner
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import kotlinx.coroutines.Job
|
import kotlinx.coroutines.Job
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import mozilla.components.browser.menu.BrowserMenuBuilder
|
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.BrowserMenuDivider
|
||||||
import mozilla.components.browser.menu.item.BrowserMenuHighlightableItem
|
import mozilla.components.browser.menu.item.BrowserMenuHighlightableItem
|
||||||
import mozilla.components.browser.menu.item.BrowserMenuImageSwitch
|
import mozilla.components.browser.menu.item.BrowserMenuImageSwitch
|
||||||
|
@ -177,7 +179,6 @@ class DefaultToolbarMenu(
|
||||||
onItemTapped.invoke(ToolbarMenu.Item.Help)
|
onItemTapped.invoke(ToolbarMenu.Item.Help)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("Deprecation")
|
|
||||||
private val settings = BrowserMenuHighlightableItem(
|
private val settings = BrowserMenuHighlightableItem(
|
||||||
label = context.getString(R.string.browser_menu_settings),
|
label = context.getString(R.string.browser_menu_settings),
|
||||||
startImageResource = R.drawable.ic_settings,
|
startImageResource = R.drawable.ic_settings,
|
||||||
|
@ -187,10 +188,9 @@ class DefaultToolbarMenu(
|
||||||
textColorResource = if (hasAccountProblem)
|
textColorResource = if (hasAccountProblem)
|
||||||
R.color.sync_error_text_color else
|
R.color.sync_error_text_color else
|
||||||
primaryTextColor(),
|
primaryTextColor(),
|
||||||
highlight = BrowserMenuHighlightableItem.Highlight(
|
highlight = BrowserMenuHighlight.HighPriority(
|
||||||
endImageResource = R.drawable.ic_alert,
|
endImageResource = R.drawable.ic_alert,
|
||||||
backgroundResource = R.drawable.sync_error_background_with_ripple,
|
backgroundTint = R.color.sync_error_background_color
|
||||||
colorResource = R.color.sync_error_background_color
|
|
||||||
),
|
),
|
||||||
isHighlighted = { hasAccountProblem }
|
isHighlighted = { hasAccountProblem }
|
||||||
) {
|
) {
|
||||||
|
@ -213,10 +213,18 @@ class DefaultToolbarMenu(
|
||||||
onItemTapped.invoke(ToolbarMenu.Item.RequestDesktop(checked))
|
onItemTapped.invoke(ToolbarMenu.Item.RequestDesktop(checked))
|
||||||
}
|
}
|
||||||
|
|
||||||
private val addToHomescreen = BrowserMenuImageText(
|
private val addToHomescreen = BrowserMenuHighlightableItem(
|
||||||
label = context.getString(R.string.browser_menu_add_to_homescreen),
|
label = context.getString(R.string.browser_menu_add_to_homescreen),
|
||||||
imageResource = R.drawable.ic_add_to_homescreen,
|
startImageResource = R.drawable.ic_add_to_homescreen,
|
||||||
iconTintColorResource = primaryTextColor()
|
iconTintColorResource = primaryTextColor(),
|
||||||
|
highlight = BrowserMenuHighlight.LowPriority(
|
||||||
|
label = context.getString(R.string.browser_menu_install_on_homescreen),
|
||||||
|
notificationTint = getColor(context, R.color.whats_new_notification_color)
|
||||||
|
),
|
||||||
|
isHighlighted = {
|
||||||
|
val webAppUseCases = context.components.useCases.webAppUseCases
|
||||||
|
webAppUseCases.isPinningSupported() && webAppUseCases.isInstallable()
|
||||||
|
}
|
||||||
) {
|
) {
|
||||||
onItemTapped.invoke(ToolbarMenu.Item.AddToHomeScreen)
|
onItemTapped.invoke(ToolbarMenu.Item.AddToHomeScreen)
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ import mozilla.components.browser.session.SelectionAwareSessionObserver
|
||||||
import mozilla.components.browser.session.Session
|
import mozilla.components.browser.session.Session
|
||||||
import mozilla.components.browser.session.SessionManager
|
import mozilla.components.browser.session.SessionManager
|
||||||
import mozilla.components.browser.toolbar.BrowserToolbar
|
import mozilla.components.browser.toolbar.BrowserToolbar
|
||||||
|
import mozilla.components.concept.engine.manifest.WebAppManifest
|
||||||
|
|
||||||
class MenuPresenter(
|
class MenuPresenter(
|
||||||
private val menuToolbar: BrowserToolbar,
|
private val menuToolbar: BrowserToolbar,
|
||||||
|
@ -28,4 +29,9 @@ class MenuPresenter(
|
||||||
override fun onNavigationStateChanged(session: Session, canGoBack: Boolean, canGoForward: Boolean) {
|
override fun onNavigationStateChanged(session: Session, canGoBack: Boolean, canGoForward: Boolean) {
|
||||||
menuToolbar.invalidateActions()
|
menuToolbar.invalidateActions()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Redraw the install web app button */
|
||||||
|
override fun onWebAppManifestChanged(session: Session, manifest: WebAppManifest?) {
|
||||||
|
menuToolbar.invalidateActions()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,9 @@
|
||||||
package org.mozilla.fenix.home
|
package org.mozilla.fenix.home
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import androidx.core.content.ContextCompat.getColor
|
||||||
import mozilla.components.browser.menu.BrowserMenuBuilder
|
import mozilla.components.browser.menu.BrowserMenuBuilder
|
||||||
|
import mozilla.components.browser.menu.BrowserMenuHighlight
|
||||||
import mozilla.components.browser.menu.item.BrowserMenuCategory
|
import mozilla.components.browser.menu.item.BrowserMenuCategory
|
||||||
import mozilla.components.browser.menu.item.BrowserMenuDivider
|
import mozilla.components.browser.menu.item.BrowserMenuDivider
|
||||||
import mozilla.components.browser.menu.item.BrowserMenuHighlightableItem
|
import mozilla.components.browser.menu.item.BrowserMenuHighlightableItem
|
||||||
|
@ -64,7 +66,6 @@ class HomeMenu(
|
||||||
|
|
||||||
BrowserMenuDivider(),
|
BrowserMenuDivider(),
|
||||||
|
|
||||||
@Suppress("Deprecation")
|
|
||||||
BrowserMenuHighlightableItem(
|
BrowserMenuHighlightableItem(
|
||||||
label = context.getString(R.string.browser_menu_settings),
|
label = context.getString(R.string.browser_menu_settings),
|
||||||
startImageResource = R.drawable.ic_settings,
|
startImageResource = R.drawable.ic_settings,
|
||||||
|
@ -72,27 +73,22 @@ class HomeMenu(
|
||||||
if (hasAccountProblem) R.color.sync_error_text_color else primaryTextColor,
|
if (hasAccountProblem) R.color.sync_error_text_color else primaryTextColor,
|
||||||
textColorResource =
|
textColorResource =
|
||||||
if (hasAccountProblem) R.color.sync_error_text_color else primaryTextColor,
|
if (hasAccountProblem) R.color.sync_error_text_color else primaryTextColor,
|
||||||
highlight = BrowserMenuHighlightableItem.Highlight(
|
|
||||||
|
highlight = BrowserMenuHighlight.HighPriority(
|
||||||
endImageResource = R.drawable.ic_alert,
|
endImageResource = R.drawable.ic_alert,
|
||||||
backgroundResource = R.drawable.sync_error_background_with_ripple,
|
backgroundTint = getColor(context, R.color.sync_error_background_color)
|
||||||
colorResource = R.color.sync_error_background_color
|
|
||||||
),
|
),
|
||||||
isHighlighted = { hasAccountProblem }
|
isHighlighted = { hasAccountProblem }
|
||||||
) {
|
) {
|
||||||
onItemTapped.invoke(Item.Settings)
|
onItemTapped.invoke(Item.Settings)
|
||||||
},
|
},
|
||||||
|
|
||||||
@Suppress("Deprecation")
|
|
||||||
BrowserMenuHighlightableItem(
|
BrowserMenuHighlightableItem(
|
||||||
context.getString(R.string.browser_menu_whats_new),
|
context.getString(R.string.browser_menu_whats_new),
|
||||||
R.drawable.ic_whats_new,
|
R.drawable.ic_whats_new,
|
||||||
highlight = BrowserMenuHighlightableItem.Highlight(
|
iconTintColorResource = primaryTextColor,
|
||||||
startImageResource = R.drawable.ic_whats_new_notification,
|
highlight = BrowserMenuHighlight.LowPriority(
|
||||||
backgroundResource = ThemeManager.resolveAttribute(
|
notificationTint = getColor(context, R.color.whats_new_notification_color)
|
||||||
R.attr.selectableItemBackground,
|
|
||||||
context
|
|
||||||
),
|
|
||||||
colorResource = R.color.whats_new_notification_color
|
|
||||||
),
|
),
|
||||||
isHighlighted = { WhatsNew.shouldHighlightWhatsNew(context) }
|
isHighlighted = { WhatsNew.shouldHighlightWhatsNew(context) }
|
||||||
) {
|
) {
|
||||||
|
|
|
@ -76,6 +76,8 @@
|
||||||
<string name="browser_menu_desktop_site">Desktop site</string>
|
<string name="browser_menu_desktop_site">Desktop site</string>
|
||||||
<!-- Browser menu toggle that adds a shortcut to the site on the device home screen. -->
|
<!-- Browser menu toggle that adds a shortcut to the site on the device home screen. -->
|
||||||
<string name="browser_menu_add_to_homescreen">Add to Home screen</string>
|
<string name="browser_menu_add_to_homescreen">Add to Home screen</string>
|
||||||
|
<!-- Browser menu toggle that installs a Progressive Web App shortcut to the site on the device home screen. -->
|
||||||
|
<string name="browser_menu_install_on_homescreen">Install</string>
|
||||||
<!-- Browser menu button that opens the find in page menu -->
|
<!-- Browser menu button that opens the find in page menu -->
|
||||||
<string name="browser_menu_find_in_page">Find in page</string>
|
<string name="browser_menu_find_in_page">Find in page</string>
|
||||||
<!-- Browser menu button that creates a private tab -->
|
<!-- Browser menu button that creates a private tab -->
|
||||||
|
|
Loading…
Reference in New Issue