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. 4 5 package org.chromium.chrome.browser.autofill; 6 7 import org.chromium.base.CalledByNative; 8 import org.chromium.base.JNINamespace; 9 10 /** 11 * Java-side result of a non-cancelled AutofillDialog invocation, and 12 * JNI glue for C++ AutofillDialogResult used by AutofillDialogControllerAndroid. 13 */ 14 @JNINamespace("autofill") 15 public class AutofillDialogResult { 16 /** 17 * Information about the credit card in the dialog result. 18 */ 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; 24 25 /** 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 31 */ 32 public ResultCard(int expirationMonth, int expirationYear, String pan, String cvn) { 33 mExpirationMonth = expirationMonth; 34 mExpirationYear = expirationYear; 35 mPan = pan; 36 mCvn = cvn; 37 } 38 39 /** 40 * @return Expiration month 41 */ 42 @CalledByNative("ResultCard") 43 public int getExpirationMonth() { 44 return mExpirationMonth; 45 } 46 47 /** 48 * @return Expiration year 49 */ 50 @CalledByNative("ResultCard") 51 public int getExpirationYear() { 52 return mExpirationYear; 53 } 54 55 /** 56 * @return Credit card number 57 */ 58 @CalledByNative("ResultCard") 59 public String getPan() { 60 return mPan; 61 } 62 63 /** 64 * @return Credit card verification number 65 */ 66 @CalledByNative("ResultCard") 67 public String getCvn() { 68 return mCvn; 69 } 70 } 71 72 /** 73 * Information about an address in the dialog result. 74 */ 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; 86 87 /** 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 100 */ 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) { 107 mName = name; 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; 117 } 118 119 /** 120 * @return Full name 121 */ 122 @CalledByNative("ResultAddress") 123 public String getName() { 124 return mName; 125 } 126 127 /** 128 * @return Phone number 129 */ 130 @CalledByNative("ResultAddress") 131 public String getPhoneNumber() { 132 return mPhoneNumber; 133 } 134 135 /** 136 * @return Street address 137 */ 138 @CalledByNative("ResultAddress") 139 public String getStreetAddress() { 140 return mStreetAddress; 141 } 142 143 /** 144 * @return Locality (city) 145 */ 146 @CalledByNative("ResultAddress") 147 public String getLocality() { 148 return mLocality; 149 } 150 151 /** 152 * @return Dependent locality (inner-city district / suburb) 153 */ 154 @CalledByNative("ResultAddress") 155 public String getDependentLocality() { 156 return mDependentLocality; 157 } 158 159 /** 160 * @return Administrative area (region / state) 161 */ 162 @CalledByNative("ResultAddress") 163 public String getAdministrativeArea() { 164 return mAdministrativeArea; 165 } 166 167 /** 168 * @return Postal code 169 */ 170 @CalledByNative("ResultAddress") 171 public String getPostalCode() { 172 return mPostalCode; 173 } 174 175 /** 176 * @return Sorting code 177 */ 178 @CalledByNative("ResultAddress") 179 public String getSortingCode() { 180 return mSortingCode; 181 } 182 183 /** 184 * @return Country code 185 */ 186 @CalledByNative("ResultAddress") 187 public String getCountryCode() { 188 return mCountryCode; 189 } 190 191 /** 192 * @return Language code 193 */ 194 @CalledByNative("ResultAddress") 195 public String getLanguageCode() { 196 return mLanguageCode; 197 } 198 } 199 200 /** 201 * A response from the dialog. 202 */ 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; 209 210 /** 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 218 */ 219 public ResultWallet( 220 String email, String googleTransactionId, 221 ResultCard card, ResultAddress billingAddress, ResultAddress shippingAddress) { 222 mEmail = email; 223 mGoogleTransactionId = googleTransactionId; 224 mCard = card; 225 mBillingAddress = billingAddress; 226 mShippingAddress = shippingAddress; 227 } 228 229 /** 230 * @return Email address 231 */ 232 @CalledByNative("ResultWallet") 233 public String getEmail() { 234 return mEmail; 235 } 236 237 /** 238 * @return Google transaction ID if any 239 */ 240 @CalledByNative("ResultWallet") 241 public String getGoogleTransactionId() { 242 return mGoogleTransactionId; 243 } 244 245 /** 246 * @return Credit card information, or null 247 */ 248 @CalledByNative("ResultWallet") 249 public ResultCard getCard() { 250 return mCard; 251 } 252 253 /** 254 * @return Billing address information, or null 255 */ 256 @CalledByNative("ResultWallet") 257 public ResultAddress getBillingAddress() { 258 return mBillingAddress; 259 } 260 261 /** 262 * @return Shipping address information, or null 263 */ 264 @CalledByNative("ResultWallet") 265 public ResultAddress getShippingAddress() { 266 return mShippingAddress; 267 } 268 } 269 } 270