| Index: chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundJobScheduler.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundJobScheduler.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundJobScheduler.java
|
| index 53a2865f66cb94364a8904ef9a3c558670fd3ad1..c1e2c0baffd3232415e3bf6139abb722fea30311 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundJobScheduler.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundJobScheduler.java
|
| @@ -4,62 +4,50 @@
|
|
|
| package org.chromium.chrome.browser.offlinepages;
|
|
|
| -import android.annotation.TargetApi;
|
| -import android.app.job.JobInfo;
|
| -import android.app.job.JobScheduler;
|
| -import android.content.ComponentName;
|
| import android.content.Context;
|
| -import android.os.Build;
|
| -import android.os.PersistableBundle;
|
| +import android.os.Bundle;
|
| +
|
| +import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory;
|
| +import org.chromium.components.background_task_scheduler.TaskIds;
|
| +import org.chromium.components.background_task_scheduler.TaskInfo;
|
|
|
| import java.util.concurrent.TimeUnit;
|
|
|
| /**
|
| * The background job scheduler class used for scheduling tasks using JobScheduler.
|
| */
|
| -@TargetApi(Build.VERSION_CODES.N)
|
| public class BackgroundJobScheduler extends BackgroundScheduler {
|
| - public static final int JOB_ID = 774322033;
|
| -
|
| public BackgroundJobScheduler(Context context) {
|
| super(context);
|
| }
|
|
|
| @Override
|
| public void cancel() {
|
| - getJobScheduler().cancel(JOB_ID);
|
| + BackgroundTaskSchedulerFactory.getScheduler().cancel(
|
| + getContext(), TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID);
|
| }
|
|
|
| @Override
|
| protected void scheduleImpl(TriggerConditions triggerConditions, long delayStartSeconds,
|
| long executionDeadlineSeconds, boolean overwrite) {
|
| - if (!overwrite) {
|
| - JobInfo existingJob = getJobScheduler().getPendingJob(JOB_ID);
|
| - if (existingJob != null) return;
|
| - }
|
| -
|
| - PersistableBundle taskExtras = new PersistableBundle();
|
| + Bundle taskExtras = new Bundle();
|
| TaskExtrasPacker.packTimeInBundle(taskExtras);
|
| TaskExtrasPacker.packTriggerConditionsInBundle(taskExtras, triggerConditions);
|
|
|
| - JobInfo jobInfo =
|
| - new JobInfo
|
| - .Builder(JOB_ID, new ComponentName(
|
| - getContext(), BackgroundSchedulerJobService.class))
|
| - .setMinimumLatency(TimeUnit.SECONDS.toMillis(delayStartSeconds))
|
| - .setOverrideDeadline(TimeUnit.SECONDS.toMillis(executionDeadlineSeconds))
|
| - .setPersisted(true) // Across device resets.
|
| + TaskInfo taskInfo =
|
| + TaskInfo.createOneOffTask(TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID,
|
| + OfflineBackgroundTask.class,
|
| + TimeUnit.SECONDS.toMillis(delayStartSeconds),
|
| + TimeUnit.SECONDS.toMillis(executionDeadlineSeconds))
|
| .setRequiredNetworkType(triggerConditions.requireUnmeteredNetwork()
|
| - ? JobInfo.NETWORK_TYPE_UNMETERED
|
| - : JobInfo.NETWORK_TYPE_ANY)
|
| - .setRequiresCharging(triggerConditions.requirePowerConnected())
|
| + ? TaskInfo.NETWORK_TYPE_UNMETERED
|
| + : TaskInfo.NETWORK_TYPE_ANY)
|
| + .setUpdateCurrent(overwrite)
|
| + .setIsPersisted(true)
|
| .setExtras(taskExtras)
|
| + .setRequiresCharging(triggerConditions.requirePowerConnected())
|
| .build();
|
|
|
| - getJobScheduler().schedule(jobInfo);
|
| - }
|
| -
|
| - private JobScheduler getJobScheduler() {
|
| - return (JobScheduler) getContext().getSystemService(Context.JOB_SCHEDULER_SERVICE);
|
| + BackgroundTaskSchedulerFactory.getScheduler().schedule(getContext(), taskInfo);
|
| }
|
| }
|
|
|