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

Side by Side Diff: components/feature_engagement_tracker/internal/android/java/src/org/chromium/components/feature_engagement_tracker/internal/FeatureEngagementTrackerImpl.java

Issue 2782113002: Add component for feature engagement tracking. (Closed)
Patch Set: Fix typo in //chrome/android/java/DEPS 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 package org.chromium.components.feature_engagement_tracker.internal;
6
7 import org.chromium.base.Callback;
8 import org.chromium.base.annotations.CalledByNative;
9 import org.chromium.base.annotations.JNINamespace;
10 import org.chromium.components.feature_engagement_tracker.FeatureEngagementTrack er;
11
12 /**
13 * Java side of the JNI bridge between FeatureEngagementTrackerImpl in Java
14 * and C++. All method calls are delegated to the native C++ class.
15 */
16 @JNINamespace("feature_engagement_tracker")
17 public class FeatureEngagementTrackerImpl implements FeatureEngagementTracker {
18 /**
19 * The pointer to the FeatureEngagementTrackerImplAndroid JNI bridge.
20 */
21 private long mNativePtr;
22
23 @CalledByNative
24 private static FeatureEngagementTrackerImpl create(long nativePtr) {
25 return new FeatureEngagementTrackerImpl(nativePtr);
26 }
27
28 private FeatureEngagementTrackerImpl(long nativePtr) {
29 mNativePtr = nativePtr;
30 }
31
32 @Override
33 public void event(String feature, String precondition) {
34 assert mNativePtr != 0;
35 nativeEvent(mNativePtr, feature, precondition);
36 }
37
38 @Override
39 public void used(String feature) {
40 assert mNativePtr != 0;
41 nativeUsed(mNativePtr, feature);
42 }
43
44 @Override
45 public boolean trigger(String feature) {
46 assert mNativePtr != 0;
47 return nativeTrigger(mNativePtr, feature);
48 }
49
50 @Override
51 public void dismissed() {
52 assert mNativePtr != 0;
53 nativeDismissed(mNativePtr);
54 }
55
56 @Override
57 public void addOnInitializedCallback(Callback<Boolean> callback) {
58 assert mNativePtr != 0;
59 nativeAddOnInitializedCallback(mNativePtr, callback);
60 }
61
62 @CalledByNative
63 private void clearNativePtr() {
64 mNativePtr = 0;
65 }
66
67 @CalledByNative
68 private long getNativePtr() {
69 assert mNativePtr != 0;
70 return mNativePtr;
71 }
72
73 private native void nativeEvent(
74 long nativeFeatureEngagementTrackerImplAndroid, String feature, Stri ng precondition);
75 private native void nativeUsed(long nativeFeatureEngagementTrackerImplAndroi d, String feature);
76 private native boolean nativeTrigger(
77 long nativeFeatureEngagementTrackerImplAndroid, String feature);
78 private native void nativeDismissed(long nativeFeatureEngagementTrackerImplA ndroid);
79 private native void nativeAddOnInitializedCallback(
80 long nativeFeatureEngagementTrackerImplAndroid, Callback<Boolean> ca llback);
81 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698