From 7e3f64fc61125ad61c51813d4c763c066adcdedf Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Tue, 1 Apr 2025 18:51:29 -0400 Subject: [PATCH] Performance: Avoids saving the first collection on login --- .../java/com/vitorpamplona/amethyst/model/AccountSettings.kt | 4 ++-- .../vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountSettings.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountSettings.kt index 7ea351443..4bd7f8bf0 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountSettings.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountSettings.kt @@ -122,13 +122,13 @@ class AccountSettings( var hasDonatedInVersion: MutableStateFlow> = MutableStateFlow(setOf()), val pendingAttestations: MutableStateFlow> = MutableStateFlow>(mapOf()), ) { - val saveable = MutableStateFlow(AccountSettingsUpdater(this)) + val saveable = MutableStateFlow(AccountSettingsUpdater(null)) val syncedSettings: AccountSyncedSettings = backupSyncedSettings?.let { AccountSyncedSettings(it) } ?: AccountSyncedSettings(AccountSyncedSettingsInternal()) class AccountSettingsUpdater( - val accountSettings: AccountSettings, + val accountSettings: AccountSettings?, ) fun saveAccountSettings() { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt index 1cf963b1e..2ead1a8a3 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt @@ -179,7 +179,9 @@ class AccountStateViewModel : ViewModel() { collectorJob = viewModelScope.launch(Dispatchers.IO) { accountSettings.saveable.debounce(1000).collect { - LocalPreferences.saveToEncryptedStorage(it.accountSettings) + if (it.accountSettings != null) { + LocalPreferences.saveToEncryptedStorage(it.accountSettings) + } } } }