|  | @@ -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)
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 |