Fix issues with mangadex tracking, infinite loading and showing up on non-mangadex manga
This commit is contained in:
parent
ffc80c084d
commit
caa6dd6d62
@ -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()
|
||||||
}
|
}
|
||||||
|
@ -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 }
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user