From ac56e742a42416fc86a659f59b34f69ecf746e62 Mon Sep 17 00:00:00 2001 From: TJ Dahunsi Date: Thu, 29 Jun 2023 17:02:39 +0100 Subject: [PATCH 1/2] Consume Flows from WorkManager for work status Change-Id: Ia8002a7b74405de51a37921d3aaec91fc92d3773 --- gradle/libs.versions.toml | 2 +- .../nowinandroid/sync/status/WorkManagerSyncManager.kt | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b0046ff66..de5f0a69c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -27,7 +27,7 @@ androidxTestRunner = "1.5.1" androidxTracing = "1.1.0" androidxUiAutomator = "2.2.0" androidxWindowManager = "1.0.0" -androidxWork = "2.7.1" +androidxWork = "2.9.0-alpha01" coil = "2.2.2" firebaseBom = "31.2.0" firebaseCrashlyticsPlugin = "2.9.2" diff --git a/sync/work/src/main/java/com/google/samples/apps/nowinandroid/sync/status/WorkManagerSyncManager.kt b/sync/work/src/main/java/com/google/samples/apps/nowinandroid/sync/status/WorkManagerSyncManager.kt index 9bb57ccf0..90f065c2e 100644 --- a/sync/work/src/main/java/com/google/samples/apps/nowinandroid/sync/status/WorkManagerSyncManager.kt +++ b/sync/work/src/main/java/com/google/samples/apps/nowinandroid/sync/status/WorkManagerSyncManager.kt @@ -17,8 +17,6 @@ package com.google.samples.apps.nowinandroid.sync.status import android.content.Context -import androidx.lifecycle.asFlow -import androidx.lifecycle.map import androidx.work.ExistingWorkPolicy import androidx.work.WorkInfo import androidx.work.WorkInfo.State @@ -29,6 +27,7 @@ import com.google.samples.apps.nowinandroid.sync.workers.SyncWorker import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.conflate +import kotlinx.coroutines.flow.map import javax.inject.Inject /** @@ -38,9 +37,8 @@ class WorkManagerSyncManager @Inject constructor( @ApplicationContext private val context: Context, ) : SyncManager { override val isSyncing: Flow = - WorkManager.getInstance(context).getWorkInfosForUniqueWorkLiveData(SyncWorkName) + WorkManager.getInstance(context).getWorkInfosForUniqueWorkFlow(SyncWorkName) .map(MutableList::anyRunning) - .asFlow() .conflate() override fun requestSync() { @@ -54,4 +52,4 @@ class WorkManagerSyncManager @Inject constructor( } } -private val List.anyRunning get() = any { it.state == State.RUNNING } +private fun List.anyRunning() = any { it.state == State.RUNNING } From 3c5e83ce25abb7483ad0b2f7b5ab0c6b24dfee08 Mon Sep 17 00:00:00 2001 From: TJ Dahunsi Date: Thu, 29 Jun 2023 19:33:47 +0100 Subject: [PATCH 2/2] PR feedback Change-Id: I894e1b5ebb150740bc88e4e255955a049f3db053 --- .../apps/nowinandroid/sync/status/WorkManagerSyncManager.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sync/work/src/main/java/com/google/samples/apps/nowinandroid/sync/status/WorkManagerSyncManager.kt b/sync/work/src/main/java/com/google/samples/apps/nowinandroid/sync/status/WorkManagerSyncManager.kt index 90f065c2e..9131e4888 100644 --- a/sync/work/src/main/java/com/google/samples/apps/nowinandroid/sync/status/WorkManagerSyncManager.kt +++ b/sync/work/src/main/java/com/google/samples/apps/nowinandroid/sync/status/WorkManagerSyncManager.kt @@ -38,7 +38,7 @@ class WorkManagerSyncManager @Inject constructor( ) : SyncManager { override val isSyncing: Flow = WorkManager.getInstance(context).getWorkInfosForUniqueWorkFlow(SyncWorkName) - .map(MutableList::anyRunning) + .map(List::anyRunning) .conflate() override fun requestSync() {