diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt index 10cd83e84..01b2b5b60 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt @@ -81,9 +81,11 @@ class LibraryUpdateService( * Cached progress notification to avoid creating a lot. */ private val progressNotification by lazy { NotificationCompat.Builder(this, Notifications.CHANNEL_LIBRARY) + .setContentTitle(getString(R.string.app_name)) .setSmallIcon(R.drawable.ic_refresh_white_24dp_img) .setLargeIcon(notificationBitmap) .setOngoing(true) + .setOnlyAlertOnce(true) .addAction(R.drawable.ic_clear_grey_24dp_img, getString(android.R.string.cancel), cancelIntent) } @@ -132,7 +134,11 @@ class LibraryUpdateService( putExtra(KEY_TARGET, target) category?.let { putExtra(KEY_CATEGORY, it.id) } } - context.startService(intent) + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { + context.startService(intent) + } else { + context.startForegroundService(intent) + } } } @@ -153,6 +159,7 @@ class LibraryUpdateService( */ override fun onCreate() { super.onCreate() + startForeground(Notifications.ID_LIBRARY_PROGRESS, progressNotification.build()) wakeLock = (getSystemService(Context.POWER_SERVICE) as PowerManager).newWakeLock( PowerManager.PARTIAL_WAKE_LOCK, "LibraryUpdateService:WakeLock") wakeLock.acquire() diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/updater/UpdateDownloaderReceiver.kt b/app/src/main/java/eu/kanade/tachiyomi/data/updater/UpdateDownloaderReceiver.kt index f8c3a9965..79190495b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/updater/UpdateDownloaderReceiver.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/updater/UpdateDownloaderReceiver.kt @@ -82,6 +82,7 @@ internal class UpdateDownloaderReceiver(val context: Context) : BroadcastReceive private fun updateProgress(progress: Int) { with(notification) { setProgress(100, progress, false) + setOnlyAlertOnce(true) } notification.show() } @@ -96,6 +97,7 @@ internal class UpdateDownloaderReceiver(val context: Context) : BroadcastReceive with(notification) { setContentText(context.getString(R.string.update_check_notification_download_complete)) setSmallIcon(android.R.drawable.stat_sys_download_done) + setOnlyAlertOnce(false) setProgress(0, 0, false) // Install action setContentIntent(NotificationHandler.installApkPendingActivity(context, File(path))) @@ -120,6 +122,7 @@ internal class UpdateDownloaderReceiver(val context: Context) : BroadcastReceive with(notification) { setContentText(context.getString(R.string.update_check_notification_download_error)) setSmallIcon(android.R.drawable.stat_sys_warning) + setOnlyAlertOnce(false) setProgress(0, 0, false) // Retry action addAction(R.drawable.ic_refresh_grey_24dp_img,