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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundScheduler.java

Issue 2037213002: Switch OfflinePages UMA to use currentTimeMillis, persist task (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.offlinepages; 5 package org.chromium.chrome.browser.offlinepages;
dewittj 2016/06/03 22:02:46 nit: mention offline pages in CL description
Pete Williamson 2016/06/03 23:42:11 Done.
6 6
7 import android.content.Context; 7 import android.content.Context;
8 import android.os.Bundle; 8 import android.os.Bundle;
9 import android.os.SystemClock;
10 9
11 import com.google.android.gms.gcm.GcmNetworkManager; 10 import com.google.android.gms.gcm.GcmNetworkManager;
12 import com.google.android.gms.gcm.OneoffTask; 11 import com.google.android.gms.gcm.OneoffTask;
13 import com.google.android.gms.gcm.Task; 12 import com.google.android.gms.gcm.Task;
14 13
15 import org.chromium.chrome.browser.ChromeBackgroundService; 14 import org.chromium.chrome.browser.ChromeBackgroundService;
16 15
17 /** 16 /**
18 * The background scheduler class is for setting GCM Network Manager tasks. 17 * The background scheduler class is for setting GCM Network Manager tasks.
19 */ 18 */
20 public class BackgroundScheduler { 19 public class BackgroundScheduler {
21 /** Bundle key for the timestamp in milliseconds when the request started. * / 20 /** Bundle key for the timestamp in milliseconds when the request started. * /
22 public static final String DATE_TAG = "Date"; 21 public static final String DATE_TAG = "Date";
23 private static final long ONE_WEEK_IN_SECONDS = 60 * 60 * 24 * 7; 22 private static final long ONE_WEEK_IN_SECONDS = 60 * 60 * 24 * 7;
24 23
25 /** 24 /**
26 * For the given Triggering conditions, start a new GCM Network Manager requ est. 25 * For the given Triggering conditions, start a new GCM Network Manager requ est.
27 */ 26 */
28 public static void schedule(Context context) { 27 public static void schedule(Context context) {
29 // Get the GCM Network Scheduler. 28 // Get the GCM Network Scheduler.
30 GcmNetworkManager gcmNetworkManager = GcmNetworkManager.getInstance(cont ext); 29 GcmNetworkManager gcmNetworkManager = GcmNetworkManager.getInstance(cont ext);
31 30
32 // TODO(petewil): Move the bundle packing and unpacking into a new Sched ulerBridge 31 // TODO(petewil): Move the bundle packing and unpacking into a new Sched ulerBridge
33 // class which can be mocked, and calls the static BackgroundSchdeulerBr idge. 32 // class which can be mocked, and calls the static BackgroundSchdeulerBr idge.
34 // TODO(petewil): Add the triggering conditions into the argument bundle . 33 // TODO(petewil): Add the triggering conditions into the argument bundle .
35 // Triggering conditions will include network state and charging require ments, maybe 34 // Triggering conditions will include network state and charging require ments, maybe
36 // also battery percentage. 35 // also battery percentage.
37 Bundle taskExtras = new Bundle(); 36 Bundle taskExtras = new Bundle();
38 taskExtras.putLong(DATE_TAG, SystemClock.elapsedRealtime()); 37 taskExtras.putLong(DATE_TAG, System.currentTimeMillis());
39 38
40 Task task = new OneoffTask.Builder() 39 Task task = new OneoffTask.Builder()
41 .setService(ChromeBackgroundService.class) 40 .setService(ChromeBackgroundService.class)
42 .setExecutionWindow(0, ONE_WEEK_IN_SECONDS) 41 .setExecutionWindow(0, ONE_WEEK_IN_SECONDS)
43 .setTag(OfflinePageUtils.TASK_TAG) 42 .setTag(OfflinePageUtils.TASK_TAG)
44 .setUpdateCurrent(true) 43 .setUpdateCurrent(true)
45 .setRequiredNetwork(Task.NETWORK_STATE_CONNECTED) 44 .setRequiredNetwork(Task.NETWORK_STATE_CONNECTED)
46 .setRequiresCharging(false) 45 .setRequiresCharging(false)
47 .setExtras(taskExtras) 46 .setExtras(taskExtras)
47 .setPersisted(true)
48 .build(); 48 .build();
49 49
50 gcmNetworkManager.schedule(task); 50 gcmNetworkManager.schedule(task);
51 } 51 }
52 52
53 /** 53 /**
54 * Cancel any outstanding GCM Network Manager requests. 54 * Cancel any outstanding GCM Network Manager requests.
55 */ 55 */
56 public static void unschedule(Context context) { 56 public static void unschedule(Context context) {
57 // TODO(petewil): Take our task off the task queue. 57 // TODO(petewil): Take our task off the task queue.
58 } 58 }
59 } 59 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698