diff --git a/app/src/main/java/io/legado/app/model/CacheBook.kt b/app/src/main/java/io/legado/app/model/CacheBook.kt index 02a4309f1..7904fa4ff 100644 --- a/app/src/main/java/io/legado/app/model/CacheBook.kt +++ b/app/src/main/java/io/legado/app/model/CacheBook.kt @@ -36,7 +36,7 @@ object CacheBook { var cacheBook = cacheBookMap[bookUrl] if (cacheBook != null) { //存在时更新,书源可能会变化,必须更新 - cacheBook.bookSource = bookSource + updateBookSource(bookSource) cacheBook.book = book return cacheBook } @@ -50,7 +50,7 @@ object CacheBook { var cacheBook = cacheBookMap[book.bookUrl] if (cacheBook != null) { //存在时更新,书源可能会变化,必须更新 - cacheBook.bookSource = bookSource + updateBookSource(bookSource) cacheBook.book = book return cacheBook } @@ -59,6 +59,15 @@ object 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) { if (!book.isLocal) { context.startService {