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

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

Issue 2800833003: Revert of Android: Remove GetApplicationContext part 2 (Closed)
Patch Set: Created 3 years, 8 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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; 5 package org.chromium.chrome.browser;
6 6
7 import android.content.Context; 7 import android.content.Context;
8 import android.content.SharedPreferences; 8 import android.content.SharedPreferences;
9 import android.os.AsyncTask; 9 import android.os.AsyncTask;
10 import android.os.StrictMode; 10 import android.os.StrictMode;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 * Automatic GCM use is disabled by tests, and also by this class if it is d etermined on 48 * Automatic GCM use is disabled by tests, and also by this class if it is d etermined on
49 * creation that the installed Play Services library is out of date. 49 * creation that the installed Play Services library is out of date.
50 */ 50 */
51 private static boolean sGCMEnabled = true; 51 private static boolean sGCMEnabled = true;
52 52
53 @VisibleForTesting 53 @VisibleForTesting
54 protected AsyncTask<Void, Void, Void> mLaunchBrowserIfStoppedTask; 54 protected AsyncTask<Void, Void, Void> mLaunchBrowserIfStoppedTask;
55 55
56 /** 56 /**
57 * Create a BackgroundSyncLauncher object, which is owned by C++. 57 * Create a BackgroundSyncLauncher object, which is owned by C++.
58 * @param context The app context.
58 */ 59 */
59 @VisibleForTesting 60 @VisibleForTesting
60 @CalledByNative 61 @CalledByNative
61 protected static BackgroundSyncLauncher create() { 62 protected static BackgroundSyncLauncher create(Context context) {
62 if (sInstance != null) { 63 if (sInstance != null) {
63 throw new IllegalStateException("Already instantiated"); 64 throw new IllegalStateException("Already instantiated");
64 } 65 }
65 66
66 sInstance = new BackgroundSyncLauncher(); 67 sInstance = new BackgroundSyncLauncher(context);
67 return sInstance; 68 return sInstance;
68 } 69 }
69 70
70 /** 71 /**
71 * Called when the C++ counterpart is deleted. 72 * Called when the C++ counterpart is deleted.
72 */ 73 */
73 @VisibleForTesting 74 @VisibleForTesting
74 @CalledByNative 75 @CalledByNative
75 protected void destroy() { 76 protected void destroy() {
76 assert sInstance == this; 77 assert sInstance == this;
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 } 152 }
152 153
153 /** 154 /**
154 * Returns true if the native browser has started and created an instance of {@link 155 * Returns true if the native browser has started and created an instance of {@link
155 * BackgroundSyncLauncher}. 156 * BackgroundSyncLauncher}.
156 */ 157 */
157 protected static boolean hasInstance() { 158 protected static boolean hasInstance() {
158 return sInstance != null; 159 return sInstance != null;
159 } 160 }
160 161
161 protected BackgroundSyncLauncher() { 162 protected BackgroundSyncLauncher(Context context) {
162 mScheduler = GcmNetworkManager.getInstance(ContextUtils.getApplicationCo ntext()); 163 mScheduler = GcmNetworkManager.getInstance(context);
163 launchBrowserIfStopped(false, 0); 164 launchBrowserIfStopped(false, 0);
164 } 165 }
165 166
166 private static boolean canUseGooglePlayServices() { 167 private static boolean canUseGooglePlayServices(Context context) {
167 return ExternalAuthUtils.getInstance().canUseGooglePlayServices( 168 return ExternalAuthUtils.getInstance().canUseGooglePlayServices(
168 ContextUtils.getApplicationContext(), new UserRecoverableErrorHa ndler.Silent()); 169 context, new UserRecoverableErrorHandler.Silent());
169 } 170 }
170 171
171 /** 172 /**
172 * Returns true if the Background Sync Manager should be automatically disab led on startup. 173 * Returns true if the Background Sync Manager should be automatically disab led on startup.
173 * This is currently only the case if Play Services is not up to date, since any sync attempts 174 * This is currently only the case if Play Services is not up to date, since any sync attempts
174 * which fail cannot be reregistered. Better to wait until Play Services is updated before 175 * which fail cannot be reregistered. Better to wait until Play Services is updated before
175 * attempting them. 176 * attempting them.
176 * 177 *
178 * @param context The application context.
177 */ 179 */
178 @CalledByNative 180 @CalledByNative
179 private static boolean shouldDisableBackgroundSync() { 181 private static boolean shouldDisableBackgroundSync(Context context) {
180 // Check to see if Play Services is up to date, and disable GCM if not. 182 // Check to see if Play Services is up to date, and disable GCM if not.
181 // This will not automatically set {@link sGCMEnabled} to true, in case it has been 183 // This will not automatically set {@link sGCMEnabled} to true, in case it has been
182 // disabled in tests. 184 // disabled in tests.
183 if (sGCMEnabled) { 185 if (sGCMEnabled) {
184 boolean isAvailable = true; 186 boolean isAvailable = true;
185 if (!canUseGooglePlayServices()) { 187 if (!canUseGooglePlayServices(context)) {
186 setGCMEnabled(false); 188 setGCMEnabled(false);
187 Log.i(TAG, "Disabling Background Sync because Play Services is n ot up to date."); 189 Log.i(TAG, "Disabling Background Sync because Play Services is n ot up to date.");
188 isAvailable = false; 190 isAvailable = false;
189 } 191 }
190 RecordHistogram.recordBooleanHistogram( 192 RecordHistogram.recordBooleanHistogram(
191 "BackgroundSync.LaunchTask.PlayServicesAvailable", isAvailab le); 193 "BackgroundSync.LaunchTask.PlayServicesAvailable", isAvailab le);
192 } 194 }
193 return !sGCMEnabled; 195 return !sGCMEnabled;
194 } 196 }
195 197
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 } 263 }
262 }; 264 };
263 BackgroundSyncLauncher.shouldLaunchBrowserIfStopped(callback); 265 BackgroundSyncLauncher.shouldLaunchBrowserIfStopped(callback);
264 } 266 }
265 267
266 @VisibleForTesting 268 @VisibleForTesting
267 static void setGCMEnabled(boolean enabled) { 269 static void setGCMEnabled(boolean enabled) {
268 sGCMEnabled = enabled; 270 sGCMEnabled = enabled;
269 } 271 }
270 } 272 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698