diff options
| author | Bjorn Bringert <bringert@android.com> | 2009-08-26 11:41:40 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2009-08-26 11:41:40 -0700 |
| commit | 98d8858890227861c5dc28bc7acee9b1adedda45 (patch) | |
| tree | 0b5e9b9beec7a3751b1987515c3a51e6bd46ea63 | |
| parent | 4b8e3fb51155ab6c990803ff7780cd1b8c8f3dcf (diff) | |
| parent | ba223760895e62ad2fcb85476984cb29018860c9 (diff) | |
| download | frameworks_base-98d8858890227861c5dc28bc7acee9b1adedda45.zip frameworks_base-98d8858890227861c5dc28bc7acee9b1adedda45.tar.gz frameworks_base-98d8858890227861c5dc28bc7acee9b1adedda45.tar.bz2 | |
am ba223760: Close suggestion cursors that arrive after adapter is closed
Merge commit 'ba223760895e62ad2fcb85476984cb29018860c9' into eclair
* commit 'ba223760895e62ad2fcb85476984cb29018860c9':
Close suggestion cursors that arrive after adapter is closed
| -rw-r--r-- | core/java/android/app/SearchDialog.java | 2 | ||||
| -rw-r--r-- | core/java/android/app/SuggestionsAdapter.java | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/core/java/android/app/SearchDialog.java b/core/java/android/app/SearchDialog.java index 8a9cca7..f776452 100644 --- a/core/java/android/app/SearchDialog.java +++ b/core/java/android/app/SearchDialog.java @@ -428,7 +428,7 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS mSearchAutoComplete.setAdapter((SuggestionsAdapter)null); // close any leftover cursor if (mSuggestionsAdapter != null) { - mSuggestionsAdapter.changeCursor(null); + mSuggestionsAdapter.close(); } mSuggestionsAdapter = null; } diff --git a/core/java/android/app/SuggestionsAdapter.java b/core/java/android/app/SuggestionsAdapter.java index 52e4a1f..90f8c50 100644 --- a/core/java/android/app/SuggestionsAdapter.java +++ b/core/java/android/app/SuggestionsAdapter.java @@ -65,6 +65,7 @@ class SuggestionsAdapter extends ResourceCursorAdapter { private WeakHashMap<String, Drawable.ConstantState> mOutsideDrawablesCache; private SparseArray<Drawable.ConstantState> mBackgroundsCache; private boolean mGlobalSearchMode; + private boolean mClosed = false; // Cached column indexes, updated when the cursor changes. private int mFormatCol; @@ -199,6 +200,12 @@ class SuggestionsAdapter extends ResourceCursorAdapter { } } + public void close() { + if (DBG) Log.d(LOG_TAG, "close()"); + changeCursor(null); + mClosed = true; + } + /** * Cache columns. */ @@ -206,6 +213,12 @@ class SuggestionsAdapter extends ResourceCursorAdapter { public void changeCursor(Cursor c) { if (DBG) Log.d(LOG_TAG, "changeCursor(" + c + ")"); + if (mClosed) { + Log.w(LOG_TAG, "Tried to change cursor after adapter was closed."); + if (c != null) c.close(); + return; + } + try { Cursor oldCursor = getCursor(); super.changeCursor(c); |
