ytdlnis/app/src/main/java/com/deniscerri/ytdl/receiver/ScheduleAlarmReceiver.kt
deniscerri 444e188549
hmm
2025-03-23 20:37:07 +01:00

38 lines
No EOL
1.4 KiB
Kotlin

package com.deniscerri.ytdl.receiver
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import androidx.preference.PreferenceManager
import androidx.work.Constraints
import androidx.work.ExistingWorkPolicy
import androidx.work.NetworkType
import androidx.work.OneTimeWorkRequestBuilder
import androidx.work.WorkManager
import com.deniscerri.ytdl.work.DownloadWorker
import java.util.concurrent.TimeUnit
class ScheduleAlarmReceiver : BroadcastReceiver() {
override fun onReceive(ctx: Context?, p1: Intent?) {
ctx?.apply {
val workConstraints = Constraints.Builder()
val preferences = PreferenceManager.getDefaultSharedPreferences(this)
val allowMeteredNetworks = preferences.getBoolean("metered_networks", true)
if (!allowMeteredNetworks) workConstraints.setRequiredNetworkType(NetworkType.UNMETERED)
val workRequest = OneTimeWorkRequestBuilder<DownloadWorker>()
.addTag("scheduledDownload")
.addTag("download")
.setConstraints(workConstraints.build())
.setInitialDelay(0L, TimeUnit.MILLISECONDS)
WorkManager.getInstance(this).enqueueUniqueWork(
System.currentTimeMillis().toString(),
ExistingWorkPolicy.REPLACE,
workRequest.build()
)
}
}
}