mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
fix: Download queue count not updating
Also, don't use raw integer for download badge colour
This commit is contained in:
parent
3606f67dba
commit
3787845893
1 changed files with 14 additions and 6 deletions
|
@ -102,6 +102,7 @@ import eu.kanade.tachiyomi.ui.source.globalsearch.GlobalSearchController
|
|||
import eu.kanade.tachiyomi.util.manga.MangaCoverMetadata
|
||||
import eu.kanade.tachiyomi.util.manga.MangaShortcutManager
|
||||
import eu.kanade.tachiyomi.util.showNotificationPermissionPrompt
|
||||
import eu.kanade.tachiyomi.util.system.contextCompatColor
|
||||
import eu.kanade.tachiyomi.util.system.contextCompatDrawable
|
||||
import eu.kanade.tachiyomi.util.system.dpToPx
|
||||
import eu.kanade.tachiyomi.util.system.e
|
||||
|
@ -138,6 +139,7 @@ import kotlin.math.min
|
|||
import kotlin.math.roundToLong
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.combine
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
import kotlinx.coroutines.withContext
|
||||
|
@ -458,8 +460,14 @@ open class MainActivity : BaseActivity<MainActivityBinding>() {
|
|||
}
|
||||
}
|
||||
|
||||
downloadManager.isDownloaderRunning.onEach(::downloadStatusChanged).launchIn(lifecycleScope)
|
||||
lifecycleScope
|
||||
combine(
|
||||
downloadManager.isDownloaderRunning,
|
||||
downloadManager.queueState,
|
||||
) { isDownloading, queueState ->
|
||||
isDownloading to queueState.size
|
||||
}.onEach { (isDownloading, queueSize) ->
|
||||
downloadStatusChanged(isDownloading, queueSize)
|
||||
}.launchIn(lifecycleScope)
|
||||
WindowCompat.setDecorFitsSystemWindows(window, false)
|
||||
setSupportActionBar(binding.toolbar)
|
||||
supportActionBar?.setDisplayShowCustomEnabled(true)
|
||||
|
@ -1503,17 +1511,17 @@ open class MainActivity : BaseActivity<MainActivityBinding>() {
|
|||
}
|
||||
}
|
||||
|
||||
fun BadgeDrawable.updateQueueSize(queueSize: Int) {
|
||||
private fun BadgeDrawable.updateQueueSize(queueSize: Int) {
|
||||
number = queueSize
|
||||
}
|
||||
|
||||
fun downloadStatusChanged(downloading: Boolean) {
|
||||
private fun downloadStatusChanged(downloading: Boolean, queueSize: Int) {
|
||||
lifecycleScope.launchUI {
|
||||
val hasQueue = downloading || downloadManager.hasQueue()
|
||||
if (hasQueue) {
|
||||
val badge = nav.getOrCreateBadge(R.id.nav_recents)
|
||||
badge.updateQueueSize(downloadManager.queueState.value.size)
|
||||
if (downloading) badge.backgroundColor = -870219 else badge.backgroundColor = Color.GRAY
|
||||
badge.updateQueueSize(queueSize)
|
||||
badge.backgroundColor = if (downloading) contextCompatColor(R.attr.colorError) else Color.GRAY
|
||||
showDLQueueTutorial()
|
||||
} else {
|
||||
nav.removeBadge(R.id.nav_recents)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue