为下载通知增加进度条

This commit is contained in:
HapeLee
2025-10-19 13:55:26 +08:00
parent b8082b5335
commit 8b221c03c9
2 changed files with 28 additions and 3 deletions
@@ -30,6 +30,20 @@ object CacheBook {
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
fun getOrCreate(bookUrl: String): CacheBookModel? {
val book = appDb.bookDao.getBook(bookUrl) ?: return null
@@ -210,9 +210,20 @@ class CacheBookService : BaseService() {
}
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())
}
/**