Browse Source

[Feature Request] - Download Complete Remidner #3475 (#3527)

* [Feat] Show a download complete notification channel when all downloads are completed. Auto cancels when onclick and navigate to download screen.

* [Feat] Update the download message string to shorten the length.
Jimmy Low 4 years ago
parent
commit
7e73ede47a

+ 21 - 0
app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadNotifier.kt

@@ -71,6 +71,27 @@ internal class DownloadNotifier(private val context: Context) {
         context.notificationManager.cancel(Notifications.ID_DOWNLOAD_CHAPTER)
     }
 
+    /**
+     *  This function shows a notification to inform download tasks are done.
+     */
+    fun downloadFinished() {
+        // Create notification
+        with(notificationBuilder) {
+            setContentTitle(context.getString(R.string.download_notifier_downloader_title))
+            setContentText(context.getString(R.string.download_notifier_download_finish))
+            setSmallIcon(android.R.drawable.stat_sys_download_done)
+            clearActions()
+            setAutoCancel(true)
+            setContentIntent(NotificationHandler.openDownloadManagerPendingActivity(context))
+            setProgress(0, 0, false)
+        }
+        notificationBuilder.show(Notifications.ID_DOWNLOAD_CHAPTER_COMPLETE)
+
+        // Reset states to default
+        errorThrown = false
+        isDownloading = false
+    }
+
     /**
      * Called when download progress changes.
      *

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt

@@ -139,7 +139,7 @@ class Downloader(
                 notifier.paused = false
                 notifier.onDownloadPaused()
             } else {
-                notifier.dismiss()
+                notifier.downloadFinished()
             }
         }
     }

+ 1 - 0
app/src/main/java/eu/kanade/tachiyomi/data/notification/Notifications.kt

@@ -33,6 +33,7 @@ object Notifications {
     const val CHANNEL_DOWNLOADER = "downloader_channel"
     const val ID_DOWNLOAD_CHAPTER = -201
     const val ID_DOWNLOAD_CHAPTER_ERROR = -202
+    const val ID_DOWNLOAD_CHAPTER_COMPLETE = -203
 
     /**
      * Notification channel and ids used by the library updater.

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -672,6 +672,7 @@
     <string name="download_notifier_text_only_wifi">No Wi-Fi connection available</string>
     <string name="download_notifier_no_network">No network connection available</string>
     <string name="download_notifier_download_paused">Download paused</string>
+    <string name="download_notifier_download_finish">Download completed</string>
 
     <!-- Notification channels -->
     <string name="channel_common">Common</string>