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

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

Issue 2782113002: Add component for feature engagement tracking. (Closed)
Patch Set: Redirect incognito profile to original profile 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 #ifndef COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_ANDROID_FEATURE_ENGAGEMEN T_TRACKER_IMPL_ANDROID_H_
6 #define COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_ANDROID_FEATURE_ENGAGEMEN T_TRACKER_IMPL_ANDROID_H_
7
8 #include "base/android/callback_android.h"
9 #include "base/android/jni_android.h"
10 #include "base/android/scoped_java_ref.h"
11 #include "base/macros.h"
12 #include "base/supports_user_data.h"
13 #include "components/feature_engagement_tracker/internal/feature_engagement_trac ker_impl.h"
14
15 namespace feature_engagement_tracker {
16
17 // JNI bridge between FeatureEngagementTrackerImpl in Java and C++. See the
18 // public API of FeatureEngagementTracker for documentation for all methods.
19 class FeatureEngagementTrackerImplAndroid
20 : public base::SupportsUserData::Data {
21 public:
22 static bool RegisterJni(JNIEnv* env);
23 static FeatureEngagementTrackerImplAndroid* FromJavaObject(
24 JNIEnv* env,
25 const base::android::JavaRef<jobject>& jobj);
26
27 explicit FeatureEngagementTrackerImplAndroid(
28 FeatureEngagementTrackerImpl* feature_engagement_tracker_impl);
29 ~FeatureEngagementTrackerImplAndroid() override;
30
31 base::android::ScopedJavaLocalRef<jobject> GetJavaObject();
32
33 FeatureEngagementTrackerImpl* feature_engagement_tracker_impl() {
34 return feature_engagement_tracker_impl_;
35 }
36
37 // FeatureEngagementTracker JNI bridge implementation.
38 virtual void Event(JNIEnv* env,
39 const base::android::JavaRef<jobject>& jobj,
40 const base::android::JavaParamRef<jstring>& jfeature,
41 const base::android::JavaParamRef<jstring>& jprecondition);
42 virtual void Used(JNIEnv* env,
43 const base::android::JavaRef<jobject>& jobj,
44 const base::android::JavaParamRef<jstring>& jfeature);
45 virtual bool Trigger(JNIEnv* env,
46 const base::android::JavaRef<jobject>& jobj,
47 const base::android::JavaParamRef<jstring>& jfeature);
48 virtual void Dismissed(JNIEnv* env,
49 const base::android::JavaRef<jobject>& jobj);
50 virtual void AddOnInitializedCallback(
51 JNIEnv* env,
52 const base::android::JavaRef<jobject>& jobj,
53 const base::android::JavaParamRef<jobject>& j_callback_obj);
54
55 private:
56 // The FeatureEngagementTrackerImpl this is a JNI bridge for.
57 FeatureEngagementTrackerImpl* feature_engagement_tracker_impl_;
58
59 // The Java-side of this JNI bridge.
60 base::android::ScopedJavaGlobalRef<jobject> java_obj_;
61
62 DISALLOW_COPY_AND_ASSIGN(FeatureEngagementTrackerImplAndroid);
63 };
64
65 } // namespace feature_engagement_tracker
66
67 #endif // COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_ANDROID_FEATURE_ENGAGE MENT_TRACKER_IMPL_ANDROID_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698