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