Horis 2 лет назад
Родитель
Сommit
2be3f22784
1 измененных файлов с 11 добавлено и 2 удалено
  1. 11 2
      app/src/main/java/io/legado/app/model/CacheBook.kt

+ 11 - 2
app/src/main/java/io/legado/app/model/CacheBook.kt

@@ -36,7 +36,7 @@ object CacheBook {
         var cacheBook = cacheBookMap[bookUrl]
         var cacheBook = cacheBookMap[bookUrl]
         if (cacheBook != null) {
         if (cacheBook != null) {
             //存在时更新,书源可能会变化,必须更新
             //存在时更新,书源可能会变化,必须更新
-            cacheBook.bookSource = bookSource
+            updateBookSource(bookSource)
             cacheBook.book = book
             cacheBook.book = book
             return cacheBook
             return cacheBook
         }
         }
@@ -50,7 +50,7 @@ object CacheBook {
         var cacheBook = cacheBookMap[book.bookUrl]
         var cacheBook = cacheBookMap[book.bookUrl]
         if (cacheBook != null) {
         if (cacheBook != null) {
             //存在时更新,书源可能会变化,必须更新
             //存在时更新,书源可能会变化,必须更新
-            cacheBook.bookSource = bookSource
+            updateBookSource(bookSource)
             cacheBook.book = book
             cacheBook.book = book
             return cacheBook
             return cacheBook
         }
         }
@@ -59,6 +59,15 @@ object CacheBook {
         return cacheBook
         return cacheBook
     }
     }
 
 
+    private fun updateBookSource(newBookSource: BookSource) {
+        cacheBookMap.forEach {
+            val model = it.value
+            if (model.bookSource.bookSourceUrl == newBookSource.bookSourceUrl) {
+                model.bookSource = newBookSource
+            }
+        }
+    }
+
     fun start(context: Context, book: Book, start: Int, end: Int) {
     fun start(context: Context, book: Book, start: Int, end: Int) {
         if (!book.isLocal) {
         if (!book.isLocal) {
             context.startService<CacheBookService> {
             context.startService<CacheBookService> {