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

Unified Diff: components/feature_engagement_tracker/public/android/java/src/org/chromium/components/feature_engagement_tracker/FeatureEngagementTracker.java

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/public/android/java/src/org/chromium/components/feature_engagement_tracker/FeatureEngagementTracker.java
diff --git a/components/feature_engagement_tracker/public/android/java/src/org/chromium/components/feature_engagement_tracker/FeatureEngagementTracker.java b/components/feature_engagement_tracker/public/android/java/src/org/chromium/components/feature_engagement_tracker/FeatureEngagementTracker.java
new file mode 100644
index 0000000000000000000000000000000000000000..a7173a5059c1dab9bc33331fdbeb99041f608eea
--- /dev/null
+++ b/components/feature_engagement_tracker/public/android/java/src/org/chromium/components/feature_engagement_tracker/FeatureEngagementTracker.java
@@ -0,0 +1,51 @@
+// 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.
+
+package org.chromium.components.feature_engagement_tracker;
+
+import android.support.annotation.CheckResult;
+
+import org.chromium.base.Callback;
+
+/**
+ * FeatureEngagementTracker is the Java representation of a native FeatureEngagementTracker object.
+ * It is owned by the native BrowserContext.
+ *
+ * FeatureEngagementTracker is the core class for the feature engagement tracker.
+ */
+public interface FeatureEngagementTracker {
+ /**
+ * Must be called whenever an event related to a precondition happens.
+ */
+ void event(String feature, String precondition);
+
+ /**
+ * Must be called whenever a feature has been used.
+ */
+ void used(String feature);
+
+ /**
+ * This function must be called whenever the triggering condition for a
+ * specific feature happens. Returns true iff the display of feature
+ * enlightenment must happen.
+ * If {@code true} is returned, the caller *must* call {@link #dismissed()} when display
+ * of feature enlightenment ends.
+ * @return whether feature enlightenment should be displayed.
+ */
+ @CheckResult
+ boolean trigger(String feature);
+
+ /**
+ * Must be called after display of feature enlightenment finishes.
+ */
+ void dismissed();
+
+ /**
+ * For features that trigger on startup, they register a callback to ensure that they are told
+ * when the tracker has been initialized. The callback will be invoked when the tracker has
+ * been initialized. The boolean parameter indicated whether the initialization was a success
+ * and that the tracker is ready to receive calls.
+ */
+ void addOnInitializedCallback(Callback<Boolean> callback);
+}

Powered by Google App Engine
This is Rietveld 408576698