From caa6dd6d621e3ab04a89e86ecfdc8b7a7ddaeca7 Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Tue, 22 Sep 2020 13:45:50 -0400 Subject: [PATCH] Fix issues with mangadex tracking, infinite loading and showing up on non-mangadex manga --- .../eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt | 2 +- .../eu/kanade/tachiyomi/ui/manga/track/TrackPresenter.kt | 7 +++---- .../java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt | 3 ++- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt index cecf04a97..63213c12b 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt @@ -541,7 +541,7 @@ class LibraryPresenter( fun syncMangaToDex(mangaList: List) { launchIO { - MdUtil.getEnabledMangaDex(preferences)?.let { mdex -> + MdUtil.getEnabledMangaDex(preferences, sourceManager)?.let { mdex -> mangaList.forEach { mdex.updateFollowStatus(MdUtil.getMangaId(it.url), FollowStatus.READING).collect() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackPresenter.kt index a18911b97..d3d8c2a98 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackPresenter.kt @@ -57,12 +57,11 @@ class TrackPresenter( .observeOn(AndroidSchedulers.mainThread()) // SY --> .map { trackItems -> + val mdTrack = trackItems.firstOrNull { it.service.id == TrackManager.MDLIST } if (manga.source in mangaDexSourceIds) { - val mdTrack = trackItems.firstOrNull { it.service.id == TrackManager.MDLIST } when { mdTrack == null -> { - needsRefresh = true - trackItems + createMdListTrack() + trackItems } mdTrack.track == null -> { needsRefresh = true @@ -70,7 +69,7 @@ class TrackPresenter( } else -> trackItems } - } else trackItems + } else mdTrack?.let { trackItems - it } ?: trackItems } // SY <-- .doOnNext { trackList = it } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt index 10ed7dfc7..4a1366b41 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt @@ -34,6 +34,7 @@ import eu.kanade.tachiyomi.util.updateCoverLastModified import exh.EH_SOURCE_ID import exh.EXH_SOURCE_ID import exh.MERGED_SOURCE_ID +import exh.md.utils.FollowStatus import exh.util.defaultReaderType import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.singleOrNull @@ -716,7 +717,7 @@ class ReaderPresenter( Completable.concat( trackList.map { track -> val service = trackManager.getService(track.sync_id) - if (service != null && service.isLogged && chapterRead > track.last_chapter_read) { + if (service != null && service.isLogged && chapterRead > track.last_chapter_read /* SY --> */ && ((service.id == TrackManager.MDLIST && track.status != FollowStatus.UNFOLLOWED.int) || service.id != TrackManager.MDLIST)/* SY <-- */) { track.last_chapter_read = chapterRead // We wan't these to execute even if the presenter is destroyed and leaks