diff --git a/app/src/main/java/io/legado/app/help/storage/Backup.kt b/app/src/main/java/io/legado/app/help/storage/Backup.kt index b8e649fe6..64212ad33 100644 --- a/app/src/main/java/io/legado/app/help/storage/Backup.kt +++ b/app/src/main/java/io/legado/app/help/storage/Backup.kt @@ -20,7 +20,7 @@ import java.io.FileOutputStream import java.util.concurrent.TimeUnit -object Backup : BackupRestore() { +object Backup { val backupPath: String by lazy { appCtx.filesDir.getFile("backup").absolutePath @@ -94,7 +94,7 @@ object Backup : BackupRestore() { Preferences.getSharedPreferences(appCtx, backupPath, "config")?.let { sp -> val edit = sp.edit() appCtx.defaultSharedPreferences.all.forEach { (key, value) -> - if (keyIsNotIgnore(key)) { + if (BackupConfig.keyIsNotIgnore(key)) { when (value) { is Int -> edit.putInt(key, value) is Boolean -> edit.putBoolean(key, value) diff --git a/app/src/main/java/io/legado/app/help/storage/BackupRestore.kt b/app/src/main/java/io/legado/app/help/storage/BackupConfig.kt similarity index 93% rename from app/src/main/java/io/legado/app/help/storage/BackupRestore.kt rename to app/src/main/java/io/legado/app/help/storage/BackupConfig.kt index 91d9a25aa..7f0e369a5 100644 --- a/app/src/main/java/io/legado/app/help/storage/BackupRestore.kt +++ b/app/src/main/java/io/legado/app/help/storage/BackupConfig.kt @@ -7,7 +7,7 @@ import io.legado.app.utils.GSON import io.legado.app.utils.fromJsonObject import splitties.init.appCtx -abstract class BackupRestore { +object BackupConfig { private val ignoreConfigPath = FileUtils.getPath(appCtx.filesDir, "restoreIgnore.json") val ignoreConfig: HashMap by lazy { @@ -16,7 +16,7 @@ abstract class BackupRestore { GSON.fromJsonObject>(json).getOrNull() ?: hashMapOf() } - //忽略key + //配置忽略key val ignoreKeys = arrayOf( "readConfig", PreferKey.themeMode, @@ -25,7 +25,7 @@ abstract class BackupRestore { PreferKey.threadCount ) - //忽略标题 + //配置忽略标题 val ignoreTitle = arrayOf( appCtx.getString(R.string.read_config), appCtx.getString(R.string.theme_mode), @@ -52,7 +52,7 @@ abstract class BackupRestore { ) - protected fun keyIsNotIgnore(key: String): Boolean { + fun keyIsNotIgnore(key: String): Boolean { return when { ignorePrefKeys.contains(key) -> false readPrefKeys.contains(key) && ignoreReadConfig -> false @@ -64,7 +64,7 @@ abstract class BackupRestore { } } - protected val ignoreReadConfig: Boolean + val ignoreReadConfig: Boolean get() = ignoreConfig["readConfig"] == true private val ignoreThemeMode: Boolean get() = ignoreConfig[PreferKey.themeMode] == true diff --git a/app/src/main/java/io/legado/app/help/storage/Restore.kt b/app/src/main/java/io/legado/app/help/storage/Restore.kt index 2f1877dfd..4ef358094 100644 --- a/app/src/main/java/io/legado/app/help/storage/Restore.kt +++ b/app/src/main/java/io/legado/app/help/storage/Restore.kt @@ -24,7 +24,7 @@ import splitties.init.appCtx import java.io.File -object Restore : BackupRestore() { +object Restore { suspend fun restore(context: Context, path: String) { withContext(IO) { @@ -131,7 +131,7 @@ object Restore : BackupRestore() { } catch (e: Exception) { e.printOnDebug() } - if (!ignoreReadConfig) { + if (!BackupConfig.ignoreReadConfig) { //恢复阅读界面配置 try { val file = @@ -159,7 +159,7 @@ object Restore : BackupRestore() { Preferences.getSharedPreferences(appCtx, path, "config")?.all?.let { map -> val edit = appCtx.defaultSharedPreferences.edit() map.forEach { (key, value) -> - if (keyIsNotIgnore(key)) { + if (BackupConfig.keyIsNotIgnore(key)) { when (value) { is Int -> edit.putInt(key, value) is Boolean -> edit.putBoolean(key, value) diff --git a/app/src/main/java/io/legado/app/ui/config/BackupConfigFragment.kt b/app/src/main/java/io/legado/app/ui/config/BackupConfigFragment.kt index 6d5377760..42c9f51f0 100644 --- a/app/src/main/java/io/legado/app/ui/config/BackupConfigFragment.kt +++ b/app/src/main/java/io/legado/app/ui/config/BackupConfigFragment.kt @@ -20,10 +20,7 @@ import io.legado.app.constant.PreferKey import io.legado.app.help.AppConfig import io.legado.app.help.LocalConfig import io.legado.app.help.coroutine.Coroutine -import io.legado.app.help.storage.AppWebDav -import io.legado.app.help.storage.Backup -import io.legado.app.help.storage.ImportOldData -import io.legado.app.help.storage.Restore +import io.legado.app.help.storage.* import io.legado.app.lib.dialogs.alert import io.legado.app.lib.permission.Permissions import io.legado.app.lib.permission.PermissionsCompat @@ -224,15 +221,15 @@ class BackupConfigFragment : BasePreferenceFragment(), private fun backupIgnore() { - val checkedItems = BooleanArray(Backup.ignoreKeys.size) { - Backup.ignoreConfig[Backup.ignoreKeys[it]] ?: false + val checkedItems = BooleanArray(BackupConfig.ignoreKeys.size) { + BackupConfig.ignoreConfig[BackupConfig.ignoreKeys[it]] ?: false } alert(R.string.restore_ignore) { - multiChoiceItems(Backup.ignoreTitle, checkedItems) { _, which, isChecked -> - Backup.ignoreConfig[Backup.ignoreKeys[which]] = isChecked + multiChoiceItems(BackupConfig.ignoreTitle, checkedItems) { _, which, isChecked -> + BackupConfig.ignoreConfig[BackupConfig.ignoreKeys[which]] = isChecked } onDismiss { - Backup.saveIgnoreConfig() + BackupConfig.saveIgnoreConfig() } } }