add start download now (#5386)

* add start download now

download now for selected chapter
from j2k

Co-Authored-By: Jays2Kings <jays@outlook.com>

* change string to action

* move to bottom

* oopsie

Co-authored-by: Jays2Kings <jays@outlook.com>
This commit is contained in:
Riztard Lanthorn
2021-06-19 23:36:29 +07:00
committed by GitHub
parent 848d387ec4
commit 05771ddf6d
11 changed files with 66 additions and 1 deletions

View File

@@ -95,6 +95,23 @@ class DownloadManager(private val context: Context) {
downloader.clearQueue(isNotification)
}
fun startDownloadNow(chapter: Chapter) {
val download = downloader.queue.find { it.chapter.id == chapter.id } ?: return
val queue = downloader.queue.toMutableList()
queue.remove(download)
queue.add(0, download)
reorderQueue(queue)
if (isPaused()) {
if (DownloadService.isRunning(context)) {
downloader.start()
} else {
DownloadService.start(context)
}
}
}
fun isPaused() = downloader.isPaused()
/**
* Reorders the download queue.
*

View File

@@ -19,6 +19,7 @@ import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.util.lang.plusAssign
import eu.kanade.tachiyomi.util.system.acquireWakeLock
import eu.kanade.tachiyomi.util.system.connectivityManager
import eu.kanade.tachiyomi.util.system.isServiceRunning
import eu.kanade.tachiyomi.util.system.notification
import eu.kanade.tachiyomi.util.system.toast
import rx.android.schedulers.AndroidSchedulers
@@ -58,6 +59,16 @@ class DownloadService : Service() {
fun stop(context: Context) {
context.stopService(Intent(context, DownloadService::class.java))
}
/**
* Returns the status of the service.
*
* @param context the application context.
* @return true if the service is running, false otherwise.
*/
fun isRunning(context: Context): Boolean {
return context.isServiceRunning(DownloadService::class.java)
}
}
private val downloadManager: DownloadManager by injectLazy()

View File

@@ -157,6 +157,11 @@ class Downloader(
notifier.paused = true
}
/**
* Check if downloader is paused
*/
fun isPaused() = !isRunning
/**
* Removes everything from the queue.
*