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.getRootView
import org.mozilla.fenix.ext.nav
import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.lib.Do
import org.mozilla.fenix.settings.deletebrowsingdata.deleteAndQuit
@ -158,6 +159,7 @@ class DefaultBrowserToolbarController(
}
}
ToolbarMenu.Item.AddToHomeScreen -> {
activity.settings().installPwaOpened = true
MainScope().launch {
with(activity.components.useCases.webAppUseCases) {
if (isInstallable()) {
@ -247,6 +249,8 @@ class DefaultBrowserToolbarController(
deleteAndQuit(activity, scope, snackbar)
}
is ToolbarMenu.Item.ReaderMode -> {
activity.settings().readerModeOpened = true
val enabled = currentSession?.readerMode
?: activity.components.core.sessionManager.selectedSession?.readerMode
?: false
@ -261,6 +265,8 @@ class DefaultBrowserToolbarController(
readerModeController.showControls()
}
ToolbarMenu.Item.OpenInApp -> {
activity.settings().openInAppOpened = true
val appLinksUseCases =
activity.components.useCases.appLinksUseCases
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.ext.asActivity
import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.theme.ThemeManager
import org.mozilla.fenix.utils.Settings
@ -236,7 +237,9 @@ class DefaultToolbarMenu(
),
isHighlighted = {
val webAppUseCases = context.components.useCases.webAppUseCases
webAppUseCases.isPinningSupported() && webAppUseCases.isInstallable()
webAppUseCases.isPinningSupported() &&
webAppUseCases.isInstallable() &&
!context.settings().installPwaOpened
}
) {
onItemTapped.invoke(ToolbarMenu.Item.AddToHomeScreen)
@ -284,7 +287,7 @@ class DefaultToolbarMenu(
label = context.getString(R.string.browser_menu_read),
notificationTint = getColor(context, R.color.whats_new_notification_color)
),
isHighlighted = { true }
isHighlighted = { !context.settings().readerModeOpened }
) { checked ->
onItemTapped.invoke(ToolbarMenu.Item.ReaderMode(checked))
}
@ -305,7 +308,7 @@ class DefaultToolbarMenu(
label = context.getString(R.string.browser_menu_open_app_link),
notificationTint = getColor(context, R.color.whats_new_notification_color)
),
isHighlighted = { true }
isHighlighted = { !context.settings().openInAppOpened }
) {
onItemTapped.invoke(ToolbarMenu.Item.OpenInApp)
}

View File

@ -133,6 +133,21 @@ class Settings private constructor(
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
get() = isCrashReportEnabledInBuild &&
preferences.getBoolean(

View File

@ -47,6 +47,9 @@
<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_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 -->
<string name="pref_key_telemetry" translatable="false">pref_key_telemetry</string>