|
@@ -1,19 +1,26 @@
|
|
|
package eu.kanade.tachiyomi.data.updater
|
|
|
|
|
|
import android.app.PendingIntent
|
|
|
+import android.content.Context
|
|
|
import android.content.Intent
|
|
|
import androidx.core.app.NotificationCompat
|
|
|
-import com.evernote.android.job.Job
|
|
|
-import com.evernote.android.job.JobManager
|
|
|
-import com.evernote.android.job.JobRequest
|
|
|
+import androidx.work.Constraints
|
|
|
+import androidx.work.ExistingPeriodicWorkPolicy
|
|
|
+import androidx.work.NetworkType
|
|
|
+import androidx.work.PeriodicWorkRequestBuilder
|
|
|
+import androidx.work.WorkManager
|
|
|
+import androidx.work.Worker
|
|
|
+import androidx.work.WorkerParameters
|
|
|
import eu.kanade.tachiyomi.R
|
|
|
import eu.kanade.tachiyomi.data.notification.Notifications
|
|
|
import eu.kanade.tachiyomi.util.system.notificationManager
|
|
|
+import java.util.concurrent.TimeUnit
|
|
|
import kotlinx.coroutines.runBlocking
|
|
|
|
|
|
-class UpdaterJob : Job() {
|
|
|
+class UpdaterJob(private val context: Context, workerParams: WorkerParameters) :
|
|
|
+ Worker(context, workerParams) {
|
|
|
|
|
|
- override fun onRunJob(params: Params): Result {
|
|
|
+ override fun doWork(): Result {
|
|
|
return runBlocking {
|
|
|
try {
|
|
|
val result = UpdateChecker.getUpdateChecker().checkForUpdate()
|
|
@@ -35,9 +42,9 @@ class UpdaterJob : Job() {
|
|
|
PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT))
|
|
|
}
|
|
|
}
|
|
|
- Result.SUCCESS
|
|
|
+ Result.success()
|
|
|
} catch (e: Exception) {
|
|
|
- Result.FAILURE
|
|
|
+ Result.failure()
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -51,17 +58,20 @@ class UpdaterJob : Job() {
|
|
|
const val TAG = "UpdateChecker"
|
|
|
|
|
|
fun setupTask() {
|
|
|
- JobRequest.Builder(TAG)
|
|
|
- .setPeriodic(24 * 60 * 60 * 1000, 60 * 60 * 1000)
|
|
|
- .setRequiredNetworkType(JobRequest.NetworkType.CONNECTED)
|
|
|
- .setRequirementsEnforced(true)
|
|
|
- .setUpdateCurrent(true)
|
|
|
+ val constraints = Constraints.Builder()
|
|
|
+ .setRequiredNetworkType(NetworkType.CONNECTED)
|
|
|
.build()
|
|
|
- .schedule()
|
|
|
+
|
|
|
+ val request = PeriodicWorkRequestBuilder<UpdaterJob>(1, TimeUnit.DAYS)
|
|
|
+ .addTag(TAG)
|
|
|
+ .setConstraints(constraints)
|
|
|
+ .build()
|
|
|
+
|
|
|
+ WorkManager.getInstance().enqueueUniquePeriodicWork(TAG, ExistingPeriodicWorkPolicy.REPLACE, request)
|
|
|
}
|
|
|
|
|
|
fun cancelTask() {
|
|
|
- JobManager.instance().cancelAllForTag(TAG)
|
|
|
+ WorkManager.getInstance().cancelAllWorkByTag(TAG)
|
|
|
}
|
|
|
}
|
|
|
}
|