mirror of
https://github.com/jellyfin/jellyfin-android.git
synced 2026-09-02 21:04:10 +03:00
Await WorkManager operations
This commit is contained in:
committed by
Niels van Velzen
parent
9cd4b17f7e
commit
6a4888f1b9
@@ -11,7 +11,9 @@ import androidx.work.OutOfQuotaPolicy
|
||||
import androidx.work.WorkInfo
|
||||
import androidx.work.WorkManager
|
||||
import androidx.work.WorkerParameters
|
||||
import androidx.work.await
|
||||
import kotlinx.coroutines.CancellationException
|
||||
import kotlinx.coroutines.guava.await
|
||||
import org.jellyfin.mobile.app.AppPreferences
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.inject
|
||||
@@ -24,7 +26,7 @@ class DownloadWorker(
|
||||
companion object {
|
||||
private val tag = DownloadWorker::class.qualifiedName!!
|
||||
|
||||
fun start(context: Context, appPreferences: AppPreferences) {
|
||||
suspend fun start(context: Context, appPreferences: AppPreferences) {
|
||||
val request = OneTimeWorkRequestBuilder<DownloadWorker>().apply {
|
||||
addTag(tag)
|
||||
setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST)
|
||||
@@ -39,16 +41,16 @@ class DownloadWorker(
|
||||
)
|
||||
}.build()
|
||||
|
||||
WorkManager.getInstance(context).enqueueUniqueWork(tag, ExistingWorkPolicy.REPLACE, request)
|
||||
WorkManager.getInstance(context).enqueueUniqueWork(tag, ExistingWorkPolicy.REPLACE, request).await()
|
||||
}
|
||||
|
||||
fun stop(context: Context) {
|
||||
WorkManager.getInstance(context).cancelUniqueWork(tag)
|
||||
suspend fun stop(context: Context) {
|
||||
WorkManager.getInstance(context).cancelUniqueWork(tag).await()
|
||||
}
|
||||
|
||||
fun isActive(context: Context): Boolean = WorkManager.getInstance(context)
|
||||
suspend fun isActive(context: Context): Boolean = WorkManager.getInstance(context)
|
||||
.getWorkInfosForUniqueWork(tag)
|
||||
.get()
|
||||
.await()
|
||||
.any { workInfo -> workInfo.state == WorkInfo.State.RUNNING }
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user