Don't update chapter progress if current page is errored

Closes #5355
This commit is contained in:
arkon 2023-07-15 23:22:27 -04:00
parent a24afa9a76
commit 01553b1ed8
2 changed files with 7 additions and 6 deletions

View file

@ -145,7 +145,7 @@ abstract class TrackService(val id: Long) {
}
suspend fun setRemoteLastChapterRead(track: Track, chapterNumber: Int) {
if (track.last_chapter_read == 0F && track.last_chapter_read < chapterNumber && track.status != getRereadingStatus()) {
if (track.last_chapter_read == 0f && track.last_chapter_read < chapterNumber && track.status != getRereadingStatus()) {
track.status = getReadingStatus()
}
track.last_chapter_read = chapterNumber.toFloat()

View file

@ -402,7 +402,7 @@ class ReaderViewModel(
// Save last page read and mark as read if needed
viewModelScope.launchNonCancellable {
updateChapterProgress(selectedChapter, page.index)
updateChapterProgress(selectedChapter, page)
}
if (selectedChapter != getCurrentChapter()) {
@ -482,13 +482,15 @@ class ReaderViewModel(
* Saves the chapter progress (last read page and whether it's read)
* if incognito mode isn't on.
*/
private suspend fun updateChapterProgress(readerChapter: ReaderChapter, pageIndex: Int) {
private suspend fun updateChapterProgress(readerChapter: ReaderChapter, page: Page) {
val pageIndex = page.index
mutableState.update {
it.copy(currentPage = pageIndex + 1)
}
if (!incognitoMode) {
readerChapter.requestedPage = pageIndex
if (!incognitoMode && page.status != Page.State.ERROR) {
readerChapter.chapter.last_page_read = pageIndex
if (readerChapter.pages?.lastIndex == pageIndex) {
@ -501,7 +503,6 @@ class ReaderViewModel(
ChapterUpdate(
id = readerChapter.chapter.id!!,
read = readerChapter.chapter.read,
bookmark = readerChapter.chapter.bookmark,
lastPageRead = readerChapter.chapter.last_page_read.toLong(),
),
)