Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1241)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundJobScheduler.java

Issue 2697493002: [Offline pages] Implementation of OfflineBackgroundTask using background_task_scheduler (Closed)
Patch Set: Addressing more feedback Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundOfflinerTask.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
}
}
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundOfflinerTask.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698