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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflineBackgroundTask.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
Index: chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflineBackgroundTask.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflineBackgroundTask.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflineBackgroundTask.java
new file mode 100644
index 0000000000000000000000000000000000000000..4a1c67d7d38aea60bad3bbcc11eb9eb46097b19c
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflineBackgroundTask.java
@@ -0,0 +1,48 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.offlinepages;
+
+import android.content.Context;
+
+import org.chromium.base.Callback;
+import org.chromium.chrome.browser.offlinepages.interfaces.BackgroundSchedulerProcessor;
+import org.chromium.components.background_task_scheduler.BackgroundTask;
+import org.chromium.components.background_task_scheduler.BackgroundTask.TaskFinishedCallback;
+import org.chromium.components.background_task_scheduler.TaskIds;
+import org.chromium.components.background_task_scheduler.TaskParameters;
+
+/**
+ * Handles servicing background offlining requests coming via background_task_scheduler component.
+ */
+public class OfflineBackgroundTask implements BackgroundTask {
+ BackgroundSchedulerProcessor mBackgroundProcessor;
+
+ public OfflineBackgroundTask() {
+ mBackgroundProcessor = new BackgroundSchedulerProcessorImpl();
+ }
+
+ @Override
+ public boolean onStartTask(
+ Context context, TaskParameters taskParameters, TaskFinishedCallback callback) {
+ assert taskParameters.getTaskId() == TaskIds.OFFLINE_PAGES_BACKGROUND_JOB_ID;
+ return BackgroundOfflinerTask.startBackgroundRequestsImpl(
+ mBackgroundProcessor, context, taskParameters.getExtras(), wrapCallback(callback));
+ }
+
+ @Override
+ public boolean onStopTask(Context context, TaskParameters taskParameters) {
+ return mBackgroundProcessor.stopScheduledProcessing();
+ }
+
+ /** Wraps the callback for code reuse */
+ private Callback<Boolean> wrapCallback(final TaskFinishedCallback callback) {
+ return new Callback<Boolean>() {
+ @Override
+ public void onResult(Boolean result) {
+ callback.taskFinished(result);
+ }
+ };
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698