|
|
@ -21,6 +21,7 @@ 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
|
|
|
|
import mozilla.components.browser.menu.item.BrowserMenuImageText
|
|
|
|
import mozilla.components.browser.menu.item.BrowserMenuImageText
|
|
|
|
|
|
|
|
import mozilla.components.browser.menu.item.BrowserMenuImageTextCheckboxButton
|
|
|
|
import mozilla.components.browser.menu.item.BrowserMenuItemToolbar
|
|
|
|
import mozilla.components.browser.menu.item.BrowserMenuItemToolbar
|
|
|
|
import mozilla.components.browser.menu.item.WebExtensionPlaceholderMenuItem
|
|
|
|
import mozilla.components.browser.menu.item.WebExtensionPlaceholderMenuItem
|
|
|
|
import mozilla.components.browser.state.selector.findTab
|
|
|
|
import mozilla.components.browser.state.selector.findTab
|
|
|
@ -163,8 +164,7 @@ class DefaultToolbarMenu(
|
|
|
|
secondaryImageTintResource = primaryTextColor(),
|
|
|
|
secondaryImageTintResource = primaryTextColor(),
|
|
|
|
disableInSecondaryState = false
|
|
|
|
disableInSecondaryState = false
|
|
|
|
) {
|
|
|
|
) {
|
|
|
|
if (!isCurrentUrlBookmarked) isCurrentUrlBookmarked = true
|
|
|
|
handleBookmarkItemTapped()
|
|
|
|
onItemTapped.invoke(ToolbarMenu.Item.Bookmark)
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
BrowserMenuItemToolbar(listOf(back, forward, bookmark, share, refresh))
|
|
|
|
BrowserMenuItemToolbar(listOf(back, forward, bookmark, share, refresh))
|
|
|
@ -375,14 +375,6 @@ class DefaultToolbarMenu(
|
|
|
|
onItemTapped.invoke(ToolbarMenu.Item.NewTab)
|
|
|
|
onItemTapped.invoke(ToolbarMenu.Item.NewTab)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
val bookmarksItem = BrowserMenuImageText(
|
|
|
|
|
|
|
|
context.getString(R.string.library_bookmarks),
|
|
|
|
|
|
|
|
R.drawable.ic_bookmark_filled,
|
|
|
|
|
|
|
|
primaryTextColor()
|
|
|
|
|
|
|
|
) {
|
|
|
|
|
|
|
|
onItemTapped.invoke(ToolbarMenu.Item.Bookmarks)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
val historyItem = BrowserMenuImageText(
|
|
|
|
val historyItem = BrowserMenuImageText(
|
|
|
|
context.getString(R.string.library_history),
|
|
|
|
context.getString(R.string.library_history),
|
|
|
|
R.drawable.ic_history,
|
|
|
|
R.drawable.ic_history,
|
|
|
@ -495,6 +487,23 @@ class DefaultToolbarMenu(
|
|
|
|
onItemTapped.invoke(ToolbarMenu.Item.Settings)
|
|
|
|
onItemTapped.invoke(ToolbarMenu.Item.Settings)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
val bookmarksItem = BrowserMenuImageTextCheckboxButton(
|
|
|
|
|
|
|
|
imageResource = R.drawable.ic_bookmarks_menu,
|
|
|
|
|
|
|
|
iconTintColorResource = primaryTextColor(),
|
|
|
|
|
|
|
|
label = context.getString(R.string.library_bookmarks),
|
|
|
|
|
|
|
|
labelListener = {
|
|
|
|
|
|
|
|
onItemTapped.invoke(ToolbarMenu.Item.Bookmarks)
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
primaryStateIconResource = R.drawable.ic_bookmark_outline,
|
|
|
|
|
|
|
|
secondaryStateIconResource = R.drawable.ic_bookmark_filled,
|
|
|
|
|
|
|
|
tintColorResource = accentBrightTextColor(),
|
|
|
|
|
|
|
|
primaryLabel = context.getString(R.string.add_label),
|
|
|
|
|
|
|
|
secondaryLabel = context.getString(R.string.edit_label),
|
|
|
|
|
|
|
|
isInPrimaryState = { !isCurrentUrlBookmarked }
|
|
|
|
|
|
|
|
) {
|
|
|
|
|
|
|
|
handleBookmarkItemTapped()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
val menuItems =
|
|
|
|
val menuItems =
|
|
|
|
listOfNotNull(
|
|
|
|
listOfNotNull(
|
|
|
|
if (isTopToolbarSelected) menuToolbar else null,
|
|
|
|
if (isTopToolbarSelected) menuToolbar else null,
|
|
|
@ -524,10 +533,19 @@ class DefaultToolbarMenu(
|
|
|
|
menuItems
|
|
|
|
menuItems
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private fun handleBookmarkItemTapped() {
|
|
|
|
|
|
|
|
if (!isCurrentUrlBookmarked) isCurrentUrlBookmarked = true
|
|
|
|
|
|
|
|
onItemTapped.invoke(ToolbarMenu.Item.Bookmark)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ColorRes
|
|
|
|
@ColorRes
|
|
|
|
@VisibleForTesting
|
|
|
|
@VisibleForTesting
|
|
|
|
internal fun primaryTextColor() = ThemeManager.resolveAttribute(R.attr.primaryText, context)
|
|
|
|
internal fun primaryTextColor() = ThemeManager.resolveAttribute(R.attr.primaryText, context)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ColorRes
|
|
|
|
|
|
|
|
@VisibleForTesting
|
|
|
|
|
|
|
|
internal fun accentBrightTextColor() = ThemeManager.resolveAttribute(R.attr.accentBright, context)
|
|
|
|
|
|
|
|
|
|
|
|
@VisibleForTesting
|
|
|
|
@VisibleForTesting
|
|
|
|
internal fun registerForIsBookmarkedUpdates() {
|
|
|
|
internal fun registerForIsBookmarkedUpdates() {
|
|
|
|
store.flowScoped(lifecycleOwner) { flow ->
|
|
|
|
store.flowScoped(lifecycleOwner) { flow ->
|
|
|
|