For #456 - Adds popover menu to menu button
parent
4873d989a0
commit
5addcca524
@ -1,9 +1,56 @@
|
|||||||
package org.mozilla.fenix.home
|
|
||||||
|
|
||||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
License, v. 2.0. If a copy of the MPL was not distributed with this
|
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
class HomeMenu {
|
package org.mozilla.fenix.home
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import mozilla.components.browser.menu.BrowserMenuBuilder
|
||||||
|
import mozilla.components.browser.menu.item.BrowserMenuDivider
|
||||||
|
import mozilla.components.browser.menu.item.BrowserMenuImageText
|
||||||
|
import org.mozilla.fenix.DefaultThemeManager
|
||||||
|
import org.mozilla.fenix.R
|
||||||
|
|
||||||
|
class HomeMenu(
|
||||||
|
private val context: Context,
|
||||||
|
private val onItemTapped: (Item) -> Unit = {}
|
||||||
|
) {
|
||||||
|
sealed class Item {
|
||||||
|
object Help : Item()
|
||||||
|
object Settings : Item()
|
||||||
|
object Library : Item()
|
||||||
|
}
|
||||||
|
|
||||||
|
val menuBuilder by lazy { BrowserMenuBuilder(menuItems) }
|
||||||
|
|
||||||
|
private val menuItems by lazy {
|
||||||
|
listOf(
|
||||||
|
BrowserMenuImageText(
|
||||||
|
context.getString(R.string.browser_menu_settings),
|
||||||
|
R.drawable.ic_settings,
|
||||||
|
context.getString(R.string.browser_menu_settings),
|
||||||
|
DefaultThemeManager.resolveAttribute(R.attr.browserToolbarIcons, context)
|
||||||
|
) {
|
||||||
|
onItemTapped.invoke(HomeMenu.Item.Settings)
|
||||||
|
},
|
||||||
|
|
||||||
|
BrowserMenuImageText(
|
||||||
|
context.getString(R.string.browser_menu_library),
|
||||||
|
R.drawable.ic_library,
|
||||||
|
context.getString(R.string.browser_menu_library),
|
||||||
|
DefaultThemeManager.resolveAttribute(R.attr.browserToolbarIcons, context)
|
||||||
|
) {
|
||||||
|
onItemTapped.invoke(HomeMenu.Item.Library)
|
||||||
|
},
|
||||||
|
|
||||||
|
BrowserMenuDivider(),
|
||||||
|
BrowserMenuImageText(
|
||||||
|
context.getString(R.string.browser_menu_help),
|
||||||
|
R.drawable.ic_help,
|
||||||
|
context.getString(R.string.browser_menu_help),
|
||||||
|
DefaultThemeManager.resolveAttribute(R.attr.browserToolbarIcons, context)
|
||||||
|
) {
|
||||||
|
onItemTapped.invoke(HomeMenu.Item.Help)
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue