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) getHeader()?.setFavoriteButtonState(isFavorite)
} }
fun setTrackingIcon(tracked: Boolean) {
getHeader()?.setTrackingIcon(tracked)
}
override fun isInitialLoadAndFromSource() = fromSource && initialLoad override fun isInitialLoadAndFromSource() = fromSource && initialLoad
override fun removeInitialLoad() { override fun removeInitialLoad() {

View File

@ -59,7 +59,6 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import reactivecircus.flowbinding.android.view.clicks import reactivecircus.flowbinding.android.view.clicks
import reactivecircus.flowbinding.android.view.longClicks import reactivecircus.flowbinding.android.view.longClicks
import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.Injekt
@ -97,7 +96,12 @@ class MangaAllInOneHolder(
} }
adapter.delegate.controllerScope.launch(Dispatchers.IO) { 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() btn_tracking.clicks()
@ -440,17 +444,9 @@ class MangaAllInOneHolder(
adapter.delegate.performGlobalSearch(query) adapter.delegate.performGlobalSearch(query)
} }
private suspend fun setTrackingIcon() { fun setTrackingIcon(tracked: Boolean) {
val presenter = adapter.delegate.mangaPresenter() if (tracked) {
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) {
btn_tracking.setIconResource(R.drawable.ic_cloud_white_24dp) 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.data.track.model.TrackSearch
import eu.kanade.tachiyomi.databinding.TrackControllerBinding import eu.kanade.tachiyomi.databinding.TrackControllerBinding
import eu.kanade.tachiyomi.ui.base.controller.NucleusController 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.ui.manga.MangaController
import eu.kanade.tachiyomi.util.system.copyToClipboard import eu.kanade.tachiyomi.util.system.copyToClipboard
import eu.kanade.tachiyomi.util.system.toast 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 binding.swipeRefresh.isEnabled = atLeastOneLink
if (!fromAllInOne) { if (!fromAllInOne) {
(parentController as? MangaController)?.setTrackingIcon(atLeastOneLink) (parentController as? MangaController)?.setTrackingIcon(atLeastOneLink)
} else {
(parentController as? MangaAllInOneController)?.setTrackingIcon(atLeastOneLink)
} }
} }