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

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

Issue 2698143005: [Offline pages] Ensuring obtaining GcmNetworkManager in BackgroundScheduler does not throw (Closed)
Patch Set: Fixing date in copyright header 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_sources.gni » ('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/BackgroundScheduler.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundScheduler.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundScheduler.java
index 28e96617a52b2cf40ab1f2454e20e75a424b0e47..eef945bdcfd64adb46014b0bad1f12e7e34417c4 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundScheduler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/BackgroundScheduler.java
@@ -7,6 +7,8 @@ package org.chromium.chrome.browser.offlinepages;
import android.content.Context;
import android.os.Bundle;
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.GoogleApiAvailability;
import com.google.android.gms.gcm.GcmNetworkManager;
import com.google.android.gms.gcm.OneoffTask;
import com.google.android.gms.gcm.Task;
@@ -45,7 +47,8 @@ public class BackgroundScheduler {
*/
public static void unschedule(Context context) {
// Get the GCM Network Scheduler.
- GcmNetworkManager gcmNetworkManager = GcmNetworkManager.getInstance(context);
+ GcmNetworkManager gcmNetworkManager = getGcmNetworkManager(context);
+ if (gcmNetworkManager == null) return;
gcmNetworkManager.cancelTask(OfflinePageUtils.TASK_TAG, ChromeBackgroundService.class);
}
@@ -56,7 +59,8 @@ public class BackgroundScheduler {
private static void schedule(Context context, TriggerConditions triggerConditions,
long delayStartSecs, boolean overwrite) {
// Get the GCM Network Scheduler.
- GcmNetworkManager gcmNetworkManager = GcmNetworkManager.getInstance(context);
+ GcmNetworkManager gcmNetworkManager = getGcmNetworkManager(context);
+ if (gcmNetworkManager == null) return;
Bundle taskExtras = new Bundle();
TaskExtrasPacker.packTimeInBundle(taskExtras);
@@ -77,6 +81,14 @@ public class BackgroundScheduler {
gcmNetworkManager.schedule(task);
}
+ private static GcmNetworkManager getGcmNetworkManager(Context context) {
+ if (GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context)
+ == ConnectionResult.SUCCESS) {
+ return GcmNetworkManager.getInstance(context);
+ }
+ return null;
+ }
+
/**
* Get the latest power conditions from the android APIs.
*/
« no previous file with comments | « no previous file | chrome/android/java_sources.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698