blob: 734b5ba224d34ca5f226d2b661d66505630eabc9 [file] [log] [blame]
// 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.internal;
import org.chromium.base.Callback;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace;
import org.chromium.components.feature_engagement_tracker.FeatureEngagementTracker;
/**
* Java side of the JNI bridge between FeatureEngagementTrackerImpl in Java
* and C++. All method calls are delegated to the native C++ class.
*/
@JNINamespace("feature_engagement_tracker")
public class FeatureEngagementTrackerImpl implements FeatureEngagementTracker {
/**
* The pointer to the FeatureEngagementTrackerImplAndroid JNI bridge.
*/
private long mNativePtr;
@CalledByNative
private static FeatureEngagementTrackerImpl create(long nativePtr) {
return new FeatureEngagementTrackerImpl(nativePtr);
}
private FeatureEngagementTrackerImpl(long nativePtr) {
mNativePtr = nativePtr;
}
@Override
public void notifyEvent(String event) {
assert mNativePtr != 0;
nativeNotifyEvent(mNativePtr, event);
}
@Override
public boolean shouldTriggerHelpUI(String feature) {
assert mNativePtr != 0;
return nativeShouldTriggerHelpUI(mNativePtr, feature);
}
@Override
public void dismissed() {
assert mNativePtr != 0;
nativeDismissed(mNativePtr);
}
@Override
public void addOnInitializedCallback(Callback<Boolean> callback) {
assert mNativePtr != 0;
nativeAddOnInitializedCallback(mNativePtr, callback);
}
@CalledByNative
private void clearNativePtr() {
mNativePtr = 0;
}
@CalledByNative
private long getNativePtr() {
assert mNativePtr != 0;
return mNativePtr;
}
private native void nativeNotifyEvent(
long nativeFeatureEngagementTrackerImplAndroid, String event);
private native boolean nativeShouldTriggerHelpUI(
long nativeFeatureEngagementTrackerImplAndroid, String feature);
private native void nativeDismissed(long nativeFeatureEngagementTrackerImplAndroid);
private native void nativeAddOnInitializedCallback(
long nativeFeatureEngagementTrackerImplAndroid, Callback<Boolean> callback);
}