Fixing cache reset in GroupingListAdapter (Call Log)
Bug: 2479978
Change-Id: I70a17d13cedbd8986cd6dca2b218c7180dc17470
diff --git a/src/com/android/contacts/GroupingListAdapter.java b/src/com/android/contacts/GroupingListAdapter.java
index 9d494a3..5937a6d 100644
--- a/src/com/android/contacts/GroupingListAdapter.java
+++ b/src/com/android/contacts/GroupingListAdapter.java
@@ -19,7 +19,6 @@
import com.android.internal.util.ArrayUtils;
import android.content.Context;
-import android.database.CharArrayBuffer;
import android.database.ContentObserver;
import android.database.Cursor;
import android.database.DataSetObserver;
@@ -163,6 +162,9 @@
mCursor.close();
}
mCursor = cursor;
+ resetCache();
+ findGroups();
+
if (cursor != null) {
cursor.registerContentObserver(mChangeObserver);
cursor.registerDataSetObserver(mDataSetObserver);
@@ -173,8 +175,6 @@
notifyDataSetInvalidated();
}
- resetCache();
- findGroups();
}
public Cursor getCursor() {
@@ -418,6 +418,10 @@
}
public Object getItem(int position) {
+ if (mCursor == null) {
+ return null;
+ }
+
obtainPositionMetadata(mPositionMetadata, position);
if (mCursor.moveToPosition(mPositionMetadata.cursorPosition)) {
return mCursor;
diff --git a/src/com/android/contacts/RecentCallsListActivity.java b/src/com/android/contacts/RecentCallsListActivity.java
index d12f9dd..a195971 100644
--- a/src/com/android/contacts/RecentCallsListActivity.java
+++ b/src/com/android/contacts/RecentCallsListActivity.java
@@ -758,10 +758,7 @@
protected void onDestroy() {
super.onDestroy();
mAdapter.stopRequestProcessing();
- Cursor cursor = mAdapter.getCursor();
- if (cursor != null && !cursor.isClosed()) {
- cursor.close();
- }
+ mAdapter.changeCursor(null);
}
@Override