1 // Copyright 2013 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.
5 package org.chromium.chrome.browser.autofill;
7 import org.chromium.base.CalledByNative;
8 import org.chromium.base.JNINamespace;
11 * Java-side result of a non-cancelled AutofillDialog invocation, and
12 * JNI glue for C++ AutofillDialogResult used by AutofillDialogControllerAndroid.
14 @JNINamespace("autofill")
15 public class AutofillDialogResult {
17 * Information about the credit card in the dialog result.
19 public static class ResultCard {
20 private final int mExpirationMonth;
21 private final int mExpirationYear;
22 private final String mPan;
23 private final String mCvn;
26 * Creates a ResultCard.
27 * @param expirationMonth Expiration month
28 * @param expirationYear Expiration year
29 * @param pan Credit card number
30 * @param cvn Credit card verification number
32 public ResultCard(int expirationMonth, int expirationYear, String pan, String cvn) {
33 mExpirationMonth = expirationMonth;
34 mExpirationYear = expirationYear;
40 * @return Expiration month
42 @CalledByNative("ResultCard")
43 public int getExpirationMonth() {
44 return mExpirationMonth;
48 * @return Expiration year
50 @CalledByNative("ResultCard")
51 public int getExpirationYear() {
52 return mExpirationYear;
56 * @return Credit card number
58 @CalledByNative("ResultCard")
59 public String getPan() {
64 * @return Credit card verification number
66 @CalledByNative("ResultCard")
67 public String getCvn() {
73 * Information about an address in the dialog result.
75 public static class ResultAddress {
76 private final String mName;
77 private final String mPhoneNumber;
78 private final String mStreetAddress;
79 private final String mLocality;
80 private final String mDependentLocality;
81 private final String mAdministrativeArea;
82 private final String mPostalCode;
83 private final String mSortingCode;
84 private final String mCountryCode;
85 private final String mLanguageCode;
88 * Creates a ResultAddress.
89 * Any parameter can be empty or null.
90 * @param name Full name
91 * @param phoneNumber Phone number
92 * @param streetAddress Street address
93 * @param locality Locality / City
94 * @param dependentLocality Inner-city district / Suburb / Dependent locality
95 * @param administrativeArea Region / State
96 * @param postalCode Postal code
97 * @param sortingCode Sorting code
98 * @param countryCode Country code
99 * @param languageCode Language code
101 public ResultAddress(
102 String name, String phoneNumber,
103 String streetAddress,
104 String locality, String dependentLocality,
105 String administrativeArea, String postalCode, String sortingCode,
106 String countryCode, String languageCode) {
108 mPhoneNumber = phoneNumber;
109 mStreetAddress = streetAddress;
110 mLocality = locality;
111 mDependentLocality = dependentLocality;
112 mAdministrativeArea = administrativeArea;
113 mPostalCode = postalCode;
114 mSortingCode = sortingCode;
115 mCountryCode = countryCode;
116 mLanguageCode = languageCode;
122 @CalledByNative("ResultAddress")
123 public String getName() {
128 * @return Phone number
130 @CalledByNative("ResultAddress")
131 public String getPhoneNumber() {
136 * @return Street address
138 @CalledByNative("ResultAddress")
139 public String getStreetAddress() {
140 return mStreetAddress;
144 * @return Locality (city)
146 @CalledByNative("ResultAddress")
147 public String getLocality() {
152 * @return Dependent locality (inner-city district / suburb)
154 @CalledByNative("ResultAddress")
155 public String getDependentLocality() {
156 return mDependentLocality;
160 * @return Administrative area (region / state)
162 @CalledByNative("ResultAddress")
163 public String getAdministrativeArea() {
164 return mAdministrativeArea;
168 * @return Postal code
170 @CalledByNative("ResultAddress")
171 public String getPostalCode() {
176 * @return Sorting code
178 @CalledByNative("ResultAddress")
179 public String getSortingCode() {
184 * @return Country code
186 @CalledByNative("ResultAddress")
187 public String getCountryCode() {
192 * @return Language code
194 @CalledByNative("ResultAddress")
195 public String getLanguageCode() {
196 return mLanguageCode;
201 * A response from the dialog.
203 public static class ResultWallet {
204 private final String mEmail;
205 private final String mGoogleTransactionId;
206 private final ResultCard mCard;
207 private final ResultAddress mBillingAddress;
208 private final ResultAddress mShippingAddress;
211 * Creates a ResultWallet.
212 * Any fields could be empty or null.
213 * @param email Email address
214 * @param googleTransactionId Google transaction ID if any
215 * @param card Information about the credit card
216 * @param billingAddress Information about the billing address
217 * @param shippingAddress Information about the shipping address
220 String email, String googleTransactionId,
221 ResultCard card, ResultAddress billingAddress, ResultAddress shippingAddress) {
223 mGoogleTransactionId = googleTransactionId;
225 mBillingAddress = billingAddress;
226 mShippingAddress = shippingAddress;
230 * @return Email address
232 @CalledByNative("ResultWallet")
233 public String getEmail() {
238 * @return Google transaction ID if any
240 @CalledByNative("ResultWallet")
241 public String getGoogleTransactionId() {
242 return mGoogleTransactionId;
246 * @return Credit card information, or null
248 @CalledByNative("ResultWallet")
249 public ResultCard getCard() {
254 * @return Billing address information, or null
256 @CalledByNative("ResultWallet")
257 public ResultAddress getBillingAddress() {
258 return mBillingAddress;
262 * @return Shipping address information, or null
264 @CalledByNative("ResultWallet")
265 public ResultAddress getShippingAddress() {
266 return mShippingAddress;