summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
authorKarl Rosaen <krosaen@google.com>2009-07-23 17:20:47 -0700
committerKarl Rosaen <krosaen@google.com>2009-07-23 17:20:47 -0700
commit92f461ea66d0c326ea6705cce9932b753954c690 (patch)
treeeab9c1377049cb7aca35b986827e87e49b986c3c /core/java
parent0b1a255f736851342016e657ba6ccf096a9497ea (diff)
downloadframeworks_base-92f461ea66d0c326ea6705cce9932b753954c690.zip
frameworks_base-92f461ea66d0c326ea6705cce9932b753954c690.tar.gz
frameworks_base-92f461ea66d0c326ea6705cce9932b753954c690.tar.bz2
add some more defensiveness to SuggestionsAdapter to avoid system process crashes.
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/app/SuggestionsAdapter.java22
1 files changed, 14 insertions, 8 deletions
diff --git a/core/java/android/app/SuggestionsAdapter.java b/core/java/android/app/SuggestionsAdapter.java
index 54061ae..17e6e50 100644
--- a/core/java/android/app/SuggestionsAdapter.java
+++ b/core/java/android/app/SuggestionsAdapter.java
@@ -136,6 +136,8 @@ class SuggestionsAdapter extends ResourceCursorAdapter {
private int mPreviousLength = 0;
public long getPostingDelay(CharSequence constraint) {
+ if (constraint == null) return 0;
+
long delay = constraint.length() < mPreviousLength ? DELETE_KEY_POST_DELAY : 0;
mPreviousLength = constraint.length();
return delay;
@@ -196,14 +198,18 @@ class SuggestionsAdapter extends ResourceCursorAdapter {
callCursorPreClose(mCursor);
}
- super.changeCursor(c);
- if (c != null) {
- mFormatCol = c.getColumnIndex(SearchManager.SUGGEST_COLUMN_FORMAT);
- mText1Col = c.getColumnIndex(SearchManager.SUGGEST_COLUMN_TEXT_1);
- mText2Col = c.getColumnIndex(SearchManager.SUGGEST_COLUMN_TEXT_2);
- mIconName1Col = c.getColumnIndex(SearchManager.SUGGEST_COLUMN_ICON_1);
- mIconName2Col = c.getColumnIndex(SearchManager.SUGGEST_COLUMN_ICON_2);
- mBackgroundColorCol = c.getColumnIndex(SearchManager.SUGGEST_COLUMN_BACKGROUND_COLOR);
+ try {
+ super.changeCursor(c);
+ if (c != null) {
+ mFormatCol = c.getColumnIndex(SearchManager.SUGGEST_COLUMN_FORMAT);
+ mText1Col = c.getColumnIndex(SearchManager.SUGGEST_COLUMN_TEXT_1);
+ mText2Col = c.getColumnIndex(SearchManager.SUGGEST_COLUMN_TEXT_2);
+ mIconName1Col = c.getColumnIndex(SearchManager.SUGGEST_COLUMN_ICON_1);
+ mIconName2Col = c.getColumnIndex(SearchManager.SUGGEST_COLUMN_ICON_2);
+ mBackgroundColorCol = c.getColumnIndex(SearchManager.SUGGEST_COLUMN_BACKGROUND_COLOR);
+ }
+ } catch (Exception e) {
+ Log.e(LOG_TAG, "error changing cursor and caching columns", e);
}
}