diff --git a/app/src/main/java/io/legado/app/ui/book/cache/CacheViewModel.kt b/app/src/main/java/io/legado/app/ui/book/cache/CacheViewModel.kt index b4e62ecd4..f149471c9 100644 --- a/app/src/main/java/io/legado/app/ui/book/cache/CacheViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/cache/CacheViewModel.kt @@ -58,17 +58,19 @@ class CacheViewModel(application: Application) : BaseViewModel(application) { loadChapterCoroutine?.cancel() loadChapterCoroutine = execute { books.forEach { book -> - val chapterCaches = hashSetOf() - val cacheNames = BookHelp.getChapterFiles(book) - if (cacheNames.isNotEmpty()) { - appDb.bookChapterDao.getChapterList(book.bookUrl).forEach { chapter -> - if (cacheNames.contains(chapter.getFileName())) { - chapterCaches.add(chapter.url) + if (!cacheChapters.contains(book.bookUrl)) { + val chapterCaches = hashSetOf() + val cacheNames = BookHelp.getChapterFiles(book) + if (cacheNames.isNotEmpty()) { + appDb.bookChapterDao.getChapterList(book.bookUrl).forEach { chapter -> + if (cacheNames.contains(chapter.getFileName())) { + chapterCaches.add(chapter.url) + } } } + cacheChapters[book.bookUrl] = chapterCaches + upAdapterLiveData.postValue(book.bookUrl) } - cacheChapters[book.bookUrl] = chapterCaches - upAdapterLiveData.postValue(book.bookUrl) ensureActive() } }