1
0
Fork 0

For #8800: clear menu highlights on use

master
Severin Rudie 2020-02-26 17:04:28 -08:00 committed by Mihai Branescu
parent 95a89f9dba
commit 1381444a52
4 changed files with 30 additions and 3 deletions

View File

@ -36,6 +36,7 @@ import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.getRootView import org.mozilla.fenix.ext.getRootView
import org.mozilla.fenix.ext.nav import org.mozilla.fenix.ext.nav
import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.lib.Do import org.mozilla.fenix.lib.Do
import org.mozilla.fenix.settings.deletebrowsingdata.deleteAndQuit import org.mozilla.fenix.settings.deletebrowsingdata.deleteAndQuit
@ -158,6 +159,7 @@ class DefaultBrowserToolbarController(
} }
} }
ToolbarMenu.Item.AddToHomeScreen -> { ToolbarMenu.Item.AddToHomeScreen -> {
activity.settings().installPwaOpened = true
MainScope().launch { MainScope().launch {
with(activity.components.useCases.webAppUseCases) { with(activity.components.useCases.webAppUseCases) {
if (isInstallable()) { if (isInstallable()) {
@ -247,6 +249,8 @@ class DefaultBrowserToolbarController(
deleteAndQuit(activity, scope, snackbar) deleteAndQuit(activity, scope, snackbar)
} }
is ToolbarMenu.Item.ReaderMode -> { is ToolbarMenu.Item.ReaderMode -> {
activity.settings().readerModeOpened = true
val enabled = currentSession?.readerMode val enabled = currentSession?.readerMode
?: activity.components.core.sessionManager.selectedSession?.readerMode ?: activity.components.core.sessionManager.selectedSession?.readerMode
?: false ?: false
@ -261,6 +265,8 @@ class DefaultBrowserToolbarController(
readerModeController.showControls() readerModeController.showControls()
} }
ToolbarMenu.Item.OpenInApp -> { ToolbarMenu.Item.OpenInApp -> {
activity.settings().openInAppOpened = true
val appLinksUseCases = val appLinksUseCases =
activity.components.useCases.appLinksUseCases activity.components.useCases.appLinksUseCases
val getRedirect = appLinksUseCases.appLinkRedirect val getRedirect = appLinksUseCases.appLinkRedirect

View File

@ -30,6 +30,7 @@ import org.mozilla.fenix.ReleaseChannel
import org.mozilla.fenix.browser.browsingmode.BrowsingMode import org.mozilla.fenix.browser.browsingmode.BrowsingMode
import org.mozilla.fenix.ext.asActivity import org.mozilla.fenix.ext.asActivity
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.theme.ThemeManager import org.mozilla.fenix.theme.ThemeManager
import org.mozilla.fenix.utils.Settings import org.mozilla.fenix.utils.Settings
@ -236,7 +237,9 @@ class DefaultToolbarMenu(
), ),
isHighlighted = { isHighlighted = {
val webAppUseCases = context.components.useCases.webAppUseCases val webAppUseCases = context.components.useCases.webAppUseCases
webAppUseCases.isPinningSupported() && webAppUseCases.isInstallable() webAppUseCases.isPinningSupported() &&
webAppUseCases.isInstallable() &&
!context.settings().installPwaOpened
} }
) { ) {
onItemTapped.invoke(ToolbarMenu.Item.AddToHomeScreen) onItemTapped.invoke(ToolbarMenu.Item.AddToHomeScreen)
@ -284,7 +287,7 @@ class DefaultToolbarMenu(
label = context.getString(R.string.browser_menu_read), label = context.getString(R.string.browser_menu_read),
notificationTint = getColor(context, R.color.whats_new_notification_color) notificationTint = getColor(context, R.color.whats_new_notification_color)
), ),
isHighlighted = { true } isHighlighted = { !context.settings().readerModeOpened }
) { checked -> ) { checked ->
onItemTapped.invoke(ToolbarMenu.Item.ReaderMode(checked)) onItemTapped.invoke(ToolbarMenu.Item.ReaderMode(checked))
} }
@ -305,7 +308,7 @@ class DefaultToolbarMenu(
label = context.getString(R.string.browser_menu_open_app_link), label = context.getString(R.string.browser_menu_open_app_link),
notificationTint = getColor(context, R.color.whats_new_notification_color) notificationTint = getColor(context, R.color.whats_new_notification_color)
), ),
isHighlighted = { true } isHighlighted = { !context.settings().openInAppOpened }
) { ) {
onItemTapped.invoke(ToolbarMenu.Item.OpenInApp) onItemTapped.invoke(ToolbarMenu.Item.OpenInApp)
} }

View File

@ -133,6 +133,21 @@ class Settings private constructor(
default = "" default = ""
) )
var readerModeOpened by booleanPreference(
appContext.getPreferenceKey(R.string.pref_key_reader_mode_opened),
default = false
)
var openInAppOpened by booleanPreference(
appContext.getPreferenceKey(R.string.pref_key_open_in_app_opened),
default = false
)
var installPwaOpened by booleanPreference(
appContext.getPreferenceKey(R.string.pref_key_install_pwa_opened),
default = false
)
val isCrashReportingEnabled: Boolean val isCrashReportingEnabled: Boolean
get() = isCrashReportEnabledInBuild && get() = isCrashReportEnabledInBuild &&
preferences.getBoolean( preferences.getBoolean(

View File

@ -47,6 +47,9 @@
<string name="pref_key_experimentation" translatable="false">pref_key_experimentation</string> <string name="pref_key_experimentation" translatable="false">pref_key_experimentation</string>
<string name="pref_key_showed_private_mode_cfr" translatable="false">pref_key_showed_private_mode_cfr</string> <string name="pref_key_showed_private_mode_cfr" translatable="false">pref_key_showed_private_mode_cfr</string>
<string name="pref_key_private_mode_opened" translatable="false">pref_key_private_mode_opened</string> <string name="pref_key_private_mode_opened" translatable="false">pref_key_private_mode_opened</string>
<string name="pref_key_reader_mode_opened" translatable="false">pref_key_reader_mode_opened</string>
<string name="pref_key_open_in_app_opened" translatable="false">pref_key_open_in_app_opened</string>
<string name="pref_key_install_pwa_opened" translatable="false">pref_key_install_pwa_opened</string>
<!-- Data Choices --> <!-- Data Choices -->
<string name="pref_key_telemetry" translatable="false">pref_key_telemetry</string> <string name="pref_key_telemetry" translatable="false">pref_key_telemetry</string>