From cf9a84eed5861eb911d706e9df8795370fc01880 Mon Sep 17 00:00:00 2001 From: Elise Richards Date: Fri, 7 May 2021 14:12:40 -0500 Subject: [PATCH] Move locale restoration on startup to the visual completeness queue to prevent perf impact (#19315) --- .../java/org/mozilla/fenix/FenixApplication.kt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt index ef45de5b40..87d9349a85 100644 --- a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt +++ b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt @@ -172,7 +172,6 @@ open class FenixApplication : LocaleAwareApplication(), Provider { initializeWebExtensionSupport() restoreBrowserState() restoreDownloads() - restoreLocale() // Just to make sure it is impossible for any application-services pieces // to invoke parts of itself that require complete megazord initialization @@ -225,10 +224,6 @@ open class FenixApplication : LocaleAwareApplication(), Provider { components.useCases.downloadUseCases.restoreDownloads() } - private fun restoreLocale() { - components.useCases.localeUseCases.restore() - } - private fun initVisualCompletenessQueueAndQueueTasks() { val queue = components.performance.visualCompletenessQueue.queue @@ -274,6 +269,14 @@ open class FenixApplication : LocaleAwareApplication(), Provider { } } + fun queueRestoreLocale() { + components.performance.visualCompletenessQueue.queue.runIfReadyOrQueue { + GlobalScope.launch(Dispatchers.IO) { + components.useCases.localeUseCases.restore() + } + } + } + initQueue() // We init these items in the visual completeness queue to avoid them initing in the critical @@ -281,6 +284,7 @@ open class FenixApplication : LocaleAwareApplication(), Provider { queueInitStorageAndServices() queueMetrics() queueReviewPrompt() + queueRestoreLocale() } private fun startMetricsIfEnabled() {