Skip to content

Instantly share code, notes, and snippets.

@mbakgun
Created October 11, 2020 17:03
Show Gist options
  • Select an option

  • Save mbakgun/6d386490ff93882a54a02efef103c2f6 to your computer and use it in GitHub Desktop.

Select an option

Save mbakgun/6d386490ff93882a54a02efef103c2f6 to your computer and use it in GitHub Desktop.
package com.dolap.events.data.workmanager
import android.content.Context
import androidx.work.*
import java.util.concurrent.TimeUnit
class EventWorkManager(appContext: Context) {
private val instance by lazy { WorkManager.getInstance(appContext) }
fun sendEvent(id: Int) = instance.beginUniqueWork(
TAG,
ExistingWorkPolicy.APPEND,
buildEvent(id)
).enqueue()
private fun buildEvent(id: Int): OneTimeWorkRequest =
OneTimeWorkRequest.Builder(EventWorker::class.java)
.setInitialDelay(INITIAL_DELAY, TimeUnit.SECONDS)
.setInputData(Data.Builder().putInt(DATA_TAG, id).build())
.setConstraints(
Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build()
)
.build()
companion object {
private const val TAG: String = "EventWorkManager"
private const val INITIAL_DELAY = 6L
const val DATA_TAG = "BannerId_EventWorkManager"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment