blob: 10d681ef193aae22bbd2dcafebe6571ac36fe58a [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.touch_to_fill.payments;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace;
import org.chromium.base.annotations.NativeMethods;
/**
* JNI wrapper for C++ TouchToFillCreditCardViewController. Delegates calls from Java to native.
*/
@JNINamespace("autofill")
class TouchToFillCreditCardControllerBridge implements TouchToFillCreditCardComponent.Delegate {
private long mNativeTouchToFillCreditCardViewController;
private TouchToFillCreditCardControllerBridge(long nativeTouchToFillCreditCardViewController) {
mNativeTouchToFillCreditCardViewController = nativeTouchToFillCreditCardViewController;
}
@CalledByNative
private static TouchToFillCreditCardControllerBridge create(
long nativeTouchToFillCreditCardViewController) {
return new TouchToFillCreditCardControllerBridge(nativeTouchToFillCreditCardViewController);
}
@CalledByNative
private void onNativeDestroyed() {
mNativeTouchToFillCreditCardViewController = 0;
}
@Override
public void onDismissed() {
if (mNativeTouchToFillCreditCardViewController != 0) {
TouchToFillCreditCardControllerBridgeJni.get().onDismissed(
mNativeTouchToFillCreditCardViewController);
}
}
@Override
public void scanCreditCard() {
if (mNativeTouchToFillCreditCardViewController != 0) {
TouchToFillCreditCardControllerBridgeJni.get().scanCreditCard(
mNativeTouchToFillCreditCardViewController);
}
}
@NativeMethods
interface Natives {
void onDismissed(long nativeTouchToFillCreditCardViewController);
void scanCreditCard(long nativeTouchToFillCreditCardViewController);
}
}