1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chrome/browser/invalidation/invalidation_service_factory_android.h"
7 #include "base/android/jni_android.h"
8 #include "chrome/browser/invalidation/profile_invalidation_provider_factory.h"
9 #include "chrome/browser/profiles/profile.h"
10 #include "chrome/browser/profiles/profile_android.h"
11 #include "components/invalidation/impl/invalidation_service_android.h"
12 #include "components/invalidation/impl/profile_invalidation_provider.h"
13 #include "jni/InvalidationServiceFactory_jni.h"
15 using base::android::ScopedJavaLocalRef
;
17 namespace invalidation
{
19 jobject
InvalidationServiceFactoryAndroid::GetForProfile(JNIEnv
* env
,
22 Profile
* profile
= ProfileAndroid::FromProfileAndroid(j_profile
);
23 invalidation::ProfileInvalidationProvider
* provider
=
24 ProfileInvalidationProviderFactory::GetForProfile(profile
);
25 InvalidationServiceAndroid
* service_android
=
26 static_cast<InvalidationServiceAndroid
*>(
27 provider
->GetInvalidationService());
28 return service_android
->java_ref_
.obj();
31 jobject
InvalidationServiceFactoryAndroid::GetForTest(JNIEnv
* env
,
34 InvalidationServiceAndroid
* service_android
=
35 new InvalidationServiceAndroid(j_context
);
36 return service_android
->java_ref_
.obj();
39 jobject
GetForProfile(JNIEnv
* env
, jclass clazz
, jobject j_profile
) {
40 return InvalidationServiceFactoryAndroid::GetForProfile(
41 env
, clazz
, j_profile
);
44 jobject
GetForTest(JNIEnv
* env
, jclass clazz
, jobject j_context
) {
45 return InvalidationServiceFactoryAndroid::GetForTest(
46 env
, clazz
, j_context
);
49 bool InvalidationServiceFactoryAndroid::Register(JNIEnv
* env
) {
50 return RegisterNativesImpl(env
);
53 } // namespace invalidation