Fix ForegroundServiceStartNotAllowedException on Android 12+

- Add setExpedited() to WorkManager requests missing it
- Fixes crash when starting foreground services from background
- Updated DownloadFactory, LocalStorageCleanupWorker, SuggestionsWorker, and TrackWorker schedulers
- Ensures compliance with Android 12+ foreground service restrictions
master
VardanRattan 11 months ago committed by Koitharu
parent e04a877310
commit 67b1e4e862

@ -526,6 +526,7 @@ class DownloadWorker @AssistedInject constructor(
.setConstraints(constraints)
.addTag(TAG)
.setId(work.id)
.setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST)
.build()
workManager.awaitUpdateWork(request)
}

@ -52,6 +52,7 @@ class LocalStorageCleanupWorker @AssistedInject constructor(
.setConstraints(constraints)
.addTag(TAG)
.setBackoffCriteria(BackoffPolicy.LINEAR, 10, TimeUnit.MINUTES)
.setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST)
.build()
WorkManager.getInstance(context).enqueueUniqueWork(TAG, ExistingWorkPolicy.KEEP, request).await()
}

@ -415,6 +415,7 @@ class SuggestionsWorker @AssistedInject constructor(
.setConstraints(createConstraints())
.addTag(TAG)
.setBackoffCriteria(BackoffPolicy.LINEAR, 1, TimeUnit.HOURS)
.setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST)
.build()
workManager
.enqueueUniquePeriodicWork(TAG, ExistingPeriodicWorkPolicy.UPDATE, request)

@ -289,6 +289,7 @@ class TrackWorker @AssistedInject constructor(
.setConstraints(constraints)
.addTag(TAG)
.setBackoffCriteria(BackoffPolicy.LINEAR, 30, TimeUnit.MINUTES)
.setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST)
.build()
workManager
.enqueueUniquePeriodicWork(TAG, ExistingPeriodicWorkPolicy.UPDATE, request)

Loading…
Cancel
Save