Bug 1840308 – added condition to finish first time splash screen faster if the marekting and experiment data is fetched first

fenix/116.0
mike a 11 months ago committed by mergify[bot]
parent 75de4df4ea
commit 272320f011

@ -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
}
}
}

@ -82,6 +82,9 @@ fun createNimbus(context: Context, urlString: String?): NimbusApi {
onApplyCallback = {
FxNimbus.invalidateCachedValues()
}
onFetchedCallback = {
context.settings().nimbusExperimentsFetched = true
}
}.build(appInfo)
}

@ -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,

@ -217,6 +217,7 @@
<string name="pref_key_adjust_adgroup" translatable="false">pref_key_adjust_adgroup</string>
<string name="pref_key_adjust_creative" translatable="false">pref_key_adjust_creative</string>
<string name="pref_key_nimbus_experiments_fetched" translatable="false">pref_key_nimbus_experiments_fetched</string>
<string name="pref_key_utm_params_known" translatable="false">pref_key_utm_params_known</string>
<string name="pref_key_utm_source" translatable="false">pref_key_utm_source</string>
<string name="pref_key_utm_medium" translatable="false">pref_key_utm_medium</string>

Loading…
Cancel
Save