From 272320f011faa9ff32664bc546ed6c1530459107 Mon Sep 17 00:00:00 2001 From: mike a Date: Tue, 27 Jun 2023 10:57:19 +0900 Subject: [PATCH] =?UTF-8?q?Bug=201840308=20=E2=80=93=20added=20condition?= =?UTF-8?q?=20to=20finish=20first=20time=20splash=20screen=20faster=20if?= =?UTF-8?q?=20the=20marekting=20and=20experiment=20data=20is=20fetched=20f?= =?UTF-8?q?irst?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/org/mozilla/fenix/HomeActivity.kt | 10 +++++++--- .../java/org/mozilla/fenix/experiments/NimbusSetup.kt | 3 +++ app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 5 +++++ app/src/main/res/values/preference_keys.xml | 1 + 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index 40ef78ec3b..0daba19887 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -428,12 +428,16 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { if (FxNimbus.features.splashScreen.value().enabled) { val splashScreen = installSplashScreen() - var keepSplashOnScreen = true + var maxDurationReached = false val delay = FxNimbus.features.splashScreen.value().maximumDurationMs.toLong() - splashScreen.setKeepOnScreenCondition { keepSplashOnScreen } + splashScreen.setKeepOnScreenCondition { + val dataFetched = components.settings.utmParamsKnown && + components.settings.nimbusExperimentsFetched + !maxDurationReached && !dataFetched + } MainScope().launch { delay(timeMillis = delay) - keepSplashOnScreen = false + maxDurationReached = true } } } diff --git a/app/src/main/java/org/mozilla/fenix/experiments/NimbusSetup.kt b/app/src/main/java/org/mozilla/fenix/experiments/NimbusSetup.kt index db7d1c1591..d7b24c15e0 100644 --- a/app/src/main/java/org/mozilla/fenix/experiments/NimbusSetup.kt +++ b/app/src/main/java/org/mozilla/fenix/experiments/NimbusSetup.kt @@ -82,6 +82,9 @@ fun createNimbus(context: Context, urlString: String?): NimbusApi { onApplyCallback = { FxNimbus.invalidateCachedValues() } + onFetchedCallback = { + context.settings().nimbusExperimentsFetched = true + } }.build(appInfo) } 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 bb61c41dd8..3bb2732b92 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -186,6 +186,11 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = "", ) + var nimbusExperimentsFetched by booleanPreference( + appContext.getPreferenceKey(R.string.pref_key_nimbus_experiments_fetched), + default = false, + ) + var utmParamsKnown by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_utm_params_known), default = false, diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml index 88abbc9201..b5359a8f54 100644 --- a/app/src/main/res/values/preference_keys.xml +++ b/app/src/main/res/values/preference_keys.xml @@ -217,6 +217,7 @@ pref_key_adjust_adgroup pref_key_adjust_creative + pref_key_nimbus_experiments_fetched pref_key_utm_params_known pref_key_utm_source pref_key_utm_medium