mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-10-31 07:13:00 +00:00 
			
		
		
		
	Combine notification and ForegroundInfo creation methods
This commit is contained in:
		 Isira Seneviratne
					Isira Seneviratne
				
			
				
					committed by
					
						 Profpatsch
						Profpatsch
					
				
			
			
				
	
			
			
			 Profpatsch
						Profpatsch
					
				
			
						parent
						
							4e31ccebf8
						
					
				
				
					commit
					c9d155a335
				
			| @@ -1,6 +1,5 @@ | ||||
| package org.schabi.newpipe.local.subscription.workers | ||||
|  | ||||
| import android.app.Notification | ||||
| import android.content.Context | ||||
| import android.content.pm.ServiceInfo | ||||
| import android.net.Uri | ||||
| @@ -30,8 +29,7 @@ class SubscriptionExportWorker( | ||||
| ) : CoroutineWorker(appContext, params) { | ||||
|     // This is needed for API levels < 31 (Android S). | ||||
|     override suspend fun getForegroundInfo(): ForegroundInfo { | ||||
|         val notification = createNotification(applicationContext.getString(R.string.export_ongoing)) | ||||
|         return createForegroundInfo(notification) | ||||
|         return createForegroundInfo(applicationContext.getString(R.string.export_ongoing)) | ||||
|     } | ||||
|  | ||||
|     override suspend fun doWork(): Result { | ||||
| @@ -44,9 +42,8 @@ class SubscriptionExportWorker( | ||||
|                     .map { SubscriptionItem(it.serviceId, it.url, it.name) } | ||||
|  | ||||
|             val qty = subscriptions.size | ||||
|             val title = | ||||
|                 applicationContext.resources.getQuantityString(R.plurals.export_subscriptions, qty, qty) | ||||
|             setForeground(createForegroundInfo(createNotification(title))) | ||||
|             val title = applicationContext.resources.getQuantityString(R.plurals.export_subscriptions, qty, qty) | ||||
|             setForeground(createForegroundInfo(title)) | ||||
|  | ||||
|             withContext(Dispatchers.IO) { | ||||
|                 applicationContext.contentResolver.openOutputStream(uri)?.use { | ||||
| @@ -80,7 +77,8 @@ class SubscriptionExportWorker( | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private fun createNotification(title: String): Notification = | ||||
|     private fun createForegroundInfo(title: String): ForegroundInfo { | ||||
|         val notification = | ||||
|             NotificationCompat | ||||
|                 .Builder(applicationContext, NOTIFICATION_CHANNEL_ID) | ||||
|                 .setSmallIcon(R.drawable.ic_newpipe_triangle_white) | ||||
| @@ -90,8 +88,6 @@ class SubscriptionExportWorker( | ||||
|                 .setForegroundServiceBehavior(NotificationCompat.FOREGROUND_SERVICE_IMMEDIATE) | ||||
|                 .setContentTitle(title) | ||||
|                 .build() | ||||
|  | ||||
|     private fun createForegroundInfo(notification: Notification): ForegroundInfo { | ||||
|         val serviceType = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC else 0 | ||||
|         return ForegroundInfo(NOTIFICATION_ID, notification, serviceType) | ||||
|     } | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| package org.schabi.newpipe.local.subscription.workers | ||||
|  | ||||
| import android.app.Notification | ||||
| import android.content.Context | ||||
| import android.content.pm.ServiceInfo | ||||
| import android.os.Build | ||||
| @@ -33,8 +32,7 @@ class SubscriptionImportWorker( | ||||
| ) : CoroutineWorker(appContext, params) { | ||||
|     // This is needed for API levels < 31 (Android S). | ||||
|     override suspend fun getForegroundInfo(): ForegroundInfo { | ||||
|         val title = applicationContext.getString(R.string.import_ongoing) | ||||
|         return createForegroundInfo(createNotification(title, null, 0, 0)) | ||||
|         return createForegroundInfo(applicationContext.getString(R.string.import_ongoing), null, 0, 0) | ||||
|     } | ||||
|  | ||||
|     override suspend fun doWork(): Result { | ||||
| @@ -78,8 +76,7 @@ class SubscriptionImportWorker( | ||||
|                             ExtractorHelper.getChannelTab(it.serviceId, channelInfo.tabs[0], true).await() | ||||
|  | ||||
|                         val currentIndex = mutex.withLock { index++ } | ||||
|                         val notification = createNotification(title, channelInfo.name, currentIndex, qty) | ||||
|                         setForeground(createForegroundInfo(notification)) | ||||
|                         setForeground(createForegroundInfo(title, channelInfo.name, currentIndex, qty)) | ||||
|  | ||||
|                         Pair(channelInfo, listOf(channelTab)) | ||||
|                     } | ||||
| @@ -87,7 +84,7 @@ class SubscriptionImportWorker( | ||||
|         } | ||||
|  | ||||
|         title = applicationContext.resources.getQuantityString(R.plurals.import_subscriptions, qty, qty) | ||||
|         setForeground(createForegroundInfo(createNotification(title, null, 0, 0))) | ||||
|         setForeground(createForegroundInfo(title, null, 0, 0)) | ||||
|         index = 0 | ||||
|  | ||||
|         val subscriptionManager = SubscriptionManager(applicationContext) | ||||
| @@ -96,7 +93,7 @@ class SubscriptionImportWorker( | ||||
|                 subscriptionManager.upsertAll(chunk) | ||||
|             } | ||||
|             index += chunk.size | ||||
|             setForeground(createForegroundInfo(createNotification(title, null, index, qty))) | ||||
|             setForeground(createForegroundInfo(title, null, index, qty)) | ||||
|         } | ||||
|  | ||||
|         withContext(Dispatchers.Main) { | ||||
| @@ -108,12 +105,13 @@ class SubscriptionImportWorker( | ||||
|         return Result.success() | ||||
|     } | ||||
|  | ||||
|     private fun createNotification( | ||||
|     private fun createForegroundInfo( | ||||
|         title: String, | ||||
|         text: String?, | ||||
|         currentProgress: Int, | ||||
|         maxProgress: Int, | ||||
|     ): Notification = | ||||
|     ): ForegroundInfo { | ||||
|         val notification = | ||||
|             NotificationCompat | ||||
|                 .Builder(applicationContext, NOTIFICATION_CHANNEL_ID) | ||||
|                 .setSmallIcon(R.drawable.ic_newpipe_triangle_white) | ||||
| @@ -137,9 +135,8 @@ class SubscriptionImportWorker( | ||||
|                         } | ||||
|                     } | ||||
|                 }.build() | ||||
|  | ||||
|     private fun createForegroundInfo(notification: Notification): ForegroundInfo { | ||||
|         val serviceType = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC else 0 | ||||
|  | ||||
|         return ForegroundInfo(NOTIFICATION_ID, notification, serviceType) | ||||
|     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user