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>) {
launchIO {
MdUtil.getEnabledMangaDex(preferences)?.let { mdex ->
MdUtil.getEnabledMangaDex(preferences, sourceManager)?.let { mdex ->
mangaList.forEach {
mdex.updateFollowStatus(MdUtil.getMangaId(it.url), FollowStatus.READING).collect()
}

View File

@ -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 }

View File

@ -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