From 72acf9c85040185ca282ae453d2f8cece04a6df9 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Sun, 13 Nov 2022 20:10:52 +0530 Subject: [PATCH] feat(android): add a WorkManager plugin --- .../claw/android/work/WorkManagerPlugin.kt | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 android/src/main/kotlin/dev/msfjarvis/claw/android/work/WorkManagerPlugin.kt diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/work/WorkManagerPlugin.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/work/WorkManagerPlugin.kt new file mode 100644 index 00000000..16211846 --- /dev/null +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/work/WorkManagerPlugin.kt @@ -0,0 +1,34 @@ +/* + * Copyright © 2022 Harsh Shandilya. + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + */ +package dev.msfjarvis.claw.android.work + +import android.app.Application +import android.util.Log +import androidx.work.Configuration +import androidx.work.WorkManager +import com.squareup.anvil.annotations.ContributesMultibinding +import dev.msfjarvis.claw.core.injection.AppPlugin +import dev.msfjarvis.claw.injection.scopes.AppScope +import javax.inject.Inject +import tangle.work.TangleWorkerFactory + +@ContributesMultibinding(AppScope::class) +class WorkManagerPlugin +@Inject +constructor( + private val workerFactory: TangleWorkerFactory, +) : AppPlugin { + override fun apply(application: Application) { + WorkManager.initialize( + application, + Configuration.Builder() + .setWorkerFactory(workerFactory) + .setMinimumLoggingLevel(Log.DEBUG) + .build() + ) + } +}