diff options
| author | John Reck <jreck@google.com> | 2012-02-23 19:28:20 -0800 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-02-23 19:28:20 -0800 |
| commit | 5d5b378383cfcdb70efb94c6d6c66ed5623141ec (patch) | |
| tree | 9e90c7f60eaf123d0114233e6155138cc0a1f52b /core/java/android/webkit/WebView.java | |
| parent | 42d840b91d161fe98ebe3305f011b3b0f6d4561c (diff) | |
| parent | 3a0e011fac50212c98b298e59615ac325671377f (diff) | |
Merge "Support email and phone types"
Diffstat (limited to 'core/java/android/webkit/WebView.java')
| -rw-r--r-- | core/java/android/webkit/WebView.java | 57 |
1 files changed, 33 insertions, 24 deletions
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 118c2b663d2d..98d59c43fdec 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -9241,31 +9241,40 @@ public class WebView extends AbsoluteLayout private void setHitTestResult(WebKitHitTest hit) { if (hit == null) { mInitialHitTestResult = null; - } else { - mInitialHitTestResult = new HitTestResult(); - if (hit.mLinkUrl != null) { - mInitialHitTestResult.mType = HitTestResult.SRC_ANCHOR_TYPE; - mInitialHitTestResult.mExtra = hit.mLinkUrl; - if (hit.mImageUrl != null) { - mInitialHitTestResult.mType = HitTestResult.SRC_IMAGE_ANCHOR_TYPE; - mInitialHitTestResult.mExtra = hit.mImageUrl; - } - } else if (hit.mImageUrl != null) { - mInitialHitTestResult.mType = HitTestResult.IMAGE_TYPE; + return; + } + mInitialHitTestResult = new HitTestResult(); + if (hit.mLinkUrl != null) { + mInitialHitTestResult.mType = HitTestResult.SRC_ANCHOR_TYPE; + mInitialHitTestResult.mExtra = hit.mLinkUrl; + if (hit.mImageUrl != null) { + mInitialHitTestResult.mType = HitTestResult.SRC_IMAGE_ANCHOR_TYPE; mInitialHitTestResult.mExtra = hit.mImageUrl; - } else if (hit.mEditable) { - mInitialHitTestResult.mType = HitTestResult.EDIT_TEXT_TYPE; - } else if (hit.mIntentUrl != null) { - if (hit.mIntentUrl.startsWith(SCHEME_GEO)) { - mInitialHitTestResult.mType = HitTestResult.GEO_TYPE; - String substr = hit.mIntentUrl.substring(SCHEME_GEO.length()); - try { - mInitialHitTestResult.mExtra = URLDecoder.decode(substr, "UTF-8"); - } catch (UnsupportedEncodingException e) { - Log.w(LOGTAG, "Failed to decode GEO URL!", e); - mInitialHitTestResult.mType = HitTestResult.UNKNOWN_TYPE; - } - } + } + } else if (hit.mImageUrl != null) { + mInitialHitTestResult.mType = HitTestResult.IMAGE_TYPE; + mInitialHitTestResult.mExtra = hit.mImageUrl; + } else if (hit.mEditable) { + mInitialHitTestResult.mType = HitTestResult.EDIT_TEXT_TYPE; + } else if (hit.mIntentUrl != null) { + String substr = null; + if (hit.mIntentUrl.startsWith(SCHEME_GEO)) { + mInitialHitTestResult.mType = HitTestResult.GEO_TYPE; + substr = hit.mIntentUrl.substring(SCHEME_GEO.length()); + } else if (hit.mIntentUrl.startsWith(SCHEME_TEL)) { + mInitialHitTestResult.mType = HitTestResult.PHONE_TYPE; + substr = hit.mIntentUrl.substring(SCHEME_TEL.length()); + } else if (hit.mIntentUrl.startsWith(SCHEME_MAILTO)) { + mInitialHitTestResult.mType = HitTestResult.EMAIL_TYPE; + substr = hit.mIntentUrl.substring(SCHEME_MAILTO.length()); + } else { + return; + } + try { + mInitialHitTestResult.mExtra = URLDecoder.decode(substr, "UTF-8"); + } catch (Throwable e) { + Log.w(LOGTAG, "Failed to decode GEO URL!", e); + mInitialHitTestResult.mType = HitTestResult.UNKNOWN_TYPE; } } } |
