| 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 mAddress1; |
| 79 | private final String mAddress2; |
| 80 | private final String mCity; |
| 81 | private final String mState; |
| 82 | private final String mPostalCode; |
| 83 | private final String mCountryCode; |
| 84 | |
| 85 | /** |
| 86 | * Creates a ResultAddress. |
| 87 | * Any parameter can be empty or null. |
| 88 | * @param name Full name |
| 89 | * @param phoneNumber Phone number |
| 90 | * @param address1 Address line 1 |
| 91 | * @param address2 Address line 2 |
| 92 | * @param city City |
| 93 | * @param state State |
| 94 | * @param postalCode Postal code |
| 95 | * @param countryCode Country code |
| 96 | */ |
| 97 | public ResultAddress( |
| 98 | String name, String phoneNumber, |
| 99 | String address1, String address2, |
| 100 | String city, String state, String postalCode, |
| 101 | String countryCode) { |
| 102 | mName = name; |
| 103 | mPhoneNumber = phoneNumber; |
| 104 | mAddress1 = address1; |
| 105 | mAddress2 = address2; |
| 106 | mCity = city; |
| 107 | mState = state; |
| 108 | mPostalCode = postalCode; |
| 109 | mCountryCode = countryCode; |
| 110 | } |
| 111 | |
| 112 | /** |
| 113 | * @return Full name |
| 114 | */ |
| 115 | @CalledByNative("ResultAddress") |
| 116 | public String getName() { |
| 117 | return mName; |
| 118 | } |
| 119 | |
| 120 | /** |
| 121 | * @return Phone number |
| 122 | */ |
| 123 | @CalledByNative("ResultAddress") |
| 124 | public String getPhoneNumber() { |
| 125 | return mPhoneNumber; |
| 126 | } |
| 127 | |
| 128 | /** |
| 129 | * @return Address line 1 |
| 130 | */ |
| 131 | @CalledByNative("ResultAddress") |
| 132 | public String getAddress1() { |
| 133 | return mAddress1; |
| 134 | } |
| 135 | |
| 136 | /** |
| 137 | * @return Address line 2 |
| 138 | */ |
| 139 | @CalledByNative("ResultAddress") |
| 140 | public String getAddress2() { |
| 141 | return mAddress2; |
| 142 | } |
| 143 | |
| 144 | /** |
| 145 | * @return City |
| 146 | */ |
| 147 | @CalledByNative("ResultAddress") |
| 148 | public String getCity() { |
| 149 | return mCity; |
| 150 | } |
| 151 | |
| 152 | /** |
| 153 | * @return State |
| 154 | */ |
| 155 | @CalledByNative("ResultAddress") |
| 156 | public String getState() { |
| 157 | return mState; |
| 158 | } |
| 159 | |
| 160 | /** |
| 161 | * @return Postal code |
| 162 | */ |
| 163 | @CalledByNative("ResultAddress") |
| 164 | public String getPostalCode() { |
| 165 | return mPostalCode; |
| 166 | } |
| 167 | |
| 168 | /** |
| 169 | * @return Country code |
| 170 | */ |
| 171 | @CalledByNative("ResultAddress") |
| 172 | public String getCountryCode() { |
| 173 | return mCountryCode; |
| 174 | } |
| 175 | } |
| 176 | |
| 177 | /** |
| 178 | * A response from the dialog. |
| 179 | */ |
| 180 | public static class ResultWallet { |
| 181 | private final String mEmail; |
| 182 | private final String mGoogleTransactionId; |
| 183 | private final ResultCard mCard; |
| 184 | private final ResultAddress mBillingAddress; |
| 185 | private final ResultAddress mShippingAddress; |
| 186 | |
| 187 | /** |
| 188 | * Creates a ResultWallet. |
| 189 | * Any fields could be empty or null. |
| 190 | * @param email Email address |
| 191 | * @param googleTransactionId Google transaction ID if any |
| 192 | * @param card Information about the credit card |
| 193 | * @param billingAddress Information about the billing address |
| 194 | * @param shippingAddress Information about the shipping address |
| 195 | */ |
| 196 | public ResultWallet( |
| 197 | String email, String googleTransactionId, |
| 198 | ResultCard card, ResultAddress billingAddress, ResultAddress shippingAddress) { |
| 199 | mEmail = email; |
| 200 | mGoogleTransactionId = googleTransactionId; |
| 201 | mCard = card; |
| 202 | mBillingAddress = billingAddress; |
| 203 | mShippingAddress = shippingAddress; |
| 204 | } |
| 205 | |
| 206 | /** |
| 207 | * @return Email address |
| 208 | */ |
| 209 | @CalledByNative("ResultWallet") |
| 210 | public String getEmail() { |
| 211 | return mEmail; |
| 212 | } |
| 213 | |
| 214 | /** |
| 215 | * @return Google transaction ID if any |
| 216 | */ |
| 217 | @CalledByNative("ResultWallet") |
| 218 | public String getGoogleTransactionId() { |
| 219 | return mGoogleTransactionId; |
| 220 | } |
| 221 | |
| 222 | /** |
| 223 | * @return Credit card information, or null |
| 224 | */ |
| 225 | @CalledByNative("ResultWallet") |
| 226 | public ResultCard getCard() { |
| 227 | return mCard; |
| 228 | } |
| 229 | |
| 230 | /** |
| 231 | * @return Billing address information, or null |
| 232 | */ |
| 233 | @CalledByNative("ResultWallet") |
| 234 | public ResultAddress getBillingAddress() { |
| 235 | return mBillingAddress; |
| 236 | } |
| 237 | |
| 238 | /** |
| 239 | * @return Shipping address information, or null |
| 240 | */ |
| 241 | @CalledByNative("ResultWallet") |
| 242 | public ResultAddress getShippingAddress() { |
| 243 | return mShippingAddress; |
| 244 | } |
| 245 | } |
| 246 | } |