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 | } |