Selaa lähdekoodia

为下载通知增加进度条

HapeLee 1 vuosi sitten
vanhempi
commit
8b221c03c9

+ 14 - 0
app/src/main/java/io/legato/kazusa/model/CacheBook.kt

@@ -30,6 +30,20 @@ object CacheBook {
 
 
     val cacheBookMap = ConcurrentHashMap<String, CacheBookModel>()
     val cacheBookMap = ConcurrentHashMap<String, CacheBookModel>()
 
 
+    val totalCount: Int
+        get() {
+            var total = 0
+            cacheBookMap.forEach { (_, model) ->
+                total += model.waitCount + model.onDownloadCount
+            }
+            total += successDownloadSet.size
+            total += errorDownloadMap.size
+            return total
+        }
+
+    val completedCount: Int
+        get() = successDownloadSet.size + errorDownloadMap.size
+
     @Synchronized
     @Synchronized
     fun getOrCreate(bookUrl: String): CacheBookModel? {
     fun getOrCreate(bookUrl: String): CacheBookModel? {
         val book = appDb.bookDao.getBook(bookUrl) ?: return null
         val book = appDb.bookDao.getBook(bookUrl) ?: return null

+ 14 - 3
app/src/main/java/io/legato/kazusa/service/CacheBookService.kt

@@ -210,9 +210,20 @@ class CacheBookService : BaseService() {
     }
     }
 
 
     private fun upCacheBookNotification() {
     private fun upCacheBookNotification() {
-        notificationBuilder.setContentText(notificationContent)
-        val notification = notificationBuilder.build()
-        notificationManager.notify(NotificationId.CacheBookService, notification)
+        val total = CacheBook.totalCount
+        val progress = CacheBook.completedCount
+        val summary = CacheBook.downloadSummary
+
+        notificationBuilder.apply {
+            setContentText(summary)
+            if (total > 0) {
+                setProgress(total, progress, false)
+            } else {
+                setProgress(0, 0, true)
+            }
+        }
+
+        notificationManager.notify(NotificationId.CacheBookService, notificationBuilder.build())
     }
     }
 
 
     /**
     /**