mirror of
https://github.com/aniyomiorg/aniyomi.git
synced 2024-11-24 13:48:55 +03:00
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:
parent
848d387ec4
commit
05771ddf6d
11 changed files with 66 additions and 1 deletions
|
@ -95,6 +95,23 @@ class DownloadManager(private val context: Context) {
|
||||||
downloader.clearQueue(isNotification)
|
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.
|
* Reorders the download queue.
|
||||||
*
|
*
|
||||||
|
|
|
@ -19,6 +19,7 @@ import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
import eu.kanade.tachiyomi.util.lang.plusAssign
|
import eu.kanade.tachiyomi.util.lang.plusAssign
|
||||||
import eu.kanade.tachiyomi.util.system.acquireWakeLock
|
import eu.kanade.tachiyomi.util.system.acquireWakeLock
|
||||||
import eu.kanade.tachiyomi.util.system.connectivityManager
|
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.notification
|
||||||
import eu.kanade.tachiyomi.util.system.toast
|
import eu.kanade.tachiyomi.util.system.toast
|
||||||
import rx.android.schedulers.AndroidSchedulers
|
import rx.android.schedulers.AndroidSchedulers
|
||||||
|
@ -58,6 +59,16 @@ class DownloadService : Service() {
|
||||||
fun stop(context: Context) {
|
fun stop(context: Context) {
|
||||||
context.stopService(Intent(context, DownloadService::class.java))
|
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()
|
private val downloadManager: DownloadManager by injectLazy()
|
||||||
|
|
|
@ -157,6 +157,11 @@ class Downloader(
|
||||||
notifier.paused = true
|
notifier.paused = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if downloader is paused
|
||||||
|
*/
|
||||||
|
fun isPaused() = !isRunning
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes everything from the queue.
|
* Removes everything from the queue.
|
||||||
*
|
*
|
||||||
|
|
|
@ -1057,6 +1057,11 @@ class MangaController :
|
||||||
Timber.e(error)
|
Timber.e(error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun startDownloadNow(position: Int) {
|
||||||
|
val chapter = chaptersAdapter?.getItem(position) ?: return
|
||||||
|
presenter.startDownloadingNow(chapter)
|
||||||
|
}
|
||||||
|
|
||||||
// OVERFLOW MENU DIALOGS
|
// OVERFLOW MENU DIALOGS
|
||||||
|
|
||||||
private fun downloadChapters(choice: Int) {
|
private fun downloadChapters(choice: Int) {
|
||||||
|
|
|
@ -517,6 +517,10 @@ class MangaPresenter(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun startDownloadingNow(chapter: Chapter) {
|
||||||
|
downloadManager.startDownloadNow(chapter)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mark the selected chapter list as read/unread.
|
* Mark the selected chapter list as read/unread.
|
||||||
* @param selectedChapters the list of selected chapters.
|
* @param selectedChapters the list of selected chapters.
|
||||||
|
|
|
@ -26,9 +26,16 @@ open class BaseChapterHolder(
|
||||||
|
|
||||||
// Download.State.DOWNLOADING, Download.State.QUEUE
|
// Download.State.DOWNLOADING, Download.State.QUEUE
|
||||||
findItem(R.id.cancel_download).isVisible = item.status != Download.State.DOWNLOADED
|
findItem(R.id.cancel_download).isVisible = item.status != Download.State.DOWNLOADED
|
||||||
|
|
||||||
|
// Download.State.QUEUE
|
||||||
|
findItem(R.id.start_download).isVisible = item.status == Download.State.QUEUE
|
||||||
},
|
},
|
||||||
onMenuItemClick = {
|
onMenuItemClick = {
|
||||||
adapter.clickListener.deleteChapter(position)
|
if (itemId == R.id.start_download) {
|
||||||
|
adapter.clickListener.startDownloadNow(position)
|
||||||
|
} else {
|
||||||
|
adapter.clickListener.deleteChapter(position)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,5 +18,6 @@ abstract class BaseChaptersAdapter<T : IFlexible<*>>(
|
||||||
interface OnChapterClickListener {
|
interface OnChapterClickListener {
|
||||||
fun downloadChapter(position: Int)
|
fun downloadChapter(position: Int)
|
||||||
fun deleteChapter(position: Int)
|
fun deleteChapter(position: Int)
|
||||||
|
fun startDownloadNow(position: Int)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -318,6 +318,11 @@ class UpdatesController :
|
||||||
adapter?.updateItem(item)
|
adapter?.updateItem(item)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun startDownloadNow(position: Int) {
|
||||||
|
val chapter = adapter?.getItem(position) as? UpdatesItem ?: return
|
||||||
|
presenter.startDownloadingNow(chapter)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when ActionMode created.
|
* Called when ActionMode created.
|
||||||
* @param mode the ActionMode object
|
* @param mode the ActionMode object
|
||||||
|
|
|
@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.ui.recent.updates
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import eu.kanade.tachiyomi.data.database.DatabaseHelper
|
import eu.kanade.tachiyomi.data.database.DatabaseHelper
|
||||||
|
import eu.kanade.tachiyomi.data.database.models.Chapter
|
||||||
import eu.kanade.tachiyomi.data.database.models.MangaChapter
|
import eu.kanade.tachiyomi.data.database.models.MangaChapter
|
||||||
import eu.kanade.tachiyomi.data.download.DownloadManager
|
import eu.kanade.tachiyomi.data.download.DownloadManager
|
||||||
import eu.kanade.tachiyomi.data.download.model.Download
|
import eu.kanade.tachiyomi.data.download.model.Download
|
||||||
|
@ -134,6 +135,10 @@ class UpdatesPresenter(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun startDownloadingNow(chapter: Chapter) {
|
||||||
|
downloadManager.startDownloadNow(chapter)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mark selected chapter as read
|
* Mark selected chapter as read
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/start_download"
|
||||||
|
android:title="@string/action_start_downloading_now" />
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/delete_download"
|
android:id="@+id/delete_download"
|
||||||
android:title="@string/action_delete" />
|
android:title="@string/action_delete" />
|
||||||
|
|
|
@ -120,6 +120,7 @@
|
||||||
<string name="action_webview_back">Back</string>
|
<string name="action_webview_back">Back</string>
|
||||||
<string name="action_webview_forward">Forward</string>
|
<string name="action_webview_forward">Forward</string>
|
||||||
<string name="action_webview_refresh">Refresh</string>
|
<string name="action_webview_refresh">Refresh</string>
|
||||||
|
<string name="action_start_downloading_now">Start downloading now</string>
|
||||||
|
|
||||||
<!-- Operations -->
|
<!-- Operations -->
|
||||||
<string name="loading">Loading…</string>
|
<string name="loading">Loading…</string>
|
||||||
|
|
Loading…
Reference in a new issue