diff options
| author | 2011-02-11 09:58:05 -0800 | |
|---|---|---|
| committer | 2011-02-11 09:58:05 -0800 | |
| commit | 2b24957d67babd489a2f6839378e3f59a67f94fc (patch) | |
| tree | 6e6f54c6d0dc4f987d03946791419838a05d54a6 | |
| parent | 540380fb0a45b12af3970f9ea1ed041607451f46 (diff) | |
| parent | 03e0119c93f7a9a9e54cc74dde2a2fd07ae0a944 (diff) | |
Merge "Do not show the dropdown unless there is something to show."
| -rw-r--r-- | core/java/android/webkit/WebTextView.java | 58 |
1 files changed, 32 insertions, 26 deletions
diff --git a/core/java/android/webkit/WebTextView.java b/core/java/android/webkit/WebTextView.java index 6e1a6fcba4bb..492cb8024efc 100644 --- a/core/java/android/webkit/WebTextView.java +++ b/core/java/android/webkit/WebTextView.java @@ -67,7 +67,8 @@ import junit.framework.Assert; * to overlay html textfields (and textareas) to use our standard * text editing. */ -/* package */ class WebTextView extends AutoCompleteTextView { +/* package */ class WebTextView extends AutoCompleteTextView + implements AdapterView.OnItemClickListener { static final String LOGTAG = "webtextview"; @@ -558,6 +559,27 @@ import junit.framework.Assert; mFromFocusChange = false; } + // AdapterView.OnItemClickListener implementation + + @Override + public void onItemClick(AdapterView<?> parent, View view, int position, long id) { + if (id == 0 && position == 0) { + // Blank out the text box while we wait for WebCore to fill the form. + replaceText(""); + WebSettings settings = mWebView.getSettings(); + if (mAutoFillProfileIsSet) { + // Call a webview method to tell WebCore to autofill the form. + mWebView.autoFillForm(mQueryId); + } else { + // There is no autofill profile setup yet and the user has + // elected to try and set one up. Call through to the + // embedder to action that. + mWebView.getWebChromeClient().setupAutoFill( + mHandler.obtainMessage(AUTOFILL_FORM)); + } + } + } + @Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { super.onScrollChanged(l, t, oldl, oldt); @@ -814,33 +836,16 @@ import junit.framework.Assert; setInputType(getInputType() | EditorInfo.TYPE_TEXT_FLAG_AUTO_COMPLETE); adapter.setTextView(this); - } - super.setAdapter(adapter); - if (mAutoFillable) { - setOnItemClickListener(new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView<?> parent, View view, int position, long id) { - if (id == 0 && position == 0) { - // Blank out the text box while we wait for WebCore to fill the form. - replaceText(""); - WebSettings settings = mWebView.getSettings(); - if (mAutoFillProfileIsSet) { - // Call a webview method to tell WebCore to autofill the form. - mWebView.autoFillForm(mQueryId); - } else { - // There is no autofill profile setup yet and the user has - // elected to try and set one up. Call through to the - // embedder to action that. - mWebView.getWebChromeClient().setupAutoFill( - mHandler.obtainMessage(AUTOFILL_FORM)); - } - } - } - }); + if (mAutoFillable) { + setOnItemClickListener(this); + } else { + setOnItemClickListener(null); + } + showDropDown(); } else { - setOnItemClickListener(null); + dismissDropDown(); } - showDropDown(); + super.setAdapter(adapter); } /** @@ -858,6 +863,7 @@ import junit.framework.Assert; /** * {@inheritDoc} */ + @Override public View getView(int position, View convertView, ViewGroup parent) { TextView tv = (TextView) super.getView(position, convertView, parent); |