Group notifcations for Library updates (#2582)
This commit is contained in:
@@ -30,27 +30,11 @@ internal class DownloadNotifier(private val context: Context) {
|
||||
*/
|
||||
private var isDownloading = false
|
||||
|
||||
/**
|
||||
* The size of queue on start download.
|
||||
*/
|
||||
var initialQueueSize = 0
|
||||
set(value) {
|
||||
if (value != 0) {
|
||||
isSingleChapter = (value == 1)
|
||||
}
|
||||
field = value
|
||||
}
|
||||
|
||||
/**
|
||||
* Updated when error is thrown
|
||||
*/
|
||||
var errorThrown = false
|
||||
|
||||
/**
|
||||
* Updated when only single page is downloaded
|
||||
*/
|
||||
var isSingleChapter = false
|
||||
|
||||
/**
|
||||
* Updated when paused
|
||||
*/
|
||||
@@ -144,39 +128,6 @@ internal class DownloadNotifier(private val context: Context) {
|
||||
|
||||
// Reset initial values
|
||||
isDownloading = false
|
||||
initialQueueSize = 0
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when chapter is downloaded.
|
||||
*
|
||||
* @param download download object containing download information.
|
||||
*/
|
||||
fun onDownloadCompleted(download: Download, queue: DownloadQueue) {
|
||||
// Check if last download
|
||||
if (!queue.isEmpty()) {
|
||||
return
|
||||
}
|
||||
// Create notification.
|
||||
with(notificationBuilder) {
|
||||
val title = download.manga.title.chop(15)
|
||||
val quotedTitle = Pattern.quote(title)
|
||||
val chapter = download.chapter.name.replaceFirst("$quotedTitle[\\s]*[-]*[\\s]*".toRegex(RegexOption.IGNORE_CASE), "")
|
||||
setContentTitle("$title - $chapter".chop(30))
|
||||
setContentText(context.getString(R.string.update_check_notification_download_complete))
|
||||
setSmallIcon(android.R.drawable.stat_sys_download_done)
|
||||
setAutoCancel(true)
|
||||
clearActions()
|
||||
setContentIntent(NotificationReceiver.openChapterPendingBroadcast(context, download.manga, download.chapter))
|
||||
setProgress(0, 0, false)
|
||||
}
|
||||
|
||||
// Show notification.
|
||||
notificationBuilder.show()
|
||||
|
||||
// Reset initial values
|
||||
isDownloading = false
|
||||
initialQueueSize = 0
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -126,8 +126,6 @@ class Downloader(
|
||||
if (notifier.paused) {
|
||||
notifier.paused = false
|
||||
notifier.onDownloadPaused()
|
||||
} else if (notifier.isSingleChapter && !notifier.errorThrown) {
|
||||
notifier.isSingleChapter = false
|
||||
} else {
|
||||
notifier.dismiss()
|
||||
}
|
||||
@@ -229,9 +227,6 @@ class Downloader(
|
||||
if (chaptersToQueue.isNotEmpty()) {
|
||||
queue.addAll(chaptersToQueue)
|
||||
|
||||
// Initialize queue size.
|
||||
notifier.initialQueueSize = queue.size
|
||||
|
||||
if (isRunning) {
|
||||
// Send the list of downloads to the downloader.
|
||||
downloadsRelay.call(chaptersToQueue)
|
||||
@@ -428,9 +423,6 @@ class Downloader(
|
||||
queue.remove(download)
|
||||
}
|
||||
if (areAllDownloadsFinished()) {
|
||||
if (notifier.isSingleChapter && !notifier.errorThrown) {
|
||||
notifier.onDownloadCompleted(download, queue)
|
||||
}
|
||||
DownloadService.stop(context)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user