From e35d76cc919d0f27451abd7115c1fc80c60b45d6 Mon Sep 17 00:00:00 2001 From: Jaehwa Noh Date: Fri, 7 Jun 2024 16:50:23 +0900 Subject: [PATCH] Create setWorkManager and call initialize. Change-Id: Id22131f925f77e5310a6ed57929f2bdf1b312c37 --- .../sync/initializers/SyncInitializer.kt | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/sync/work/src/main/kotlin/com/google/samples/apps/nowinandroid/sync/initializers/SyncInitializer.kt b/sync/work/src/main/kotlin/com/google/samples/apps/nowinandroid/sync/initializers/SyncInitializer.kt index 10519fdf2..3ae657dc0 100644 --- a/sync/work/src/main/kotlin/com/google/samples/apps/nowinandroid/sync/initializers/SyncInitializer.kt +++ b/sync/work/src/main/kotlin/com/google/samples/apps/nowinandroid/sync/initializers/SyncInitializer.kt @@ -27,7 +27,8 @@ import com.google.samples.apps.nowinandroid.sync.workers.SyncWorker */ class SyncInitializer : Initializer { override fun create(context: Context): Sync { - return Sync + val workManager = WorkManager.getInstance(context) + return Sync.setWorkManager(workManager) } override fun dependencies(): MutableList>> { @@ -36,10 +37,21 @@ class SyncInitializer : Initializer { } object Sync { + private var workManager: WorkManager? = null + + /** + * setWorkManager to [Sync] + */ + fun setWorkManager(workManager: WorkManager): Sync { + this.workManager = workManager + this.initialize() + return this + } + // This method is initializes sync, the process that keeps the app's data current. // It is called from the app module's Application.onCreate() and should be only done once. - fun initialize(context: Context) { - WorkManager.getInstance(context).apply { + private fun initialize() { + workManager?.apply { // Run sync on app startup and ensure only one sync worker runs at any time enqueueUniqueWork( SYNC_WORK_NAME,