From 486f9a6c340501dd8df2c0e1714d21ccc481ee36 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 25 Nov 2024 14:50:39 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../main/java/com/tangem/tap/MainActivity.kt | 11 ++++++++++- .../local/preferences/PreferencesDataStore.kt | 3 +++ .../preferences/utils/CleanupKeyMigration.kt | 18 ++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 core/datasource/src/main/java/com/tangem/datasource/local/preferences/utils/CleanupKeyMigration.kt diff --git a/app/src/main/java/com/tangem/tap/MainActivity.kt b/app/src/main/java/com/tangem/tap/MainActivity.kt index cc4284cc7a..e456f93295 100644 --- a/app/src/main/java/com/tangem/tap/MainActivity.kt +++ b/app/src/main/java/com/tangem/tap/MainActivity.kt @@ -89,6 +89,7 @@ import kotlinx.coroutines.flow.* import timber.log.Timber import javax.inject.Inject import kotlin.coroutines.CoroutineContext +import kotlin.time.Duration.Companion.seconds lateinit var tangemSdkManager: TangemSdkManager lateinit var backupService: BackupService @@ -314,7 +315,11 @@ class MainActivity : AppCompatActivity(), SnackbarHandler, ActivityResultCallbac private fun installAppTheme() { appThemeModeFlow = createAppThemeModeFlow() - val mode = runBlocking { appThemeModeFlow.first() } + val mode = runBlocking { + withTimeoutOrNull(APP_THEME_LOAD_TIMEOUT.seconds) { + appThemeModeFlow.first() + } ?: AppThemeMode.DEFAULT + } updateAppTheme(mode) } @@ -581,4 +586,8 @@ class MainActivity : AppCompatActivity(), SnackbarHandler, ActivityResultCallbac .onRight { Timber.d("Submitting hashes succeeded") } } } + + companion object { + private const val APP_THEME_LOAD_TIMEOUT = 2 + } } \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/local/preferences/PreferencesDataStore.kt b/core/datasource/src/main/java/com/tangem/datasource/local/preferences/PreferencesDataStore.kt index 9e9b278b7e..9e326cc62c 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/local/preferences/PreferencesDataStore.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/local/preferences/PreferencesDataStore.kt @@ -10,6 +10,8 @@ import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.core.emptyPreferences import androidx.datastore.preferences.preferencesDataStoreFile import com.tangem.datasource.local.preferences.PreferencesDataStore.INSTANCE +import com.tangem.datasource.local.preferences.PreferencesKeys.APP_LOGS_KEY +import com.tangem.datasource.local.preferences.utils.CleanupKeyMigration import com.tangem.datasource.local.preferences.utils.SharedPreferencesKeyMigration import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.SupervisorJob @@ -77,6 +79,7 @@ internal object PreferencesDataStore { legacyKeyName = LEGACY_DEFAULT_KEY_NAME, keyName = PreferencesKeys.BALANCE_HIDING_SETTINGS_KEY.name, ), + CleanupKeyMigration(key = APP_LOGS_KEY), ) } } \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/local/preferences/utils/CleanupKeyMigration.kt b/core/datasource/src/main/java/com/tangem/datasource/local/preferences/utils/CleanupKeyMigration.kt new file mode 100644 index 0000000000..8b5e3fa149 --- /dev/null +++ b/core/datasource/src/main/java/com/tangem/datasource/local/preferences/utils/CleanupKeyMigration.kt @@ -0,0 +1,18 @@ +package com.tangem.datasource.local.preferences.utils + +import androidx.datastore.core.DataMigration +import androidx.datastore.preferences.core.Preferences + +internal class CleanupKeyMigration(private val key: Preferences.Key) : DataMigration { + + override suspend fun cleanUp() { + // do nothing + } + + override suspend fun shouldMigrate(currentData: Preferences): Boolean = currentData.contains(key) + + override suspend fun migrate(currentData: Preferences): Preferences { + currentData.toMutablePreferences().remove(key) + return currentData + } +} \ No newline at end of file