diff --git a/app/src/main/java/io/legado/app/model/ReadBook.kt b/app/src/main/java/io/legado/app/model/ReadBook.kt index 14cab7ce3..18a5a9335 100644 --- a/app/src/main/java/io/legado/app/model/ReadBook.kt +++ b/app/src/main/java/io/legado/app/model/ReadBook.kt @@ -858,21 +858,25 @@ object ReadBook : CoroutineScope by MainScope() { fun saveRead(pageChanged: Boolean = false) { executor.execute { - val book = book ?: return@execute - book.lastCheckCount = 0 - book.durChapterTime = System.currentTimeMillis() - val chapterChanged = book.durChapterIndex != durChapterIndex - book.durChapterIndex = durChapterIndex - book.durChapterPos = durChapterPos - if (!pageChanged || chapterChanged) { - appDb.bookChapterDao.getChapter(book.bookUrl, durChapterIndex)?.let { - book.durChapterTitle = it.getDisplayTitle( - ContentProcessor.get(book.name, book.origin).getTitleReplaceRules(), - book.getUseReplaceRule() - ) + kotlin.runCatching { + val book = book ?: return@execute + book.lastCheckCount = 0 + book.durChapterTime = System.currentTimeMillis() + val chapterChanged = book.durChapterIndex != durChapterIndex + book.durChapterIndex = durChapterIndex + book.durChapterPos = durChapterPos + if (!pageChanged || chapterChanged) { + appDb.bookChapterDao.getChapter(book.bookUrl, durChapterIndex)?.let { + book.durChapterTitle = it.getDisplayTitle( + ContentProcessor.get(book.name, book.origin).getTitleReplaceRules(), + book.getUseReplaceRule() + ) + } } + appDb.bookDao.update(book) + }.onFailure { + AppLog.put("保存书籍阅读进度信息出错\n$it", it) } - appDb.bookDao.update(book) } } diff --git a/app/src/main/java/io/legado/app/model/ReadManga.kt b/app/src/main/java/io/legado/app/model/ReadManga.kt index 6483559aa..07153a936 100644 --- a/app/src/main/java/io/legado/app/model/ReadManga.kt +++ b/app/src/main/java/io/legado/app/model/ReadManga.kt @@ -327,21 +327,25 @@ object ReadManga : CoroutineScope by MainScope() { fun saveRead(pageChanged: Boolean = false) { executor.execute { - val book = book ?: return@execute - book.lastCheckCount = 0 - book.durChapterTime = System.currentTimeMillis() - val chapterChanged = book.durChapterIndex != durChapterIndex - book.durChapterIndex = durChapterIndex - book.durChapterPos = durChapterPos - if (!pageChanged || chapterChanged) { - appDb.bookChapterDao.getChapter(book.bookUrl, durChapterIndex)?.let { - book.durChapterTitle = it.getDisplayTitle( - ContentProcessor.get(book.name, book.origin).getTitleReplaceRules(), - book.getUseReplaceRule() - ) + kotlin.runCatching { + val book = book ?: return@execute + book.lastCheckCount = 0 + book.durChapterTime = System.currentTimeMillis() + val chapterChanged = book.durChapterIndex != durChapterIndex + book.durChapterIndex = durChapterIndex + book.durChapterPos = durChapterPos + if (!pageChanged || chapterChanged) { + appDb.bookChapterDao.getChapter(book.bookUrl, durChapterIndex)?.let { + book.durChapterTitle = it.getDisplayTitle( + ContentProcessor.get(book.name, book.origin).getTitleReplaceRules(), + book.getUseReplaceRule() + ) + } } + appDb.bookDao.update(book) + }.onFailure { + AppLog.put("保存漫画阅读进度信息出错\n$it", it) } - appDb.bookDao.update(book) } }