Index: components/invalidation/impl/android/java/src/org/chromium/components/invalidation/InvalidationService.java |
diff --git a/components/invalidation/impl/android/java/src/org/chromium/components/invalidation/InvalidationService.java b/components/invalidation/impl/android/java/src/org/chromium/components/invalidation/InvalidationService.java |
index a6437337ef3bc0d219787c702ea0c6f25803aa84..308b7360d1ec4ba30d8180c5d860627b3c514731 100644 |
--- a/components/invalidation/impl/android/java/src/org/chromium/components/invalidation/InvalidationService.java |
+++ b/components/invalidation/impl/android/java/src/org/chromium/components/invalidation/InvalidationService.java |
@@ -5,12 +5,12 @@ |
package org.chromium.components.invalidation; |
import android.accounts.Account; |
+import android.content.Context; |
import android.content.Intent; |
import com.google.protos.ipc.invalidation.Types; |
import org.chromium.base.BuildInfo; |
-import org.chromium.base.ContextUtils; |
import org.chromium.base.Log; |
import org.chromium.base.ThreadUtils; |
import org.chromium.base.VisibleForTesting; |
@@ -27,11 +27,17 @@ |
*/ |
@JNINamespace("invalidation") |
public class InvalidationService { |
+ private final Context mContext; |
+ |
private final long mNativeInvalidationServiceAndroid; |
private static final String TAG = "cr_invalidation"; |
- private InvalidationService(long nativeInvalidationServiceAndroid) { |
+ private InvalidationService(Context context, long nativeInvalidationServiceAndroid) { |
+ mContext = context.getApplicationContext(); |
+ if (mContext == null) { |
+ throw new NullPointerException("mContext is null."); |
+ } |
mNativeInvalidationServiceAndroid = nativeInvalidationServiceAndroid; |
} |
@@ -47,9 +53,10 @@ |
} |
@CalledByNative |
- private static InvalidationService create(long nativeInvalidationServiceAndroid) { |
+ private static InvalidationService create( |
+ Context context, long nativeInvalidationServiceAndroid) { |
ThreadUtils.assertOnUiThread(); |
- return new InvalidationService(nativeInvalidationServiceAndroid); |
+ return new InvalidationService(context, nativeInvalidationServiceAndroid); |
} |
/** |
@@ -66,8 +73,8 @@ |
Account account = invalidationPreferences.getSavedSyncedAccount(); |
Intent registerIntent = InvalidationIntentProtocol.createRegisterIntent( |
account, objectSources, objectNames); |
- registerIntent.setClass(ContextUtils.getApplicationContext(), |
- InvalidationClientService.getRegisteredClass()); |
+ registerIntent.setClass( |
+ mContext, InvalidationClientService.getRegisteredClass()); |
startServiceIfPossible(registerIntent); |
} |
@@ -76,12 +83,12 @@ |
// for O. See crbug.com/680812. |
if (BuildInfo.isAtLeastO()) { |
try { |
- ContextUtils.getApplicationContext().startService(intent); |
+ mContext.startService(intent); |
} catch (IllegalStateException exception) { |
Log.e(TAG, "Failed to start service from exception: ", exception); |
} |
} else { |
- ContextUtils.getApplicationContext().startService(intent); |
+ mContext.startService(intent); |
} |
} |