OLD | NEW |
(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 nativeEventJava(mNativePtr, feature, precondition); |
| 36 } |
| 37 |
| 38 @Override |
| 39 public void used(String feature) { |
| 40 assert mNativePtr != 0; |
| 41 nativeUsedJava(mNativePtr, feature); |
| 42 } |
| 43 |
| 44 @Override |
| 45 public boolean trigger(String feature) { |
| 46 assert mNativePtr != 0; |
| 47 return nativeTriggerJava(mNativePtr, feature); |
| 48 } |
| 49 |
| 50 @Override |
| 51 public void dismissed() { |
| 52 assert mNativePtr != 0; |
| 53 nativeDismissedJava(mNativePtr); |
| 54 } |
| 55 |
| 56 @Override |
| 57 public void addOnInitializedCallback(Callback<Boolean> callback) { |
| 58 assert mNativePtr != 0; |
| 59 nativeAddOnInitializedCallbackJava(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 nativeEventJava( |
| 74 long nativeFeatureEngagementTrackerImplAndroid, String feature, Stri
ng precondition); |
| 75 private native void nativeUsedJava( |
| 76 long nativeFeatureEngagementTrackerImplAndroid, String feature); |
| 77 private native boolean nativeTriggerJava( |
| 78 long nativeFeatureEngagementTrackerImplAndroid, String feature); |
| 79 private native void nativeDismissedJava(long nativeFeatureEngagementTrackerI
mplAndroid); |
| 80 private native void nativeAddOnInitializedCallbackJava( |
| 81 long nativeFeatureEngagementTrackerImplAndroid, Callback<Boolean> ca
llback); |
| 82 } |
OLD | NEW |