diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceItem.kt index 818d75894e..92fdcf1713 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceItem.kt @@ -20,22 +20,20 @@ import eu.kanade.tachiyomi.ui.library.setBGAndFG import eu.kanade.tachiyomi.widget.AutofitRecyclerView import kotlinx.coroutines.Job import kotlinx.coroutines.MainScope +import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch -import uy.kohesive.injekt.injectLazy -import yokai.domain.manga.interactor.GetManga // FIXME: Migrate to compose class BrowseSourceItem( initialManga: Manga, + private val mangaFlow: Flow, private val catalogueAsList: Preference, private val catalogueListType: Preference, private val outlineOnCovers: Preference, ) : AbstractFlexibleItem() { - private val getManga: GetManga by injectLazy() - val mangaId: Long = initialManga.id!! var manga: Manga = initialManga private set @@ -94,7 +92,7 @@ class BrowseSourceItem( if (job == null) holder.onSetValues(manga) job?.cancel() job = scope.launch { - getManga.subscribeByUrlAndSource(manga.url, manga.source).collectLatest { + mangaFlow.collectLatest { manga = it ?: return@collectLatest holder.onSetValues(manga) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourcePresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourcePresenter.kt index 1685a1b883..53d27e2951 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourcePresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourcePresenter.kt @@ -185,6 +185,7 @@ open class BrowseSourcePresenter( first to second.map { BrowseSourceItem( it, + getManga.subscribeByUrlAndSource(it.url, it.source), browseAsList, sourceListType, outlineCovers, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchMangaItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchMangaItem.kt index 425d186748..da932ecda8 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchMangaItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchMangaItem.kt @@ -9,18 +9,16 @@ import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.domain.manga.models.Manga import kotlinx.coroutines.Job import kotlinx.coroutines.MainScope +import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch -import uy.kohesive.injekt.injectLazy -import yokai.domain.manga.interactor.GetManga // FIXME: Migrate to compose class GlobalSearchMangaItem( - initialManga: Manga + initialManga: Manga, + private val mangaFlow: Flow, ) : AbstractFlexibleItem() { - private val getManga: GetManga by injectLazy() - val mangaId: Long? = initialManga.id var manga: Manga = initialManga private set @@ -44,7 +42,7 @@ class GlobalSearchMangaItem( if (job == null) holder.bind(manga) job?.cancel() job = scope.launch { - getManga.subscribeByUrlAndSource(manga.url, manga.source).collectLatest { + mangaFlow.collectLatest { manga = it ?: return@collectLatest holder.bind(manga) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchPresenter.kt index 6fe2a49d1d..b544928f31 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchPresenter.kt @@ -192,7 +192,12 @@ open class GlobalSearchPresenter( } val result = createCatalogueSearchItem( source, - mangas.map { GlobalSearchMangaItem(it) }, + mangas.map { + GlobalSearchMangaItem( + it, + getManga.subscribeByUrlAndSource(it.url, it.source), + ) + }, ) items = items .map { item -> if (item.source == result.source) result else item }