parent
c0147da7a7
commit
a1dbcc022d
3 changed files with 28 additions and 1 deletions
|
|
@ -70,7 +70,13 @@ object DownloadQueueScreen : Screen() {
|
|||
override fun Content() {
|
||||
val navigator = LocalNavigator.currentOrThrow
|
||||
val scope = rememberCoroutineScope()
|
||||
val screenModel = rememberScreenModel { DownloadQueueScreenModel() }
|
||||
val screenModel = rememberScreenModel {
|
||||
DownloadQueueScreenModel(
|
||||
// KMK -->
|
||||
navigator = navigator
|
||||
// KMK <--
|
||||
)
|
||||
}
|
||||
val downloadList by screenModel.state.collectAsState()
|
||||
val downloadCount by remember {
|
||||
derivedStateOf { downloadList.sumOf { it.subItems.size } }
|
||||
|
|
|
|||
|
|
@ -3,11 +3,13 @@ package eu.kanade.tachiyomi.ui.download
|
|||
import android.view.MenuItem
|
||||
import cafe.adriel.voyager.core.model.ScreenModel
|
||||
import cafe.adriel.voyager.core.model.screenModelScope
|
||||
import cafe.adriel.voyager.navigator.Navigator
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.download.DownloadManager
|
||||
import eu.kanade.tachiyomi.data.download.model.Download
|
||||
import eu.kanade.tachiyomi.databinding.DownloadListBinding
|
||||
import eu.kanade.tachiyomi.source.model.Page
|
||||
import eu.kanade.tachiyomi.ui.manga.MangaScreen
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
|
|
@ -26,6 +28,9 @@ import uy.kohesive.injekt.api.get
|
|||
|
||||
class DownloadQueueScreenModel(
|
||||
private val downloadManager: DownloadManager = Injekt.get(),
|
||||
// KMK -->
|
||||
private val navigator: Navigator? = null,
|
||||
// KMK <--
|
||||
) : ScreenModel {
|
||||
|
||||
private val _state = MutableStateFlow(emptyList<DownloadHeaderItem>())
|
||||
|
|
@ -110,6 +115,12 @@ class DownloadQueueScreenModel(
|
|||
cancel(allDownloadsForSeries)
|
||||
}
|
||||
}
|
||||
// KMK -->
|
||||
R.id.show_manga -> {
|
||||
val mangaId = item.download.manga.id
|
||||
showManga(mangaId = mangaId)
|
||||
}
|
||||
// KMK <--
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -165,6 +176,12 @@ class DownloadQueueScreenModel(
|
|||
downloadManager.cancelQueuedDownloads(downloads)
|
||||
}
|
||||
|
||||
// KMK -->
|
||||
fun showManga(mangaId: Long) {
|
||||
navigator?.push(MangaScreen(mangaId))
|
||||
}
|
||||
// KMK <--
|
||||
|
||||
fun <R : Comparable<R>> reorderQueue(selector: (DownloadItem) -> R, reverse: Boolean = false) {
|
||||
val adapter = adapter ?: return
|
||||
val newDownloads = mutableListOf<Download>()
|
||||
|
|
|
|||
|
|
@ -25,4 +25,8 @@
|
|||
android:id="@+id/cancel_series"
|
||||
android:title="@string/cancel_all_for_series" />
|
||||
|
||||
<item
|
||||
android:id="@+id/show_manga"
|
||||
android:title="@string/action_show_manga" />
|
||||
|
||||
</menu>
|
||||
|
|
|
|||
Loading…
Reference in a new issue