Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Side by Side Diff: android_webview/java/src/org/chromium/android_webview/DummyAwAutofillManager.java

Issue 2745803003: autofill-try
Patch Set: before I leave Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 package org.chromium.android_webview;
2
3 import android.annotation.SuppressLint;
4 import android.content.Context;
5 import android.graphics.Matrix;
6 import android.graphics.Rect;
7 import android.os.Bundle;
8 import android.os.LocaleList;
9 import android.util.Pair;
10 import android.util.SparseArray;
11 import android.view.View;
12 import android.view.ViewStructure;
13 import android.view.autofill.AutofillValue;
14
15 import org.chromium.base.Log;
16 import org.chromium.base.ThreadUtils;
17
18 import java.util.ArrayList;
19
20 @SuppressLint("NewApi") // Removed once SDK roll to O
21 public class DummyAwAutofillManager extends AwAutofillManager {
22
23 private class DummyViewStructure extends ViewStructure {
24
25 @Override
26 public void setAlpha(float alpha) {
27 // TODO(michaelbai): Auto-generated method stub
28 }
29
30 @Override
31 public void setAccessibilityFocused(boolean state) {
32 // TODO(michaelbai): Auto-generated method stub
33
34 }
35
36 @Override
37 public void setCheckable(boolean state) {
38 // TODO(michaelbai): Auto-generated method stub
39
40 }
41
42 @Override
43 public void setChecked(boolean state) {
44 // TODO(michaelbai): Auto-generated method stub
45
46 }
47
48 @Override
49 public void setActivated(boolean state) {
50 // TODO(michaelbai): Auto-generated method stub
51
52 }
53
54 @Override
55 public CharSequence getText() {
56 // TODO(michaelbai): Auto-generated method stub
57 return null;
58 }
59
60 @Override
61 public int getTextSelectionStart() {
62 // TODO(michaelbai): Auto-generated method stub
63 return 0;
64 }
65
66 @Override
67 public int getTextSelectionEnd() {
68 // TODO(michaelbai): Auto-generated method stub
69 return 0;
70 }
71
72 @Override
73 public CharSequence getHint() {
74 // TODO(michaelbai): Auto-generated method stub
75 return null;
76 }
77
78 @Override
79 public Bundle getExtras() {
80 // TODO(michaelbai): Auto-generated method stub
81 return null;
82 }
83
84 @Override
85 public boolean hasExtras() {
86 // TODO(michaelbai): Auto-generated method stub
87 return false;
88 }
89
90 @Override
91 public int addChildCount(int num) {
92 // TODO(michaelbai): Auto-generated method stub
93 return 0;
94 }
95
96 @Override
97 public int getChildCount() {
98 // TODO(michaelbai): Auto-generated method stub
99 return 0;
100 }
101
102 @Override
103 public ViewStructure newChild(int index) {
104 DummyViewStructure child = new DummyViewStructure();
105 mChildren.add(child);
106
107 return child;
108 }
109
110 @Override
111 public ViewStructure asyncNewChild(int index) {
112 // TODO(michaelbai): Auto-generated method stub
113 return null;
114 }
115
116 @Override
117 public void asyncCommit() {
118 // TODO(michaelbai): Auto-generated method stub
119
120 }
121
122 @Override
123 public void setId(int id, String packageName, String typeName, String en tryName) {
124 // TODO(michaelbai): Auto-generated method stub
125
126 }
127
128 @Override
129 public void setDimens(int left, int top, int scrollX, int scrollY, int w idth, int height) {
130 // TODO(michaelbai): Auto-generated method stub
131
132 }
133
134 @Override
135 public void setTransformation(Matrix matrix) {
136 // TODO(michaelbai): Auto-generated method stub
137
138 }
139
140 @Override
141 public void setElevation(float elevation) {
142 // TODO(michaelbai): Auto-generated method stub
143
144 }
145
146 @Override
147 public void setVisibility(int visibility) {
148 // TODO(michaelbai): Auto-generated method stub
149
150 }
151
152 @Override
153 public void setEnabled(boolean state) {
154 // TODO(michaelbai): Auto-generated method stub
155
156 }
157
158 @Override
159 public void setClickable(boolean state) {
160 // TODO(michaelbai): Auto-generated method stub
161
162 }
163
164 @Override
165 public void setLongClickable(boolean state) {
166 // TODO(michaelbai): Auto-generated method stub
167
168 }
169
170 @Override
171 public void setContextClickable(boolean state) {
172 // TODO(michaelbai): Auto-generated method stub
173
174 }
175
176 @Override
177 public void setFocusable(boolean state) {
178 // TODO(michaelbai): Auto-generated method stub
179
180 }
181
182 @Override
183 public void setFocused(boolean state) {
184 // TODO(michaelbai): Auto-generated method stub
185
186 }
187
188 @Override
189 public void setSelected(boolean state) {
190 // TODO(michaelbai): Auto-generated method stub
191
192 }
193
194 @Override
195 public void setClassName(String className) {
196 // TODO(michaelbai): Auto-generated method stub
197
198 }
199
200 @Override
201 public void setContentDescription(CharSequence contentDescription) {
202 // TODO(michaelbai): Auto-generated method stub
203
204 }
205
206 @Override
207 public void setText(CharSequence text) {
208 // TODO(michaelbai): Auto-generated method stub
209
210 }
211
212 @Override
213 public void setText(CharSequence text, int selectionStart, int selection End) {
214 // TODO(michaelbai): Auto-generated method stub
215
216 }
217
218 @Override
219 public void setTextStyle(float size, int fgColor, int bgColor, int style ) {
220 // TODO(michaelbai): Auto-generated method stub
221
222 }
223
224 @Override
225 public void setTextLines(int[] charOffsets, int[] baselines) {
226 // TODO(michaelbai): Auto-generated method stub
227
228 }
229
230 @Override
231 public void setHint(CharSequence hint) {
232 // TODO(michaelbai): Auto-generated method stub
233
234 }
235
236 @Override
237 public void setChildCount(int num) {
238 // TODO(michaelbai): Auto-generated method stub
239
240 }
241
242 @Override
243 public void setDataIsSensitive(boolean sensitive) {
244
245 }
246
247 @Override
248 public void setAutofillOptions(String[] options) {
249 }
250
251 private ArrayList<DummyViewStructure> mChildren = new ArrayList<DummyVie wStructure>();
252 private AutofillValue mAutofillValue;
253 private int mAutoFillType;
254 private int mVirtualId;
255
256 public ArrayList<DummyViewStructure> getChildren() {
257 return mChildren;
258 }
259
260 public AutofillValue getAutofillValue() {
261 return mAutofillValue;
262 }
263
264 public int getAutoFillType() {
265 return mAutoFillType;
266 }
267
268 public int getVirtualId() {
269 return mVirtualId;
270 }
271
272 @Override
273 public void setAutofillType(int arg0) {
274 // TODO(michaelbai): Auto-generated method stub
275 }
276
277 @Override
278 public void setAutofillValue(AutofillValue autofillValue) {
279 mAutofillValue = autofillValue;
280
281 }
282
283 @Override
284 public void setInputType(int arg0) {
285 // TODO(michaelbai): Auto-generated method stub
286
287 }
288
289 @Override
290 public void setOpaque(boolean arg0) {
291 // TODO(michaelbai): Auto-generated method stub
292
293 }
294
295 @Override
296 public void setUrl(String arg0) {
297 // TODO(michaelbai): Auto-generated method stub
298 }
299
300 @Override
301 public void setAutofillHint(String[] arg0) {
302 // TODO(michaelbai): Auto-generated method stub
303 }
304
305 @Override
306 public void setAutofillId(ViewStructure arg0, int virtualId) {
307 mVirtualId = virtualId;
308 }
309
310 @Override
311 public void setIdEntry(String arg0) {
312 // TODO(michaelbai): Auto-generated method stub
313
314 }
315
316 @Override
317 public void setLocaleList(LocaleList arg0) {
318 // TODO(michaelbai): Auto-generated method stub
319
320 }
321 }
322
323 private static final String TAG = "bt:-DummyAwAutofillManager";
324 private AwContents mAwContents;
325 private DummyViewStructure mViewStructure;
326 private boolean mFirstSuggestion;
327 private boolean mSecondSuggestion;
328
329 /**
330 * @param context
331 */
332 public DummyAwAutofillManager(Context context, AwContents awContents) {
333 super(context);
334 mAwContents = awContents;
335 }
336
337 @Override
338 public void notifyVirtualValueChanged(View parent, int childId, AutofillValu e value) {
339 if (!mSecondSuggestion) {
340 mSecondSuggestion = true;
341 ThreadUtils.postOnUiThread(new Runnable() {
342 @Override
343 public void run() {
344 DummyAwAutofillManager.this.autoFillVirtual();
345 }
346 });
347 }
348 Log.d(TAG, "notifyVirtualValueChanged " + value.getTextValue());
349 }
350
351 @Override
352 public void commit() {
353 reset();
354 Log.d(TAG, "commit ");
355 }
356
357 @Override
358 public void notifyVirtualViewEntered(View parent, int childId, Rect bounds) {
359 if (!mFirstSuggestion) {
360 mFirstSuggestion = true;
361 ThreadUtils.postOnUiThread(new Runnable() {
362 @Override
363 public void run() {
364 DummyAwAutofillManager.this.onProvideVirtualStructure();
365 }
366 });
367 }
368 Log.d(TAG, "notifyVirtualViewEntered " + childId);
369 }
370
371 @Override
372 public void notifyVirtualViewExited(View parent, int childId) {
373 Log.d(TAG, "notifyVirtualViewExited " + childId);
374 }
375
376 @Override
377 public void cancel() {
378 reset();
379 Log.d(TAG, "cancel ");
380 }
381
382 private void reset() {
383 mFirstSuggestion = false;
384 mSecondSuggestion = false;
385 }
386
387 private void onProvideVirtualStructure() {
388 mViewStructure = new DummyViewStructure();
389 mAwContents.onProvideAutoFillVirtualStructure(mViewStructure, 0);
390
391 ThreadUtils.postOnUiThread(new Runnable() {
392 @Override
393 public void run() {
394 DummyAwAutofillManager.this.autoFillVirtual();
395 }
396 });
397 }
398
399 private void autoFillVirtual() {
400 final SparseArray<AutofillValue> values = new SparseArray<AutofillValue> ();
401 for (DummyViewStructure child : mViewStructure.getChildren()) {
402 int id = child.getVirtualId();
403 String newValue = null;
404 String value = (String) child.getAutofillValue().getTextValue();
405 if (value.equalsIgnoreCase("name")) {
406 newValue = "WebView example";
407 } else if (value.equalsIgnoreCase("email")) {
408 newValue = "webview@android.com";
409 }
410 if (mSecondSuggestion) {
411 if (value.equalsIgnoreCase("phone")) {
412 newValue = "+1 650-650-0000";
413 }
414 }
415 values.put(id, AutofillValue.forText(newValue));
416 }
417 mAwContents.autofill(values);
418 }
419 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698