android-ktx icon indicating copy to clipboard operation
android-ktx copied to clipboard

JobScheduler helper function

Open RamV13 opened this issue 7 years ago • 1 comments

I'd like to propose a helper function for the JobScheduler API which is fairly cumbersome in Kotlin right now even with current KTX features. The signature of the function would be something like

inline fun scheduleJob(context: Context, jobId: Int, componentName: ComponentName, buildSequence: JobInfo.Builder.() -> Unit)

Before

val builder = JobInfo.Builder(jobId++, serviceComponent)

if (wiFiConnectivityRadioButton.isChecked) {
    builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED)
} else if (anyConnectivityRadioButton.isChecked) {
    builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
}

systemService<JobScheduler>().schedule(builder.build())

After

scheduleJob(this, jobId++, serviceComponent) {
    if (wiFiConnectivityRadioButton.isChecked) {
        setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED)
    } else if (anyConnectivityRadioButton.isChecked) {
        setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
    }
}

Please let me know if this sounds like a good idea and I'll get a PR ready!

* code snippet adapted from Google Samples

RamV13 avatar May 23 '18 00:05 RamV13

Looks like a good idea to me!

romainguy avatar May 23 '18 18:05 romainguy