diff --git a/app/src/main/java/org/mozilla/fenix/perf/Performance.kt b/app/src/main/java/org/mozilla/fenix/perf/Performance.kt index 56a8f7bc77..4b0a73b22d 100644 --- a/app/src/main/java/org/mozilla/fenix/perf/Performance.kt +++ b/app/src/main/java/org/mozilla/fenix/perf/Performance.kt @@ -74,6 +74,6 @@ object Performance { * Disables the first time PWA popup. */ private fun disableFirstTimePWAPopup(context: Context) { - Settings.getInstance(context).shouldShowFirstTimePwaFragment = false + Settings.getInstance(context).userKnowsAboutPWAs = true } } diff --git a/app/src/main/java/org/mozilla/fenix/shortcut/FirstTimePwaObserver.kt b/app/src/main/java/org/mozilla/fenix/shortcut/FirstTimePwaObserver.kt index d0fdb5c620..2c19810d75 100644 --- a/app/src/main/java/org/mozilla/fenix/shortcut/FirstTimePwaObserver.kt +++ b/app/src/main/java/org/mozilla/fenix/shortcut/FirstTimePwaObserver.kt @@ -27,7 +27,7 @@ class FirstTimePwaObserver( val directions = BrowserFragmentDirections.actionBrowserFragmentToFirstTimePwaFragment() navController.nav(R.id.browserFragment, directions) - settings.shouldShowFirstTimePwaFragment = false + settings.userKnowsAboutPWAs = true } } } 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 b80125c42b..f63b874c07 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -456,35 +456,26 @@ class Settings private constructor( default = false ) - var shouldShowFirstTimePwaFragment: Boolean + val shouldShowFirstTimePwaFragment: Boolean get() { - val alreadyShownPwaOnboarding = preferences.getBoolean( - appContext.getPreferenceKey(R.string.pref_key_show_first_time_pwa), false) - // ShortcutManager::pinnedShortcuts is only available on Oreo+ - if (!alreadyShownPwaOnboarding && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + if (!userKnowsAboutPWAs && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { val alreadyHavePWaInstalled = appContext.getSystemService(ShortcutManager::class.java) .pinnedShortcuts.size > 0 - // Users don't need to be shown the PWA onboarding if they already have PWAs installed. - preferences.edit() - .putBoolean( - appContext.getPreferenceKey(R.string.pref_key_show_first_time_pwa), - alreadyHavePWaInstalled) - .apply() - - return !alreadyHavePWaInstalled + // Users know about PWAs onboarding if they already have PWAs installed. + userKnowsAboutPWAs = alreadyHavePWaInstalled } - - return !alreadyShownPwaOnboarding - } - set(value) { - preferences.edit() - .putBoolean(appContext.getPreferenceKey(R.string.pref_key_show_first_time_pwa), value) - .apply() + // Show dialog only if user does not know abut PWAs + return !userKnowsAboutPWAs } + var userKnowsAboutPWAs by booleanPreference( + appContext.getPreferenceKey(R.string.pref_key_user_knows_about_pwa), + default = false + ) + @VisibleForTesting(otherwise = PRIVATE) internal val trackingProtectionOnboardingCount by intPreference( appContext.getPreferenceKey(R.string.pref_key_tracking_protection_onboarding), diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml index 40ddb391d0..36aeb3f6bc 100644 --- a/app/src/main/res/values/preference_keys.xml +++ b/app/src/main/res/values/preference_keys.xml @@ -161,7 +161,8 @@ pref_key_pocket_top_site_added pref_key_top_sites_size - pref_key_show_first_time_pwa + + pref_key_user_knows_about_pwa pref_key_migrating_from_fenix_nightly_tip pref_key_migrating_from_firefox_nightly_tip