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

Side by Side Diff: components/feature_engagement_tracker/internal/android/feature_engagement_tracker_impl_android.cc

Issue 2782113002: Add component for feature engagement tracking. (Closed)
Patch Set: Remove multi-line comment and change public component target to source_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
(Empty)
1 // Copyright 2017 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.
4
5 #include "components/feature_engagement_tracker/internal/android/feature_engagem ent_tracker_impl_android.h"
6
7 #include "base/android/jni_android.h"
8 #include "base/android/jni_string.h"
9 #include "base/android/scoped_java_ref.h"
10 #include "components/feature_engagement_tracker/public/feature_engagement_tracke r.h"
11 #include "jni/FeatureEngagementTrackerImpl_jni.h"
12
13 namespace feature_engagement_tracker {
14
15 // static
16 bool FeatureEngagementTrackerImplAndroid::RegisterJni(JNIEnv* env) {
17 return RegisterNativesImpl(env);
18 }
19
20 // static
21 FeatureEngagementTrackerImplAndroid*
22 FeatureEngagementTrackerImplAndroid::FromJavaObject(
23 JNIEnv* env,
24 const base::android::JavaRef<jobject>& jobj) {
25 return reinterpret_cast<FeatureEngagementTrackerImplAndroid*>(
26 Java_FeatureEngagementTrackerImpl_getNativePtr(env, jobj));
27 }
28
29 // This function is declared in
30 // //components/feature_engagement_tracker/public/feature_engagement_tracker.h
31 // and should be linked in to any binary using
32 // FeatureEngagementTracker::GetJavaObject.
33 // static
34 base::android::ScopedJavaLocalRef<jobject>
35 FeatureEngagementTracker::GetJavaObject(
36 FeatureEngagementTracker* feature_engagement_tracker) {
37 FeatureEngagementTrackerImplAndroid* feature_engagement_tracker_impl_android =
38 static_cast<FeatureEngagementTrackerImplAndroid*>(
39 feature_engagement_tracker);
40 return feature_engagement_tracker_impl_android->GetJavaObject();
41 }
42
43 FeatureEngagementTrackerImplAndroid::FeatureEngagementTrackerImplAndroid() {
44 JNIEnv* env = base::android::AttachCurrentThread();
45
46 java_obj_.Reset(env, Java_FeatureEngagementTrackerImpl_create(
47 env, reinterpret_cast<intptr_t>(this))
48 .obj());
49 }
50
51 FeatureEngagementTrackerImplAndroid::~FeatureEngagementTrackerImplAndroid() {
52 Java_FeatureEngagementTrackerImpl_clearNativePtr(
53 base::android::AttachCurrentThread(), java_obj_);
54 }
55
56 base::android::ScopedJavaLocalRef<jobject>
57 FeatureEngagementTrackerImplAndroid::GetJavaObject() {
58 return base::android::ScopedJavaLocalRef<jobject>(java_obj_);
59 }
60
61 void FeatureEngagementTrackerImplAndroid::EventJava(
62 JNIEnv* env,
63 const base::android::JavaRef<jobject>& jobj,
64 const base::android::JavaParamRef<jstring>& jfeature,
65 const base::android::JavaParamRef<jstring>& jprecondition) {
66 std::string feature = ConvertJavaStringToUTF8(env, jfeature);
67 std::string precondition = ConvertJavaStringToUTF8(env, jprecondition);
68 Event(feature, precondition);
69 }
70
71 void FeatureEngagementTrackerImplAndroid::UsedJava(
72 JNIEnv* env,
73 const base::android::JavaRef<jobject>& jobj,
74 const base::android::JavaParamRef<jstring>& jfeature) {
75 std::string feature = ConvertJavaStringToUTF8(env, jfeature);
76 Used(feature);
77 }
78
79 bool FeatureEngagementTrackerImplAndroid::TriggerJava(
80 JNIEnv* env,
81 const base::android::JavaRef<jobject>& jobj,
82 const base::android::JavaParamRef<jstring>& jfeature) {
83 std::string feature = ConvertJavaStringToUTF8(env, jfeature);
84 return Trigger(feature);
85 }
86
87 void FeatureEngagementTrackerImplAndroid::DismissedJava(
88 JNIEnv* env,
89 const base::android::JavaRef<jobject>& jobj) {
90 Dismissed();
91 }
92
93 void FeatureEngagementTrackerImplAndroid::AddOnInitializedCallbackJava(
94 JNIEnv* env,
95 const base::android::JavaRef<jobject>& jobj,
96 const base::android::JavaParamRef<jobject>& j_callback_obj) {
97 // TODO(nyquist): Implement support for the wrapped base::Callback.
98 }
99
100 } // namespace feature_engagement_tracker
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698