kunfei пре 4 година
родитељ
комит
e168769248

+ 1 - 0
app/src/main/assets/updateLog.md

@@ -16,6 +16,7 @@
 * 更新cronet: 101.0.4951.41
 * 优化webDav备份,显示错误代码,自动备份错误不提示只记录错误日志,
 * 修复图片加载失败卡顿的问题
+* 打开应用时如果服务器备份比本地新,提示是否恢复
 
 **2022/04/23**
 

+ 1 - 1
app/src/main/java/io/legado/app/help/storage/Backup.kt

@@ -63,6 +63,7 @@ object Backup {
     }
 
     suspend fun backup(context: Context, path: String?, isAuto: Boolean = false) {
+        LocalConfig.lastBackup = System.currentTimeMillis()
         withContext(IO) {
             FileUtils.delete(backupPath)
             writeListToJson(appDb.bookDao.all, "bookshelf.json", backupPath)
@@ -118,7 +119,6 @@ object Backup {
             }
             AppWebDav.backUpWebDav(backupPath)
         }
-        LocalConfig.lastBackup = System.currentTimeMillis()
     }
 
     private fun writeListToJson(list: List<Any>, fileName: String, path: String) {

+ 2 - 2
app/src/main/java/io/legado/app/lib/webdav/WebDav.kt

@@ -133,12 +133,12 @@ open class WebDav(urlStr: String, val authorization: Authorization) {
                             element.getElementsByTag("d:getcontentlength")
                                 .firstOrNull()?.text()?.toLong() ?: 0
                         }.getOrDefault(0)
-                        val lastModify: Date = kotlin.runCatching {
+                        val lastModify: Date? = kotlin.runCatching {
                             element.getElementsByTag("d:getcontentlength")
                                 .firstOrNull()?.text()?.let {
                                     dateFormat.parse(it)
                                 }
-                        }.getOrNull() ?: Date()
+                        }.getOrNull()
                         webDavFile = WebDavFile(
                             baseUrl + fileName,
                             authorization,

+ 1 - 1
app/src/main/java/io/legado/app/lib/webdav/WebDavFile.kt

@@ -12,5 +12,5 @@ class WebDavFile(
     val urlName: String,
     val size: Long,
     val contentType: String,
-    val lastModify: Date
+    val lastModify: Date?
 ) : WebDav(urlStr, authorization)

+ 2 - 4
app/src/main/java/io/legado/app/ui/main/MainActivity.kt

@@ -96,10 +96,8 @@ class MainActivity : VMBaseActivity<ActivityMainBinding, MainViewModel>(),
         }, 3000)
         launch {
             val lastBackupFile = withContext(IO) { AppWebDav.lastBackUp().getOrNull() }
-            if (System.currentTimeMillis() - LocalConfig.lastBackup > DateUtils.MINUTE_IN_MILLIS
-                && lastBackupFile != null
-            ) {
-
+                ?: return@launch
+            if (lastBackupFile.lastModify?.time ?: 0 - LocalConfig.lastBackup > DateUtils.MINUTE_IN_MILLIS) {
                 alert("恢复", "webDav书源比本地新,是否恢复") {
                     cancelButton()
                     okButton {