Tracking icon now sets after adding a manga to tracking

This commit is contained in:
Jobobby04 2020-06-07 14:56:05 -04:00
parent d39bbccb5a
commit 33c81313d5
3 changed files with 16 additions and 13 deletions

View File

@ -533,6 +533,10 @@ class MangaAllInOneController :
getHeader()?.setFavoriteButtonState(isFavorite)
}
fun setTrackingIcon(tracked: Boolean) {
getHeader()?.setTrackingIcon(tracked)
}
override fun isInitialLoadAndFromSource() = fromSource && initialLoad
override fun removeInitialLoad() {

View File

@ -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<DatabaseHelper>().getTracks(presenter.manga).executeAsBlocking().any {
val status = Injekt.get<TrackManager>().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<DatabaseHelper>().getTracks(presenter.manga).executeAsBlocking().any {
val status = Injekt.get<TrackManager>().getService(it.sync_id)?.getStatus(it.status)
status != null
}
) {
withContext(Dispatchers.Main) {
fun setTrackingIcon(tracked: Boolean) {
if (tracked) {
btn_tracking.setIconResource(R.drawable.ic_cloud_white_24dp)
}
}
}
}

View File

@ -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)
}
}