diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaAllInOneController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaAllInOneController.kt index c467ba4c1..f16e714cb 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaAllInOneController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaAllInOneController.kt @@ -533,6 +533,10 @@ class MangaAllInOneController : getHeader()?.setFavoriteButtonState(isFavorite) } + fun setTrackingIcon(tracked: Boolean) { + getHeader()?.setTrackingIcon(tracked) + } + override fun isInitialLoadAndFromSource() = fromSource && initialLoad override fun removeInitialLoad() { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaAllInOneHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaAllInOneHolder.kt index 3e625de5b..009dd9f6c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaAllInOneHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaAllInOneHolder.kt @@ -59,7 +59,6 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext import reactivecircus.flowbinding.android.view.clicks import reactivecircus.flowbinding.android.view.longClicks import uy.kohesive.injekt.Injekt @@ -97,7 +96,12 @@ class MangaAllInOneHolder( } adapter.delegate.controllerScope.launch(Dispatchers.IO) { - setTrackingIcon() + setTrackingIcon( + Injekt.get().getTracks(presenter.manga).executeAsBlocking().any { + val status = Injekt.get().getService(it.sync_id)?.getStatus(it.status) + status != null + } + ) } btn_tracking.clicks() @@ -440,17 +444,9 @@ class MangaAllInOneHolder( adapter.delegate.performGlobalSearch(query) } - private suspend fun setTrackingIcon() { - val presenter = adapter.delegate.mangaPresenter() - - if (Injekt.get().getTracks(presenter.manga).executeAsBlocking().any { - val status = Injekt.get().getService(it.sync_id)?.getStatus(it.status) - status != null - } - ) { - withContext(Dispatchers.Main) { - btn_tracking.setIconResource(R.drawable.ic_cloud_white_24dp) - } + fun setTrackingIcon(tracked: Boolean) { + if (tracked) { + btn_tracking.setIconResource(R.drawable.ic_cloud_white_24dp) } } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackController.kt index 4c595ae24..3e4f70d7a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackController.kt @@ -11,6 +11,7 @@ import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.track.model.TrackSearch import eu.kanade.tachiyomi.databinding.TrackControllerBinding import eu.kanade.tachiyomi.ui.base.controller.NucleusController +import eu.kanade.tachiyomi.ui.manga.MangaAllInOneController import eu.kanade.tachiyomi.ui.manga.MangaController import eu.kanade.tachiyomi.util.system.copyToClipboard import eu.kanade.tachiyomi.util.system.toast @@ -73,6 +74,8 @@ class TrackController(val fromAllInOne: Boolean = false, val manga: Manga? = nul binding.swipeRefresh.isEnabled = atLeastOneLink if (!fromAllInOne) { (parentController as? MangaController)?.setTrackingIcon(atLeastOneLink) + } else { + (parentController as? MangaAllInOneController)?.setTrackingIcon(atLeastOneLink) } }