From 40509a528e88e7192189675b740bc056afb6b658 Mon Sep 17 00:00:00 2001 From: Roger Yang Date: Wed, 10 Aug 2022 12:19:31 -0400 Subject: [PATCH] [fenix] Close https://github.com/mozilla-mobile/fenix/issues/26198: Add debounce to account manager syncs --- app/src/main/java/org/mozilla/fenix/HomeActivity.kt | 7 ++++++- .../fenix/home/recentsyncedtabs/RecentSyncedTabFeature.kt | 6 +++++- .../home/recentsyncedtabs/RecentSyncedTabFeatureTest.kt | 2 +- 3 files changed, 12 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 af73193238..720066ea59 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -340,8 +340,13 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { lifecycleScope.launch { // If we're authenticated, kick-off a sync and a device state refresh. components.backgroundServices.accountManager.authenticatedAccount()?.let { + val syncReason = when (isVisuallyComplete) { + true -> SyncReason.User + false -> SyncReason.Startup + } + components.backgroundServices.accountManager.syncNow( - SyncReason.Startup, + reason = syncReason, debounce = true ) } diff --git a/app/src/main/java/org/mozilla/fenix/home/recentsyncedtabs/RecentSyncedTabFeature.kt b/app/src/main/java/org/mozilla/fenix/home/recentsyncedtabs/RecentSyncedTabFeature.kt index 1a83909350..5777edffab 100644 --- a/app/src/main/java/org/mozilla/fenix/home/recentsyncedtabs/RecentSyncedTabFeature.kt +++ b/app/src/main/java/org/mozilla/fenix/home/recentsyncedtabs/RecentSyncedTabFeature.kt @@ -60,7 +60,11 @@ class RecentSyncedTabFeature( // Sync tabs storage will fail to retrieve tabs aren't refreshed, as that action // is what populates the device constellation state accountManager.withConstellation { refreshDevices() } - accountManager.syncNow(SyncReason.User, customEngineSubset = listOf(SyncEngine.Tabs)) + accountManager.syncNow( + reason = SyncReason.User, + debounce = true, + customEngineSubset = listOf(SyncEngine.Tabs), + ) } }.launchIn(coroutineScope) } diff --git a/app/src/test/java/org/mozilla/fenix/home/recentsyncedtabs/RecentSyncedTabFeatureTest.kt b/app/src/test/java/org/mozilla/fenix/home/recentsyncedtabs/RecentSyncedTabFeatureTest.kt index 6539014772..2c9c1be807 100644 --- a/app/src/test/java/org/mozilla/fenix/home/recentsyncedtabs/RecentSyncedTabFeatureTest.kt +++ b/app/src/test/java/org/mozilla/fenix/home/recentsyncedtabs/RecentSyncedTabFeatureTest.kt @@ -128,7 +128,7 @@ class RecentSyncedTabFeatureTest { verify { appStore.dispatch(AppAction.RecentSyncedTabStateChange(RecentSyncedTabState.Loading)) } coVerify { accountManager.withConstellation { refreshDevices() } } - coVerify { accountManager.syncNow(reason = SyncReason.User, debounce = false, customEngineSubset = listOf(SyncEngine.Tabs)) } + coVerify { accountManager.syncNow(reason = SyncReason.User, debounce = true, customEngineSubset = listOf(SyncEngine.Tabs)) } } @Test