Fix issues with mangadex tracking, infinite loading and showing up on non-mangadex manga

This commit is contained in:
Jobobby04 2020-09-22 13:45:50 -04:00
parent ffc80c084d
commit caa6dd6d62
3 changed files with 6 additions and 6 deletions

View File

@ -541,7 +541,7 @@ class LibraryPresenter(
fun syncMangaToDex(mangaList: List<Manga>) { fun syncMangaToDex(mangaList: List<Manga>) {
launchIO { launchIO {
MdUtil.getEnabledMangaDex(preferences)?.let { mdex -> MdUtil.getEnabledMangaDex(preferences, sourceManager)?.let { mdex ->
mangaList.forEach { mangaList.forEach {
mdex.updateFollowStatus(MdUtil.getMangaId(it.url), FollowStatus.READING).collect() mdex.updateFollowStatus(MdUtil.getMangaId(it.url), FollowStatus.READING).collect()
} }

View File

@ -57,12 +57,11 @@ class TrackPresenter(
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
// SY --> // SY -->
.map { trackItems -> .map { trackItems ->
if (manga.source in mangaDexSourceIds) {
val mdTrack = trackItems.firstOrNull { it.service.id == TrackManager.MDLIST } val mdTrack = trackItems.firstOrNull { it.service.id == TrackManager.MDLIST }
if (manga.source in mangaDexSourceIds) {
when { when {
mdTrack == null -> { mdTrack == null -> {
needsRefresh = true trackItems
trackItems + createMdListTrack()
} }
mdTrack.track == null -> { mdTrack.track == null -> {
needsRefresh = true needsRefresh = true
@ -70,7 +69,7 @@ class TrackPresenter(
} }
else -> trackItems else -> trackItems
} }
} else trackItems } else mdTrack?.let { trackItems - it } ?: trackItems
} }
// SY <-- // SY <--
.doOnNext { trackList = it } .doOnNext { trackList = it }

View File

@ -34,6 +34,7 @@ import eu.kanade.tachiyomi.util.updateCoverLastModified
import exh.EH_SOURCE_ID import exh.EH_SOURCE_ID
import exh.EXH_SOURCE_ID import exh.EXH_SOURCE_ID
import exh.MERGED_SOURCE_ID import exh.MERGED_SOURCE_ID
import exh.md.utils.FollowStatus
import exh.util.defaultReaderType import exh.util.defaultReaderType
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.singleOrNull import kotlinx.coroutines.flow.singleOrNull
@ -716,7 +717,7 @@ class ReaderPresenter(
Completable.concat( Completable.concat(
trackList.map { track -> trackList.map { track ->
val service = trackManager.getService(track.sync_id) 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 track.last_chapter_read = chapterRead
// We wan't these to execute even if the presenter is destroyed and leaks // We wan't these to execute even if the presenter is destroyed and leaks