diff options
author | Karl Rosaen <krosaen@google.com> | 2009-07-23 17:20:47 -0700 |
---|---|---|
committer | Karl Rosaen <krosaen@google.com> | 2009-07-23 17:20:47 -0700 |
commit | 92f461ea66d0c326ea6705cce9932b753954c690 (patch) | |
tree | eab9c1377049cb7aca35b986827e87e49b986c3c /core/java | |
parent | 0b1a255f736851342016e657ba6ccf096a9497ea (diff) | |
download | frameworks_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.java | 22 |
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); } } |