pull/1835/head
kunfei 3 years ago
parent 070a64c4a9
commit da269c384a
  1. 23
      app/src/main/java/io/legado/app/help/config/LocalConfig.kt
  2. 5
      app/src/main/java/io/legado/app/help/storage/Backup.kt
  3. 11
      app/src/main/java/io/legado/app/utils/PreferencesExtensions.kt

@ -1,15 +1,14 @@
package io.legado.app.help.config package io.legado.app.help.config
import android.content.Context import android.content.Context
import android.content.SharedPreferences
import androidx.core.content.edit import androidx.core.content.edit
import splitties.init.appCtx import splitties.init.appCtx
object LocalConfig { object LocalConfig :
SharedPreferences by appCtx.getSharedPreferences("local", Context.MODE_PRIVATE) {
private const val versionCodeKey = "appVersionCode" private const val versionCodeKey = "appVersionCode"
private val localConfig =
appCtx.getSharedPreferences("local", Context.MODE_PRIVATE)
val readHelpVersionIsLast: Boolean val readHelpVersionIsLast: Boolean
get() = isLastVersion(1, "readHelpVersion", "firstRead") get() = isLastVersion(1, "readHelpVersion", "firstRead")
@ -35,18 +34,16 @@ object LocalConfig {
get() = !isLastVersion(4, "rssSourceVersion") get() = !isLastVersion(4, "rssSourceVersion")
var versionCode var versionCode
get() = localConfig.getLong(versionCodeKey, 0) get() = getLong(versionCodeKey, 0)
set(value) { set(value) {
localConfig.edit { edit { putLong(versionCodeKey, value) }
putLong(versionCodeKey, value)
}
} }
val isFirstOpenApp: Boolean val isFirstOpenApp: Boolean
get() { get() {
val value = localConfig.getBoolean("firstOpen", true) val value = getBoolean("firstOpen", true)
if (value) { if (value) {
localConfig.edit { putBoolean("firstOpen", false) } edit { putBoolean("firstOpen", false) }
} }
return value return value
} }
@ -57,14 +54,14 @@ object LocalConfig {
versionKey: String, versionKey: String,
firstOpenKey: String? = null firstOpenKey: String? = null
): Boolean { ): Boolean {
var version = localConfig.getInt(versionKey, 0) var version = getInt(versionKey, 0)
if (version == 0 && firstOpenKey != null) { if (version == 0 && firstOpenKey != null) {
if (!localConfig.getBoolean(firstOpenKey, true)) { if (!getBoolean(firstOpenKey, true)) {
version = 1 version = 1
} }
} }
if (version < lastVersion) { if (version < lastVersion) {
localConfig.edit { putInt(versionKey, lastVersion) } edit { putInt(versionKey, lastVersion) }
return false return false
} }
return true return true

@ -6,6 +6,7 @@ import androidx.documentfile.provider.DocumentFile
import io.legado.app.constant.AppLog import io.legado.app.constant.AppLog
import io.legado.app.constant.PreferKey import io.legado.app.constant.PreferKey
import io.legado.app.data.appDb 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.ReadBookConfig
import io.legado.app.help.config.ThemeConfig import io.legado.app.help.config.ThemeConfig
import io.legado.app.help.coroutine.Coroutine import io.legado.app.help.coroutine.Coroutine
@ -47,13 +48,13 @@ object Backup {
} }
fun autoBack(context: Context) { 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()) { if (lastBackup + TimeUnit.DAYS.toMillis(1) < System.currentTimeMillis()) {
Coroutine.async { Coroutine.async {
if (!AppWebDav.hasBackUp()) { if (!AppWebDav.hasBackUp()) {
backup(context, context.getPrefString(PreferKey.backupPath), true) backup(context, context.getPrefString(PreferKey.backupPath), true)
} else { } else {
context.putPrefLong(PreferKey.lastBackup, System.currentTimeMillis()) LocalConfig.putLong(PreferKey.lastBackup, System.currentTimeMillis())
} }
}.onError { }.onError {
AppLog.put("自动备份失败\n${it.localizedMessage}") AppLog.put("自动备份失败\n${it.localizedMessage}")

@ -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)
}
}
Loading…
Cancel
Save