From da269c384a28a6533e4fdef751ccbb37492f52a4 Mon Sep 17 00:00:00 2001 From: kunfei Date: Sat, 30 Apr 2022 18:37:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/legado/app/help/config/LocalConfig.kt | 23 ++++++++----------- .../java/io/legado/app/help/storage/Backup.kt | 5 ++-- .../legado/app/utils/PreferencesExtensions.kt | 11 +++++++++ 3 files changed, 24 insertions(+), 15 deletions(-) create mode 100644 app/src/main/java/io/legado/app/utils/PreferencesExtensions.kt diff --git a/app/src/main/java/io/legado/app/help/config/LocalConfig.kt b/app/src/main/java/io/legado/app/help/config/LocalConfig.kt index 6304c8be0..c52e55df6 100644 --- a/app/src/main/java/io/legado/app/help/config/LocalConfig.kt +++ b/app/src/main/java/io/legado/app/help/config/LocalConfig.kt @@ -1,15 +1,14 @@ package io.legado.app.help.config import android.content.Context +import android.content.SharedPreferences import androidx.core.content.edit import splitties.init.appCtx -object LocalConfig { +object LocalConfig : + SharedPreferences by appCtx.getSharedPreferences("local", Context.MODE_PRIVATE) { private const val versionCodeKey = "appVersionCode" - private val localConfig = - appCtx.getSharedPreferences("local", Context.MODE_PRIVATE) - val readHelpVersionIsLast: Boolean get() = isLastVersion(1, "readHelpVersion", "firstRead") @@ -35,18 +34,16 @@ object LocalConfig { get() = !isLastVersion(4, "rssSourceVersion") var versionCode - get() = localConfig.getLong(versionCodeKey, 0) + get() = getLong(versionCodeKey, 0) set(value) { - localConfig.edit { - putLong(versionCodeKey, value) - } + edit { putLong(versionCodeKey, value) } } val isFirstOpenApp: Boolean get() { - val value = localConfig.getBoolean("firstOpen", true) + val value = getBoolean("firstOpen", true) if (value) { - localConfig.edit { putBoolean("firstOpen", false) } + edit { putBoolean("firstOpen", false) } } return value } @@ -57,14 +54,14 @@ object LocalConfig { versionKey: String, firstOpenKey: String? = null ): Boolean { - var version = localConfig.getInt(versionKey, 0) + var version = getInt(versionKey, 0) if (version == 0 && firstOpenKey != null) { - if (!localConfig.getBoolean(firstOpenKey, true)) { + if (!getBoolean(firstOpenKey, true)) { version = 1 } } if (version < lastVersion) { - localConfig.edit { putInt(versionKey, lastVersion) } + edit { putInt(versionKey, lastVersion) } return false } return true 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 090971514..4dd40c4f2 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 @@ -6,6 +6,7 @@ import androidx.documentfile.provider.DocumentFile import io.legado.app.constant.AppLog import io.legado.app.constant.PreferKey import io.legado.app.data.appDb +import io.legado.app.help.config.LocalConfig import io.legado.app.help.config.ReadBookConfig import io.legado.app.help.config.ThemeConfig import io.legado.app.help.coroutine.Coroutine @@ -47,13 +48,13 @@ object Backup { } fun autoBack(context: Context) { - val lastBackup = context.getPrefLong(PreferKey.lastBackup) + val lastBackup = LocalConfig.getLong(PreferKey.lastBackup, 0) if (lastBackup + TimeUnit.DAYS.toMillis(1) < System.currentTimeMillis()) { Coroutine.async { if (!AppWebDav.hasBackUp()) { backup(context, context.getPrefString(PreferKey.backupPath), true) } else { - context.putPrefLong(PreferKey.lastBackup, System.currentTimeMillis()) + LocalConfig.putLong(PreferKey.lastBackup, System.currentTimeMillis()) } }.onError { AppLog.put("自动备份失败\n${it.localizedMessage}") diff --git a/app/src/main/java/io/legado/app/utils/PreferencesExtensions.kt b/app/src/main/java/io/legado/app/utils/PreferencesExtensions.kt new file mode 100644 index 000000000..b8370d526 --- /dev/null +++ b/app/src/main/java/io/legado/app/utils/PreferencesExtensions.kt @@ -0,0 +1,11 @@ +package io.legado.app.utils + +import android.content.SharedPreferences +import androidx.core.content.edit + + +fun SharedPreferences.putLong(key: String, value: Long) { + edit { + putLong(key, value) + } +} \ No newline at end of file