diff options
author | Bjorn Bringert <bringert@android.com> | 2009-07-16 14:09:52 +0100 |
---|---|---|
committer | Bjorn Bringert <bringert@android.com> | 2009-07-16 14:31:00 +0100 |
commit | 84ee74335ffae80c304224b9d40792b9b95a987c (patch) | |
tree | 1c6bcbae7360e5ec4e852e31a06e116a686b11e9 /core/java | |
parent | 391eaa3ba8c9883c9c0d6bf3b5ab742c9cb38594 (diff) | |
download | frameworks_base-84ee74335ffae80c304224b9d40792b9b95a987c.zip frameworks_base-84ee74335ffae80c304224b9d40792b9b95a987c.tar.gz frameworks_base-84ee74335ffae80c304224b9d40792b9b95a987c.tar.bz2 |
Only parse search suggestions that look like HTML
HTML parsing of search suggestions is still a major
CPU hog in the search dialog. This change first
checks if the text contains any HTML markup
(by looking for < and &) before bothering to
treat it as HTML.
Diffstat (limited to 'core/java')
-rw-r--r-- | core/java/android/app/SuggestionsAdapter.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/core/java/android/app/SuggestionsAdapter.java b/core/java/android/app/SuggestionsAdapter.java index a30d911..dc5e864 100644 --- a/core/java/android/app/SuggestionsAdapter.java +++ b/core/java/android/app/SuggestionsAdapter.java @@ -351,7 +351,7 @@ class SuggestionsAdapter extends ResourceCursorAdapter { CharSequence text = null; if (textCol >= 0) { String str = cursor.getString(textCol); - if (isHtml && !TextUtils.isEmpty(str)) { + if (isHtml && looksLikeHtml(str)) { text = Html.fromHtml(str); } else { text = str; @@ -367,6 +367,15 @@ class SuggestionsAdapter extends ResourceCursorAdapter { } } + private static boolean looksLikeHtml(String str) { + if (TextUtils.isEmpty(str)) return false; + for (int i = str.length() - 1; i >= 0; i--) { + char c = str.charAt(i); + if (c == '<' || c == '&') return true; + } + return false; + } + private Drawable getIcon1(Cursor cursor) { if (mIconName1Col < 0) { return null; |