From 46e3b9e40d43b12241ad0cd0ec8fef51cf93d350 Mon Sep 17 00:00:00 2001 From: arkon Date: Sat, 22 Jul 2023 09:32:17 -0400 Subject: [PATCH] Use previously updated track item when binding start date Fixes #9743 --- .../java/eu/kanade/tachiyomi/data/track/TrackService.kt | 9 ++++++--- .../ui/reader/viewer/webtoon/WebtoonLayoutManager.kt | 6 +++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/TrackService.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/TrackService.kt index 297e4a2924..02c92c2b7c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/TrackService.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/TrackService.kt @@ -110,7 +110,7 @@ abstract class TrackService(val id: Long) { val hasReadChapters = allChapters.any { it.read } bind(item, hasReadChapters) - val track = item.toDomainTrack(idRequired = false) ?: return@withIOContext + var track = item.toDomainTrack(idRequired = false) ?: return@withIOContext Injekt.get().await(track) @@ -123,10 +123,10 @@ abstract class TrackService(val id: Long) { ?.chapterNumber?.toDouble() ?: -1.0 if (latestLocalReadChapterNumber > track.lastChapterRead) { - val updatedTrack = track.copy( + track = track.copy( lastChapterRead = latestLocalReadChapterNumber, ) - setRemoteLastChapterRead(updatedTrack.toDbTrack(), latestLocalReadChapterNumber.toInt()) + setRemoteLastChapterRead(track.toDbTrack(), latestLocalReadChapterNumber.toInt()) } if (track.startDate <= 0) { @@ -137,6 +137,9 @@ abstract class TrackService(val id: Long) { firstReadChapterDate?.let { val startDate = firstReadChapterDate.time.convertEpochMillisZone(ZoneOffset.systemDefault(), ZoneOffset.UTC) + track = track.copy( + startDate = startDate, + ) setRemoteStartDate(track.toDbTrack(), startDate) } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonLayoutManager.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonLayoutManager.kt index 74ced080cd..cb9f484a43 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonLayoutManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonLayoutManager.kt @@ -2,8 +2,8 @@ package androidx.recyclerview.widget +import android.content.Context import androidx.recyclerview.widget.RecyclerView.NO_POSITION -import eu.kanade.tachiyomi.ui.reader.ReaderActivity /** * Layout manager used by the webtoon viewer. Item prefetch is disabled because the extra layout @@ -13,12 +13,12 @@ import eu.kanade.tachiyomi.ui.reader.ReaderActivity * This layout manager uses the same package name as the support library in order to use a package * protected method. */ -class WebtoonLayoutManager(activity: ReaderActivity) : LinearLayoutManager(activity) { +class WebtoonLayoutManager(context: Context) : LinearLayoutManager(context) { /** * Extra layout space is set to half the screen height. */ - private val extraLayoutSpace = activity.resources.displayMetrics.heightPixels / 2 + private val extraLayoutSpace = context.resources.displayMetrics.heightPixels / 2 init { isItemPrefetchEnabled = false