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); |
+} |