blob: 4951ff45f2640025709d26ecba4c50dcf6246869 [file] [log] [blame]
// Copyright 2018 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.chrome.browser.autofill_assistant.payment;
import android.support.annotation.Nullable;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace;
import org.chromium.chrome.browser.autofill.PersonalDataManager;
import org.chromium.chrome.browser.payments.AutofillAddress;
import org.chromium.chrome.browser.payments.AutofillContact;
import org.chromium.chrome.browser.payments.AutofillPaymentInstrument;
/** Delegate for the Payment Request UI. */
@JNINamespace("autofill_assistant")
class AssistantPaymentRequestDelegate {
private long mNativeAssistantPaymentRequestDelegate;
@CalledByNative
private static AssistantPaymentRequestDelegate create(
long nativeAssistantPaymentRequestDelegate) {
return new AssistantPaymentRequestDelegate(nativeAssistantPaymentRequestDelegate);
}
private AssistantPaymentRequestDelegate(long nativeAssistantPaymentRequestDelegate) {
mNativeAssistantPaymentRequestDelegate = nativeAssistantPaymentRequestDelegate;
}
public void onContactInfoChanged(@Nullable AutofillContact contact) {
if (mNativeAssistantPaymentRequestDelegate != 0) {
String name = null;
String phone = null;
String email = null;
if (contact != null) {
name = contact.getPayerName();
phone = contact.getPayerPhone();
email = contact.getPayerEmail();
}
nativeOnContactInfoChanged(mNativeAssistantPaymentRequestDelegate, name, phone, email);
}
}
public void onShippingAddressChanged(@Nullable AutofillAddress address) {
if (mNativeAssistantPaymentRequestDelegate != 0) {
nativeOnShippingAddressChanged(mNativeAssistantPaymentRequestDelegate,
address != null ? address.getProfile() : null);
}
}
public void onPaymentMethodChanged(@Nullable AutofillPaymentInstrument paymentInstrument) {
if (mNativeAssistantPaymentRequestDelegate != 0) {
nativeOnCreditCardChanged(mNativeAssistantPaymentRequestDelegate,
paymentInstrument != null ? paymentInstrument.getCard() : null);
}
}
public void onTermsAndConditionsChanged(@AssistantTermsAndConditionsState int state) {
if (mNativeAssistantPaymentRequestDelegate != 0) {
nativeOnTermsAndConditionsChanged(mNativeAssistantPaymentRequestDelegate, state);
}
}
@CalledByNative
private void clearNativePtr() {
mNativeAssistantPaymentRequestDelegate = 0;
}
private native void nativeOnContactInfoChanged(long nativeAssistantPaymentRequestDelegate,
@Nullable String payerName, @Nullable String payerPhone, @Nullable String payerEmail);
private native void nativeOnShippingAddressChanged(long nativeAssistantPaymentRequestDelegate,
@Nullable PersonalDataManager.AutofillProfile address);
private native void nativeOnCreditCardChanged(long nativeAssistantPaymentRequestDelegate,
@Nullable PersonalDataManager.CreditCard card);
private native void nativeOnTermsAndConditionsChanged(
long nativeAssistantPaymentRequestDelegate, int state);
}