From c16969ac5f3fe707022a96695ae74699306d853e Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Fri, 19 Jan 2024 22:32:12 +0100 Subject: [PATCH] Remove old data store backup component --- .../launcher2/preferences/ImportExport.kt | 65 ------------------- .../de/mm20/launcher2/preferences/Module.kt | 1 - 2 files changed, 66 deletions(-) delete mode 100644 core/preferences/src/main/java/de/mm20/launcher2/preferences/ImportExport.kt diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/ImportExport.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/ImportExport.kt deleted file mode 100644 index f29b823b..00000000 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/ImportExport.kt +++ /dev/null @@ -1,65 +0,0 @@ -package de.mm20.launcher2.preferences - -import android.content.Context -import androidx.datastore.core.DataStoreFactory -import androidx.datastore.core.handlers.ReplaceFileCorruptionHandler -import de.mm20.launcher2.backup.Backupable -import de.mm20.launcher2.crashreporter.CrashReporter -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.SupervisorJob -import kotlinx.coroutines.cancel -import kotlinx.coroutines.flow.firstOrNull -import java.io.File - -internal class LauncherStoreBackupComponent( - private val context: Context, - private val dataStore: LegacyDataStore -): Backupable { - override suspend fun backup(toDir: File) { - dataStore.export(toDir) - } - - override suspend fun restore(fromDir: File) { - dataStore.import(context, fromDir) - } -} - -suspend fun LegacyDataStore.export(toDir: File) { - val scope = CoroutineScope(Dispatchers.IO + SupervisorJob()) - val backupDataStore = DataStoreFactory.create( - serializer = LegacySettingsSerializer, - produceFile = { - File(toDir, "settings") - }, - scope = scope - ) - val settings = this.data.firstOrNull() ?: return - backupDataStore.updateData { - settings - } - scope.cancel() -} - - -suspend fun LegacyDataStore.import(context: Context, fromDir: File) { - val scope = CoroutineScope(Dispatchers.IO + SupervisorJob()) - val backupDataStore = DataStoreFactory.create( - serializer = LegacySettingsSerializer, - migrations = getMigrations(context), - corruptionHandler = ReplaceFileCorruptionHandler { - CrashReporter.logException(it) - LegacySettings.getDefaultInstance() - }, - produceFile = { - File(fromDir, "settings") - }, - scope = scope - ) - val settings = backupDataStore.data.firstOrNull() ?: return - - this.updateData { - settings - } - scope.cancel() -} \ No newline at end of file diff --git a/core/preferences/src/main/java/de/mm20/launcher2/preferences/Module.kt b/core/preferences/src/main/java/de/mm20/launcher2/preferences/Module.kt index 4f3515c5..87c386f7 100644 --- a/core/preferences/src/main/java/de/mm20/launcher2/preferences/Module.kt +++ b/core/preferences/src/main/java/de/mm20/launcher2/preferences/Module.kt @@ -26,7 +26,6 @@ import org.koin.dsl.module val preferencesModule = module { single { androidContext().legacyDataStore } - factory(named()) { LauncherStoreBackupComponent(androidContext(), get()) } single { LauncherDataStore(androidContext(), get()) } factory(named()) { get() } factory { MediaSettings(get()) }