|
|
|
@ -16,6 +16,7 @@ import org.mozilla.fenix.components.metrics.Event
|
|
|
|
|
import org.mozilla.fenix.ext.components
|
|
|
|
|
import org.mozilla.fenix.tabstray.ext.isNormalModeSelected
|
|
|
|
|
import org.mozilla.fenix.tabstray.ext.isPrivateModeSelected
|
|
|
|
|
import org.mozilla.fenix.tabstray.ext.isSyncedModeSelected
|
|
|
|
|
|
|
|
|
|
class TabsTrayMenu(
|
|
|
|
|
private val context: Context,
|
|
|
|
@ -35,9 +36,12 @@ class TabsTrayMenu(
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private val shouldShowSelectOrShare = { tabLayout.isNormalModeSelected() && checkOpenTabs }
|
|
|
|
|
private val shouldShowTabSetting = { !tabLayout.isSyncedModeSelected() }
|
|
|
|
|
private val shouldShowAccountSetting = { tabLayout.isSyncedModeSelected() }
|
|
|
|
|
|
|
|
|
|
sealed class Item {
|
|
|
|
|
object ShareAllTabs : Item()
|
|
|
|
|
object OpenAccountSettings : Item()
|
|
|
|
|
object OpenTabSettings : Item()
|
|
|
|
|
object SelectTabs : Item()
|
|
|
|
|
object CloseAllTabs : Item()
|
|
|
|
@ -63,12 +67,19 @@ class TabsTrayMenu(
|
|
|
|
|
onItemTapped.invoke(Item.ShareAllTabs)
|
|
|
|
|
}.apply { visible = shouldShowSelectOrShare },
|
|
|
|
|
|
|
|
|
|
SimpleBrowserMenuItem(
|
|
|
|
|
context.getString(R.string.tab_tray_menu_account_settings),
|
|
|
|
|
textColorResource = R.color.primary_text_normal_theme
|
|
|
|
|
) {
|
|
|
|
|
onItemTapped.invoke(Item.OpenAccountSettings)
|
|
|
|
|
}.apply { visible = shouldShowAccountSetting },
|
|
|
|
|
|
|
|
|
|
SimpleBrowserMenuItem(
|
|
|
|
|
context.getString(R.string.tab_tray_menu_tab_settings),
|
|
|
|
|
textColorResource = R.color.primary_text_normal_theme
|
|
|
|
|
) {
|
|
|
|
|
onItemTapped.invoke(Item.OpenTabSettings)
|
|
|
|
|
},
|
|
|
|
|
}.apply { visible = shouldShowTabSetting },
|
|
|
|
|
|
|
|
|
|
SimpleBrowserMenuItem(
|
|
|
|
|
context.getString(R.string.tab_tray_menu_recently_closed),
|
|
|
|
|