This commit is contained in:
Horis
2025-12-01 10:28:23 +08:00
parent c82284455d
commit b32f969965
13 changed files with 46 additions and 17 deletions
@@ -167,6 +167,7 @@ object PreferKey {
const val showMangaUi = "showMangaUi" const val showMangaUi = "showMangaUi"
const val disableMangaScale = "disableMangaScale" const val disableMangaScale = "disableMangaScale"
const val paddingDisplayCutouts = "paddingDisplayCutouts" const val paddingDisplayCutouts = "paddingDisplayCutouts"
const val autoCheckNewBackup = "autoCheckNewBackup"
const val cPrimary = "colorPrimary" const val cPrimary = "colorPrimary"
const val cAccent = "colorAccent" const val cAccent = "colorAccent"
@@ -489,6 +489,8 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
val onlyLatestBackup get() = appCtx.getPrefBoolean(PreferKey.onlyLatestBackup, true) val onlyLatestBackup get() = appCtx.getPrefBoolean(PreferKey.onlyLatestBackup, true)
val autoCheckNewBackup get() = appCtx.getPrefBoolean(PreferKey.autoCheckNewBackup, true)
val defaultHomePage get() = appCtx.getPrefString(PreferKey.defaultHomePage, "bookshelf") val defaultHomePage get() = appCtx.getPrefString(PreferKey.defaultHomePage, "bookshelf")
val updateToVariant get() = appCtx.getPrefString(PreferKey.updateToVariant, "default_version") val updateToVariant get() = appCtx.getPrefString(PreferKey.updateToVariant, "default_version")
@@ -49,11 +49,11 @@ import io.legado.app.utils.toastOnUi
import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.Dispatchers.Main import kotlinx.coroutines.Dispatchers.Main
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
import kotlinx.coroutines.currentCoroutineContext
import kotlinx.coroutines.ensureActive import kotlinx.coroutines.ensureActive
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import splitties.init.appCtx import splitties.init.appCtx
import kotlin.coroutines.coroutineContext
class BackupConfigFragment : PreferenceFragment(), class BackupConfigFragment : PreferenceFragment(),
SharedPreferences.OnSharedPreferenceChangeListener, SharedPreferences.OnSharedPreferenceChangeListener,
@@ -347,7 +347,7 @@ class BackupConfigFragment : PreferenceFragment(),
context.toastOnUi("由于坚果云限制列出文件数量,部分备份可能未显示,请及时清理旧备份") context.toastOnUi("由于坚果云限制列出文件数量,部分备份可能未显示,请及时清理旧备份")
} }
if (names.isNotEmpty()) { if (names.isNotEmpty()) {
coroutineContext.ensureActive() currentCoroutineContext().ensureActive()
withContext(Main) { withContext(Main) {
context.selector( context.selector(
title = context.getString(R.string.select_restore_file), title = context.getString(R.string.select_restore_file),
@@ -286,6 +286,9 @@ class MainActivity : VMBaseActivity<ActivityMainBinding, MainViewModel>(),
* 备份同步 * 备份同步
*/ */
private fun backupSync() { private fun backupSync() {
if (!AppConfig.autoCheckNewBackup) {
return
}
lifecycleScope.launch { lifecycleScope.launch {
val lastBackupFile = val lastBackupFile =
withContext(IO) { AppWebDav.lastBackUp().getOrNull() } ?: return@launch withContext(IO) { AppWebDav.lastBackUp().getOrNull() } ?: return@launch
@@ -1222,4 +1222,6 @@
<string name="disable_horizontal_animation">禁用水平滚动动画</string> <string name="disable_horizontal_animation">禁用水平滚动动画</string>
<string name="enable_manga_gray">开启图片灰色</string> <string name="enable_manga_gray">开启图片灰色</string>
<string name="sure_cache_book">是否确认开始缓存?</string> <string name="sure_cache_book">是否确认开始缓存?</string>
<string name="auto_check_new_backup_t">自动检查新备份</string>
<string name="auto_check_new_backup_s">打开软件时检查是否有新备份,有新备份时提示是否更新</string>
</resources> </resources>
@@ -1225,4 +1225,6 @@
<string name="disable_horizontal_animation">禁用水平滚动动画</string> <string name="disable_horizontal_animation">禁用水平滚动动画</string>
<string name="enable_manga_gray">开启图片灰色</string> <string name="enable_manga_gray">开启图片灰色</string>
<string name="sure_cache_book">是否确认开始缓存?</string> <string name="sure_cache_book">是否确认开始缓存?</string>
<string name="auto_check_new_backup_t">自动检查新备份</string>
<string name="auto_check_new_backup_s">打开软件时检查是否有新备份,有新备份时提示是否更新</string>
</resources> </resources>
@@ -1225,4 +1225,6 @@
<string name="disable_horizontal_animation">禁用水平滚动动画</string> <string name="disable_horizontal_animation">禁用水平滚动动画</string>
<string name="enable_manga_gray">开启图片灰色</string> <string name="enable_manga_gray">开启图片灰色</string>
<string name="sure_cache_book">是否确认开始缓存?</string> <string name="sure_cache_book">是否确认开始缓存?</string>
<string name="auto_check_new_backup_t">自动检查新备份</string>
<string name="auto_check_new_backup_s">打开软件时检查是否有新备份,有新备份时提示是否更新</string>
</resources> </resources>
+2
View File
@@ -1216,4 +1216,6 @@
<string name="enable_manga_gray">Bật ảnh xám</string> <string name="enable_manga_gray">Bật ảnh xám</string>
<string name="play_mode">Chế độ phát</string> <string name="play_mode">Chế độ phát</string>
<string name="sure_cache_book">是否确认开始缓存?</string> <string name="sure_cache_book">是否确认开始缓存?</string>
<string name="auto_check_new_backup_t">自动检查新备份</string>
<string name="auto_check_new_backup_s">打开软件时检查是否有新备份,有新备份时提示是否更新</string>
</resources> </resources>
@@ -1220,4 +1220,6 @@
<string name="disable_horizontal_animation">禁用水平滚动动画</string> <string name="disable_horizontal_animation">禁用水平滚动动画</string>
<string name="enable_manga_gray">开启图片灰色</string> <string name="enable_manga_gray">开启图片灰色</string>
<string name="sure_cache_book">是否确认开始缓存?</string> <string name="sure_cache_book">是否确认开始缓存?</string>
<string name="auto_check_new_backup_t">自动检查新备份</string>
<string name="auto_check_new_backup_s">打开软件时检查是否有新备份,有新备份时提示是否更新</string>
</resources> </resources>
@@ -1221,4 +1221,6 @@
<string name="disable_horizontal_animation">禁用水平滚动动画</string> <string name="disable_horizontal_animation">禁用水平滚动动画</string>
<string name="enable_manga_gray">开启图片灰色</string> <string name="enable_manga_gray">开启图片灰色</string>
<string name="sure_cache_book">是否确认开始缓存?</string> <string name="sure_cache_book">是否确认开始缓存?</string>
<string name="auto_check_new_backup_t">自动检查新备份</string>
<string name="auto_check_new_backup_s">打开软件时检查是否有新备份,有新备份时提示是否更新</string>
</resources> </resources>
+2
View File
@@ -1227,4 +1227,6 @@
<string name="disable_horizontal_animation">禁用水平滚动动画</string> <string name="disable_horizontal_animation">禁用水平滚动动画</string>
<string name="enable_manga_gray">开启图片灰色</string> <string name="enable_manga_gray">开启图片灰色</string>
<string name="sure_cache_book">是否确认开始缓存?</string> <string name="sure_cache_book">是否确认开始缓存?</string>
<string name="auto_check_new_backup_t">自动检查新备份</string>
<string name="auto_check_new_backup_s">打开软件时检查是否有新备份,有新备份时提示是否更新</string>
</resources> </resources>
+2
View File
@@ -1229,4 +1229,6 @@
<string name="enable_manga_gray">开启图片灰色</string> <string name="enable_manga_gray">开启图片灰色</string>
<string name="play_mode">播放模式</string> <string name="play_mode">播放模式</string>
<string name="sure_cache_book">是否确认开始缓存?</string> <string name="sure_cache_book">是否确认开始缓存?</string>
<string name="auto_check_new_backup_t">自动检查新备份</string>
<string name="auto_check_new_backup_s">打开软件时检查是否有新备份,有新备份时提示是否更新</string>
</resources> </resources>
+22 -15
View File
@@ -11,20 +11,20 @@
<io.legado.app.lib.prefs.EditTextPreference <io.legado.app.lib.prefs.EditTextPreference
android:key="web_dav_url" android:key="web_dav_url"
android:title="@string/web_dav_url"
android:summary="@string/web_dav_url_s" android:summary="@string/web_dav_url_s"
android:title="@string/web_dav_url"
app:iconSpaceReserved="false" /> app:iconSpaceReserved="false" />
<io.legado.app.lib.prefs.EditTextPreference <io.legado.app.lib.prefs.EditTextPreference
android:key="web_dav_account" android:key="web_dav_account"
android:title="@string/web_dav_account"
android:summary="@string/web_dav_account_s" android:summary="@string/web_dav_account_s"
android:title="@string/web_dav_account"
app:iconSpaceReserved="false" /> app:iconSpaceReserved="false" />
<io.legado.app.lib.prefs.EditTextPreference <io.legado.app.lib.prefs.EditTextPreference
android:key="web_dav_password" android:key="web_dav_password"
android:title="@string/web_dav_pw"
android:summary="@string/web_dav_pw_s" android:summary="@string/web_dav_pw_s"
android:title="@string/web_dav_pw"
app:iconSpaceReserved="false" /> app:iconSpaceReserved="false" />
<io.legado.app.lib.prefs.EditTextPreference <io.legado.app.lib.prefs.EditTextPreference
@@ -42,20 +42,20 @@
app:iconSpaceReserved="false" /> app:iconSpaceReserved="false" />
<io.legado.app.lib.prefs.SwitchPreference <io.legado.app.lib.prefs.SwitchPreference
android:key="syncBookProgress"
android:defaultValue="true" android:defaultValue="true"
android:title="@string/sync_book_progress_t" android:key="syncBookProgress"
android:summary="@string/sync_book_progress_s" android:summary="@string/sync_book_progress_s"
android:title="@string/sync_book_progress_t"
app:allowDividerAbove="false" app:allowDividerAbove="false"
app:allowDividerBelow="false" app:allowDividerBelow="false"
app:iconSpaceReserved="false" /> app:iconSpaceReserved="false" />
<io.legado.app.lib.prefs.SwitchPreference <io.legado.app.lib.prefs.SwitchPreference
android:key="syncBookProgressPlus"
android:defaultValue="false" android:defaultValue="false"
android:title="@string/sync_book_progress_plus_t"
android:summary="@string/sync_book_progress_plus_s"
android:dependency="syncBookProgress" android:dependency="syncBookProgress"
android:key="syncBookProgressPlus"
android:summary="@string/sync_book_progress_plus_s"
android:title="@string/sync_book_progress_plus_t"
app:allowDividerAbove="false" app:allowDividerAbove="false"
app:allowDividerBelow="false" app:allowDividerBelow="false"
app:iconSpaceReserved="false" /> app:iconSpaceReserved="false" />
@@ -70,39 +70,46 @@
<io.legado.app.lib.prefs.Preference <io.legado.app.lib.prefs.Preference
android:key="backupUri" android:key="backupUri"
android:title="@string/backup_path"
android:summary="@string/select_backup_path" android:summary="@string/select_backup_path"
android:title="@string/backup_path"
app:iconSpaceReserved="false" /> app:iconSpaceReserved="false" />
<io.legado.app.lib.prefs.Preference <io.legado.app.lib.prefs.Preference
android:key="web_dav_backup" android:key="web_dav_backup"
android:title="@string/backup"
android:summary="@string/backup_summary" android:summary="@string/backup_summary"
android:title="@string/backup"
app:iconSpaceReserved="false" /> app:iconSpaceReserved="false" />
<io.legado.app.lib.prefs.Preference <io.legado.app.lib.prefs.Preference
android:key="web_dav_restore" android:key="web_dav_restore"
android:title="@string/restore"
android:summary="@string/restore_summary" android:summary="@string/restore_summary"
android:title="@string/restore"
app:iconSpaceReserved="false" /> app:iconSpaceReserved="false" />
<io.legado.app.lib.prefs.Preference <io.legado.app.lib.prefs.Preference
android:key="restoreIgnore" android:key="restoreIgnore"
android:title="@string/restore_ignore"
android:summary="@string/restore_ignore_summary" android:summary="@string/restore_ignore_summary"
android:title="@string/restore_ignore"
app:iconSpaceReserved="false" /> app:iconSpaceReserved="false" />
<io.legado.app.lib.prefs.Preference <io.legado.app.lib.prefs.Preference
android:key="import_old" android:key="import_old"
android:title="@string/menu_import_old_version"
android:summary="@string/import_old_summary" android:summary="@string/import_old_summary"
android:title="@string/menu_import_old_version"
app:iconSpaceReserved="false" /> app:iconSpaceReserved="false" />
<io.legado.app.lib.prefs.SwitchPreference <io.legado.app.lib.prefs.SwitchPreference
android:key="onlyLatestBackup"
android:defaultValue="true" android:defaultValue="true"
android:title="@string/only_latest_backup_t" android:key="onlyLatestBackup"
android:summary="@string/only_latest_backup_s" android:summary="@string/only_latest_backup_s"
android:title="@string/only_latest_backup_t"
app:iconSpaceReserved="false" />
<io.legado.app.lib.prefs.SwitchPreference
android:defaultValue="true"
android:key="autoCheckNewBackup"
android:summary="@string/auto_check_new_backup_s"
android:title="@string/auto_check_new_backup_t"
app:allowDividerAbove="false" app:allowDividerAbove="false"
app:allowDividerBelow="false" app:allowDividerBelow="false"
app:iconSpaceReserved="false" /> app:iconSpaceReserved="false" />