summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
authorBjorn Bringert <bringert@android.com>2009-07-16 14:09:52 +0100
committerBjorn Bringert <bringert@android.com>2009-07-16 14:31:00 +0100
commit84ee74335ffae80c304224b9d40792b9b95a987c (patch)
tree1c6bcbae7360e5ec4e852e31a06e116a686b11e9 /core/java
parent391eaa3ba8c9883c9c0d6bf3b5ab742c9cb38594 (diff)
downloadframeworks_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.java11
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;