diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt index eea95cc03..9de332e2e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt @@ -268,7 +268,7 @@ class MangaPresenter( private fun getTrackingObservable(): Observable { // SY --> - val sourceIsMangaDex = source.getMainSource() is MangaDex + val sourceIsMangaDex = source.getMainSource() is MangaDex || mergedManga.any { it.source in mangaDexSourceIds } // SY <-- if (!trackManager.hasLoggedServices(/* SY --> */sourceIsMangaDex/* SY <-- */)) { return Observable.just(0) @@ -1124,7 +1124,7 @@ class MangaPresenter( // SY --> .map { trackItems -> val mdTrack = trackItems.firstOrNull { it.service.id == TrackManager.MDLIST } - if (manga.source in mangaDexSourceIds) { + if (manga.source in mangaDexSourceIds || mergedManga.any { it.source in mangaDexSourceIds }) { when { mdTrack == null -> { trackItems @@ -1143,7 +1143,8 @@ class MangaPresenter( // SY --> private fun createMdListTrack(): TrackItem { - val track = trackManager.mdList.createInitialTracker(manga) + val mdManga = mergedManga.find { it.source in mangaDexSourceIds } + val track = trackManager.mdList.createInitialTracker(manga, mdManga ?: manga) track.id = db.insertTrack(track).executeAsBlocking().insertedId() return TrackItem(track, trackManager.mdList) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt index 86677305f..d345a82d6 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt @@ -21,11 +21,14 @@ import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.all.MangaDex +import eu.kanade.tachiyomi.source.online.all.MergedSource import eu.kanade.tachiyomi.ui.manga.MangaController import eu.kanade.tachiyomi.util.system.copyToClipboard import eu.kanade.tachiyomi.util.system.getResourceColor +import exh.merged.sql.models.MergedMangaReference import exh.source.MERGED_SOURCE_ID import exh.source.getMainSource +import exh.source.mangaDexSourceIds import exh.util.SourceTagsUtil import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach @@ -45,6 +48,8 @@ class MangaInfoHeaderAdapter( // SY --> private val db: DatabaseHelper by injectLazy() private val sourceManager: SourceManager by injectLazy() + + private var mergedMangaReferences: List = emptyList() // SY <-- private var manga: Manga = controller.presenter.manga @@ -75,6 +80,11 @@ class MangaInfoHeaderAdapter( fun update(manga: Manga, source: Source) { this.manga = manga this.source = source + // SY --> + if (source is MergedSource) { + mergedMangaReferences = db.getMergedMangaReferences(manga.id!!).executeAsBlocking() + } + // SY <-- notifyDataSetChanged() } @@ -107,7 +117,7 @@ class MangaInfoHeaderAdapter( with(binding.btnTracking) { // SY --> - val sourceIsMangaDex = source.getMainSource() is MangaDex + val sourceIsMangaDex = source.getMainSource() is MangaDex || mergedMangaReferences.any { it.mangaSourceId in mangaDexSourceIds } // SY <-- if (trackManager.hasLoggedServices(/* SY --> */sourceIsMangaDex/* SY <-- */)) { isVisible = true @@ -250,7 +260,7 @@ class MangaInfoHeaderAdapter( with(binding.mangaSource) { // SY --> if (source?.id == MERGED_SOURCE_ID) { - text = db.getMergedMangaReferences(manga.id!!).executeAsBlocking().map { + text = mergedMangaReferences.map { sourceManager.getOrStub(it.mangaSourceId).toString() }.distinct().joinToString() } else /* SY <-- */ if (mangaSource != null) { diff --git a/app/src/main/java/exh/md/handlers/FollowsHandler.kt b/app/src/main/java/exh/md/handlers/FollowsHandler.kt index 328a0bbae..4dd6a206a 100644 --- a/app/src/main/java/exh/md/handlers/FollowsHandler.kt +++ b/app/src/main/java/exh/md/handlers/FollowsHandler.kt @@ -222,7 +222,6 @@ class FollowsHandler(val client: OkHttpClient, val headers: Headers, val prefere followStatusParse(response) } catch (e: Exception) { if (e.message.equals("HTTP error 404", true)) { - XLog.enableStackTrace(10).e(e) Track.create(TrackManager.MDLIST).apply { status = FollowStatus.UNFOLLOWED.int }