1
0
Fork 0

For #3523 Add Firefox Sync error states also to Settings in Home menu

master
mcarare 2019-11-04 12:15:37 +02:00 committed by Emily Kager
parent 3fc263d547
commit 9258df2c69
1 changed files with 30 additions and 10 deletions

View File

@ -11,6 +11,7 @@ import mozilla.components.browser.menu.item.BrowserMenuDivider
import mozilla.components.browser.menu.item.BrowserMenuHighlightableItem
import mozilla.components.browser.menu.item.BrowserMenuImageText
import org.mozilla.fenix.R
import org.mozilla.fenix.ext.components
import org.mozilla.fenix.theme.ThemeManager
import org.mozilla.fenix.utils.Settings
import org.mozilla.fenix.whatsnew.WhatsNew
@ -31,17 +32,24 @@ class HomeMenu(
val menuBuilder by lazy { BrowserMenuBuilder(menuItems) }
private val hasAccountProblem = context.components.backgroundServices.accountManager.accountNeedsReauth()
private val primaryTextColor =
ThemeManager.resolveAttribute(R.attr.primaryText, context)
private val menuCategoryTextColor =
ThemeManager.resolveAttribute(R.attr.menuCategoryText, context)
private val menuItems by lazy {
val items = mutableListOf(
BrowserMenuCategory(
context.getString(R.string.browser_menu_your_library),
textColorResource = ThemeManager.resolveAttribute(R.attr.menuCategoryText, context)
textColorResource = menuCategoryTextColor
),
BrowserMenuImageText(
context.getString(R.string.library_bookmarks),
R.drawable.ic_bookmark_outline,
ThemeManager.resolveAttribute(R.attr.primaryText, context)
primaryTextColor
) {
onItemTapped.invoke(Item.Bookmarks)
},
@ -49,17 +57,29 @@ class HomeMenu(
BrowserMenuImageText(
context.getString(R.string.library_history),
R.drawable.ic_history,
ThemeManager.resolveAttribute(R.attr.primaryText, context)
primaryTextColor
) {
onItemTapped.invoke(Item.History)
},
BrowserMenuDivider(),
BrowserMenuImageText(
context.getString(R.string.browser_menu_settings),
R.drawable.ic_settings,
ThemeManager.resolveAttribute(R.attr.primaryText, context)
BrowserMenuHighlightableItem(
label = context.getString(R.string.browser_menu_settings),
imageResource = R.drawable.ic_settings,
iconTintColorResource =
if (hasAccountProblem) R.color.sync_error_text_color else primaryTextColor,
textColorResource =
if (hasAccountProblem) R.color.sync_error_text_color else primaryTextColor,
highlight = if (hasAccountProblem) {
BrowserMenuHighlightableItem.Highlight(
endImageResource = R.drawable.ic_alert,
backgroundResource = R.drawable.sync_error_background_with_ripple,
colorResource = R.color.sync_error_background_color
)
} else null
) {
onItemTapped.invoke(Item.Settings)
},
@ -83,19 +103,19 @@ class HomeMenu(
BrowserMenuImageText(
context.getString(R.string.browser_menu_help),
R.drawable.ic_help,
ThemeManager.resolveAttribute(R.attr.primaryText, context)
primaryTextColor
) {
onItemTapped.invoke(Item.Help)
}
)
)
if (Settings.getInstance(context).shouldDeleteBrowsingDataOnQuit) {
items.add(
BrowserMenuImageText(
context.getString(R.string.delete_browsing_data_on_quit_action),
R.drawable.ic_exit,
ThemeManager.resolveAttribute(R.attr.primaryText, context)
primaryTextColor
) {
onItemTapped.invoke(Item.Quit)
}