diff options
| author | 2009-07-23 17:38:24 -0700 | |
|---|---|---|
| committer | 2009-07-23 17:38:24 -0700 | |
| commit | 0a4730f8889bd98e272bd5e7e0fedb6a69d33f54 (patch) | |
| tree | 34394f111cc998f8bae74662797b1da12747010d | |
| parent | 589cebe2d58591403de4a77077941c0454bc91bc (diff) | |
| parent | 92f461ea66d0c326ea6705cce9932b753954c690 (diff) | |
Merge change 8443 into donut
* changes:
  add some more defensiveness to SuggestionsAdapter to avoid system process crashes.
| -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 54061aefd76c..17e6e509b1a5 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);          }      } |