From 774f33c63d0c39c566813cd84ef71b1aa72c1253 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Fri, 10 Jul 2020 07:14:41 +0300 Subject: [PATCH] Get remote manga for local in tracker --- .../domain/tracking/TrackingRepository.kt | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/domain/tracking/TrackingRepository.kt b/app/src/main/java/org/koitharu/kotatsu/domain/tracking/TrackingRepository.kt index 60a46ebfd..774f5af96 100644 --- a/app/src/main/java/org/koitharu/kotatsu/domain/tracking/TrackingRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/domain/tracking/TrackingRepository.kt @@ -6,10 +6,8 @@ import org.koin.core.inject import org.koitharu.kotatsu.core.db.MangaDatabase import org.koitharu.kotatsu.core.db.entity.TrackEntity import org.koitharu.kotatsu.core.db.entity.TrackLogEntity -import org.koitharu.kotatsu.core.model.Manga -import org.koitharu.kotatsu.core.model.MangaChapter -import org.koitharu.kotatsu.core.model.MangaTracking -import org.koitharu.kotatsu.core.model.TrackingLogItem +import org.koitharu.kotatsu.core.model.* +import org.koitharu.kotatsu.domain.MangaProviderFactory import java.util.* class TrackingRepository : KoinComponent { @@ -24,12 +22,16 @@ class TrackingRepository : KoinComponent { suspend fun getAllTracks(): List { val favourites = db.favouritesDao.findAllManga() val history = db.historyDao.findAllManga() - val manga = (favourites + history).distinctBy { it.id } + val mangas = (favourites + history).distinctBy { it.id } val tracks = db.tracksDao.findAll().groupBy { it.mangaId } - return manga.map { m -> - val track = tracks[m.id]?.singleOrNull() + return mangas.mapNotNull { me -> + var manga = me.toManga() + if (manga.source == MangaSource.LOCAL) { + manga = MangaProviderFactory.createLocal().getRemoteManga(manga) ?: return@mapNotNull null + } + val track = tracks[manga.id]?.singleOrNull() MangaTracking( - manga = m.toManga(), + manga = manga, knownChaptersCount = track?.totalChapters ?: -1, lastChapterId = track?.lastChapterId ?: 0L, lastNotifiedChapterId = track?.lastNotifiedChapterId ?: 0L,