mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +01:00 
			
		
		
		
	Library updater is now a foreground service
This commit is contained in:
		| @@ -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() | ||||
|   | ||||
| @@ -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, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user