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

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

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

Powered by Google App Engine
This is Rietveld 408576698