From 1381444a52ad60561b50e2a0c7a5cccb418f615e Mon Sep 17 00:00:00 2001 From: Severin Rudie Date: Wed, 26 Feb 2020 17:04:28 -0800 Subject: [PATCH] For #8800: clear menu highlights on use --- .../toolbar/BrowserToolbarController.kt | 6 ++++++ .../components/toolbar/DefaultToolbarMenu.kt | 9 ++++++--- .../main/java/org/mozilla/fenix/utils/Settings.kt | 15 +++++++++++++++ app/src/main/res/values/preference_keys.xml | 3 +++ 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarController.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarController.kt index 15053c231..69a0cc325 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarController.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarController.kt @@ -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 diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt index 4d15d9fdd..b13dbaa38 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt @@ -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) } diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt index 16d224665..c6d722358 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -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( diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml index 089b061b0..1b622472f 100644 --- a/app/src/main/res/values/preference_keys.xml +++ b/app/src/main/res/values/preference_keys.xml @@ -47,6 +47,9 @@ pref_key_experimentation pref_key_showed_private_mode_cfr pref_key_private_mode_opened + pref_key_reader_mode_opened + pref_key_open_in_app_opened + pref_key_install_pwa_opened pref_key_telemetry