diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadQueueScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadQueueScreen.kt index 13b496032..7f752cdfb 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadQueueScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadQueueScreen.kt @@ -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 } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadQueueScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadQueueScreenModel.kt index 3f8896632..026655267 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadQueueScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadQueueScreenModel.kt @@ -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()) @@ -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 > reorderQueue(selector: (DownloadItem) -> R, reverse: Boolean = false) { val adapter = adapter ?: return val newDownloads = mutableListOf() diff --git a/app/src/main/res/menu/download_single.xml b/app/src/main/res/menu/download_single.xml index 1cf14ff0c..98c06144e 100644 --- a/app/src/main/res/menu/download_single.xml +++ b/app/src/main/res/menu/download_single.xml @@ -25,4 +25,8 @@ android:id="@+id/cancel_series" android:title="@string/cancel_all_for_series" /> + +