This commit is contained in:
kunfei
2023-07-30 10:13:32 +08:00
parent d3b969da02
commit b713904d3d
9 changed files with 33 additions and 17 deletions
@@ -46,14 +46,6 @@ object AppConst {
const val bookGroupLocalNoneId = -5L const val bookGroupLocalNoneId = -5L
const val bookGroupErrorId = -11L const val bookGroupErrorId = -11L
const val notificationIdRead = -1122391
const val notificationIdAudio = -1122392
const val notificationIdCache = -1122393
const val notificationIdExport = -1122394
const val notificationIdWeb = -1122395
const val notificationIdDownload = -1122396
const val notificationIdCheckSource = -1122397
const val imagePathKey = "imagePath" const val imagePathKey = "imagePath"
val menuViewNames = arrayOf( val menuViewNames = arrayOf(
@@ -0,0 +1,18 @@
package io.legado.app.constant
/**
* 通知ID不能重复,统一规划通知ID
*/
object NotificationId {
const val ReadAloudService = 101
const val AudioPlayService = 102
const val CacheBookService = 103
const val ExportBookService = 104
const val WebService = 105
const val DownloadService = 106
const val CheckSourceService = 107
const val Download = 10000
const val ExportBook = 201
}
@@ -614,7 +614,7 @@ class AudioPlayService : BaseService(),
builder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC) builder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
builder builder
}.onSuccess { }.onSuccess {
startForeground(AppConst.notificationIdAudio, it.build()) startForeground(NotificationId.AudioPlayService, it.build())
} }
} }
@@ -429,7 +429,7 @@ abstract class BaseReadAloudService : BaseService(),
builder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC) builder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
builder builder
}.onSuccess { }.onSuccess {
startForeground(AppConst.notificationIdRead, it.build()) startForeground(NotificationId.ReadAloudService, it.build())
}.onError { }.onError {
AppLog.put("创建朗读通知出错,${it.localizedMessage}", it, true) AppLog.put("创建朗读通知出错,${it.localizedMessage}", it, true)
//创建通知出错不结束服务就会崩溃,服务必须绑定通知 //创建通知出错不结束服务就会崩溃,服务必须绑定通知
@@ -8,6 +8,7 @@ import io.legado.app.constant.AppConst
import io.legado.app.constant.AppLog import io.legado.app.constant.AppLog
import io.legado.app.constant.EventBus import io.legado.app.constant.EventBus
import io.legado.app.constant.IntentAction import io.legado.app.constant.IntentAction
import io.legado.app.constant.NotificationId
import io.legado.app.data.appDb import io.legado.app.data.appDb
import io.legado.app.help.config.AppConfig import io.legado.app.help.config.AppConfig
import io.legado.app.model.CacheBook import io.legado.app.model.CacheBook
@@ -167,7 +168,7 @@ class CacheBookService : BaseService() {
override fun upNotification() { override fun upNotification() {
notificationBuilder.setContentText(notificationContent) notificationBuilder.setContentText(notificationContent)
val notification = notificationBuilder.build() val notification = notificationBuilder.build()
startForeground(AppConst.notificationIdCache, notification) startForeground(NotificationId.CacheBookService, notification)
} }
} }
@@ -9,6 +9,7 @@ import io.legado.app.constant.AppConst
import io.legado.app.constant.BookSourceType import io.legado.app.constant.BookSourceType
import io.legado.app.constant.EventBus import io.legado.app.constant.EventBus
import io.legado.app.constant.IntentAction import io.legado.app.constant.IntentAction
import io.legado.app.constant.NotificationId
import io.legado.app.data.appDb import io.legado.app.data.appDb
import io.legado.app.data.entities.Book import io.legado.app.data.entities.Book
import io.legado.app.data.entities.BookSource import io.legado.app.data.entities.BookSource
@@ -264,7 +265,7 @@ class CheckSourceService : BaseService() {
notificationBuilder.setContentText(notificationMsg) notificationBuilder.setContentText(notificationMsg)
notificationBuilder.setProgress(allIds.size, checkedIds.size, false) notificationBuilder.setProgress(allIds.size, checkedIds.size, false)
postEvent(EventBus.CHECK_SOURCE, notificationMsg) postEvent(EventBus.CHECK_SOURCE, notificationMsg)
startForeground(AppConst.notificationIdCheckSource, notificationBuilder.build()) startForeground(NotificationId.CheckSourceService, notificationBuilder.build())
} }
} }
@@ -14,6 +14,7 @@ import io.legado.app.base.BaseService
import io.legado.app.constant.AppConst import io.legado.app.constant.AppConst
import io.legado.app.constant.AppLog import io.legado.app.constant.AppLog
import io.legado.app.constant.IntentAction import io.legado.app.constant.IntentAction
import io.legado.app.constant.NotificationId
import io.legado.app.utils.IntentType import io.legado.app.utils.IntentType
import io.legado.app.utils.openFileUri import io.legado.app.utils.openFileUri
import io.legado.app.utils.servicePendingIntent import io.legado.app.utils.servicePendingIntent
@@ -102,7 +103,8 @@ class DownloadService : BaseService() {
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName) request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName)
// 添加一个下载任务 // 添加一个下载任务
val downloadId = downloadManager.enqueue(request) val downloadId = downloadManager.enqueue(request)
downloads[downloadId] = DownloadInfo(url, fileName, downloads.size + 1) downloads[downloadId] =
DownloadInfo(url, fileName, NotificationId.Download + downloads.size)
queryState() queryState()
if (upStateJob == null) { if (upStateJob == null) {
checkDownloadState() checkDownloadState()
@@ -224,7 +226,7 @@ class DownloadService : BaseService() {
.setGroupSummary(true) .setGroupSummary(true)
.setOngoing(true) .setOngoing(true)
.build() .build()
startForeground(AppConst.notificationIdDownload, notification) startForeground(NotificationId.DownloadService, notification)
} }
/** /**
@@ -19,6 +19,7 @@ import io.legado.app.constant.AppLog
import io.legado.app.constant.AppPattern import io.legado.app.constant.AppPattern
import io.legado.app.constant.EventBus import io.legado.app.constant.EventBus
import io.legado.app.constant.IntentAction import io.legado.app.constant.IntentAction
import io.legado.app.constant.NotificationId
import io.legado.app.data.appDb import io.legado.app.data.appDb
import io.legado.app.data.entities.Book import io.legado.app.data.entities.Book
import io.legado.app.data.entities.BookChapter import io.legado.app.data.entities.BookChapter
@@ -132,7 +133,7 @@ class ExportBookService : BaseService() {
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC) .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
.setGroup(groupKey) .setGroup(groupKey)
.setGroupSummary(true) .setGroupSummary(true)
startForeground(AppConst.notificationIdExport, notification.build()) startForeground(NotificationId.ExportBookService, notification.build())
} }
private fun upExportNotification() { private fun upExportNotification() {
@@ -152,7 +153,7 @@ class ExportBookService : BaseService() {
servicePendingIntent<ExportBookService>(IntentAction.stop) servicePendingIntent<ExportBookService>(IntentAction.stop)
) )
} }
notificationManager.notify(AppConst.notificationIdExport + 100, notification.build()) notificationManager.notify(NotificationId.ExportBook, notification.build())
} }
private fun export() { private fun export() {
@@ -11,6 +11,7 @@ import io.legado.app.base.BaseService
import io.legado.app.constant.AppConst import io.legado.app.constant.AppConst
import io.legado.app.constant.EventBus import io.legado.app.constant.EventBus
import io.legado.app.constant.IntentAction import io.legado.app.constant.IntentAction
import io.legado.app.constant.NotificationId
import io.legado.app.constant.PreferKey import io.legado.app.constant.PreferKey
import io.legado.app.receiver.NetworkChangedListener import io.legado.app.receiver.NetworkChangedListener
import io.legado.app.utils.* import io.legado.app.utils.*
@@ -159,7 +160,7 @@ class WebService : BaseService() {
) )
builder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC) builder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
val notification = builder.build() val notification = builder.build()
startForeground(AppConst.notificationIdWeb, notification) startForeground(NotificationId.WebService, notification)
} }
@SuppressLint("ObsoleteSdkInt") @SuppressLint("ObsoleteSdkInt")