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

Unified Diff: components/feature_engagement_tracker/internal/android/feature_engagement_tracker_impl_android.h

Issue 2782113002: Add component for feature engagement tracking. (Closed)
Patch Set: Fix typo in //chrome/android/java/DEPS Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: components/feature_engagement_tracker/internal/android/feature_engagement_tracker_impl_android.h
diff --git a/components/feature_engagement_tracker/internal/android/feature_engagement_tracker_impl_android.h b/components/feature_engagement_tracker/internal/android/feature_engagement_tracker_impl_android.h
new file mode 100644
index 0000000000000000000000000000000000000000..94a7912b1452ecb46731eb7771ea378e01152c84
--- /dev/null
+++ b/components/feature_engagement_tracker/internal/android/feature_engagement_tracker_impl_android.h
@@ -0,0 +1,67 @@
+// Copyright 2017 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.
+
+#ifndef COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_ANDROID_FEATURE_ENGAGEMENT_TRACKER_IMPL_ANDROID_H_
+#define COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_ANDROID_FEATURE_ENGAGEMENT_TRACKER_IMPL_ANDROID_H_
+
+#include "base/android/callback_android.h"
+#include "base/android/jni_android.h"
+#include "base/android/scoped_java_ref.h"
+#include "base/macros.h"
+#include "base/supports_user_data.h"
+#include "components/feature_engagement_tracker/internal/feature_engagement_tracker_impl.h"
+
+namespace feature_engagement_tracker {
+
+// JNI bridge between FeatureEngagementTrackerImpl in Java and C++. See the
+// public API of FeatureEngagementTracker for documentation for all methods.
+class FeatureEngagementTrackerImplAndroid
+ : public base::SupportsUserData::Data {
+ public:
+ static bool RegisterJni(JNIEnv* env);
+ static FeatureEngagementTrackerImplAndroid* FromJavaObject(
+ JNIEnv* env,
+ const base::android::JavaRef<jobject>& jobj);
+
+ explicit FeatureEngagementTrackerImplAndroid(
+ FeatureEngagementTrackerImpl* feature_engagement_tracker_impl);
+ ~FeatureEngagementTrackerImplAndroid() override;
+
+ base::android::ScopedJavaLocalRef<jobject> GetJavaObject();
+
+ FeatureEngagementTrackerImpl* feature_engagement_tracker_impl() {
+ return feature_engagement_tracker_impl_;
+ }
+
+ // FeatureEngagementTracker JNI bridge implementation.
+ virtual void Event(JNIEnv* env,
+ const base::android::JavaRef<jobject>& jobj,
+ const base::android::JavaParamRef<jstring>& jfeature,
+ const base::android::JavaParamRef<jstring>& jprecondition);
+ virtual void Used(JNIEnv* env,
+ const base::android::JavaRef<jobject>& jobj,
+ const base::android::JavaParamRef<jstring>& jfeature);
+ virtual bool Trigger(JNIEnv* env,
+ const base::android::JavaRef<jobject>& jobj,
+ const base::android::JavaParamRef<jstring>& jfeature);
+ virtual void Dismissed(JNIEnv* env,
+ const base::android::JavaRef<jobject>& jobj);
+ virtual void AddOnInitializedCallback(
+ JNIEnv* env,
+ const base::android::JavaRef<jobject>& jobj,
+ const base::android::JavaParamRef<jobject>& j_callback_obj);
+
+ private:
+ // The FeatureEngagementTrackerImpl this is a JNI bridge for.
+ FeatureEngagementTrackerImpl* feature_engagement_tracker_impl_;
+
+ // The Java-side of this JNI bridge.
+ base::android::ScopedJavaGlobalRef<jobject> java_obj_;
+
+ DISALLOW_COPY_AND_ASSIGN(FeatureEngagementTrackerImplAndroid);
+};
+
+} // namespace feature_engagement_tracker
+
+#endif // COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_ANDROID_FEATURE_ENGAGEMENT_TRACKER_IMPL_ANDROID_H_

Powered by Google App Engine
This is Rietveld 408576698