Index: chrome/browser/invalidation/invalidation_service_factory_android.cc |
diff --git a/chrome/browser/invalidation/invalidation_service_factory_android.cc b/chrome/browser/invalidation/invalidation_service_factory_android.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4f6b55cd98c7cd7181945c1897b07b5c080be878 |
--- /dev/null |
+++ b/chrome/browser/invalidation/invalidation_service_factory_android.cc |
@@ -0,0 +1,53 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/invalidation/invalidation_service_factory_android.h" |
+ |
+#include "base/android/jni_android.h" |
+#include "chrome/browser/invalidation/profile_invalidation_provider_factory.h" |
+#include "chrome/browser/profiles/profile.h" |
+#include "chrome/browser/profiles/profile_android.h" |
+#include "components/invalidation/invalidation_service_android.h" |
+#include "components/invalidation/profile_invalidation_provider.h" |
+#include "jni/InvalidationServiceFactory_jni.h" |
+ |
+using base::android::ScopedJavaLocalRef; |
+ |
+namespace invalidation { |
+ |
+jobject InvalidationServiceFactoryAndroid::GetForProfile(JNIEnv* env, |
+ jclass clazz, |
+ jobject j_profile) { |
+ Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile); |
+ invalidation::ProfileInvalidationProvider* provider = |
+ ProfileInvalidationProviderFactory::GetForProfile(profile); |
+ InvalidationServiceAndroid* service_android = |
+ static_cast<InvalidationServiceAndroid*>( |
+ provider->GetInvalidationService()); |
+ return service_android->java_ref_.obj(); |
+} |
+ |
+jobject InvalidationServiceFactoryAndroid::GetForTest(JNIEnv* env, |
+ jclass clazz, |
+ jobject j_context) { |
+ InvalidationServiceAndroid* service_android = |
+ new InvalidationServiceAndroid(j_context); |
+ return service_android->java_ref_.obj(); |
+} |
+ |
+jobject GetForProfile(JNIEnv* env, jclass clazz, jobject j_profile) { |
+ return InvalidationServiceFactoryAndroid::GetForProfile( |
+ env, clazz, j_profile); |
+} |
+ |
+jobject GetForTest(JNIEnv* env, jclass clazz, jobject j_context) { |
+ return InvalidationServiceFactoryAndroid::GetForTest( |
+ env, clazz, j_context); |
+} |
+ |
+bool InvalidationServiceFactoryAndroid::Register(JNIEnv* env) { |
+ return RegisterNativesImpl(env); |
+} |
+ |
+} // namespace invalidation |