From 26f1261ac2939e334d8bb4005727b421cd5996ae Mon Sep 17 00:00:00 2001 From: Jimmy Shih Date: Wed, 6 Feb 2013 17:56:33 -0800 Subject: [PATCH] Fix memory leak in SectionResourceCursorAdapter. --- .../SectionResourceCursorAdapter.java | 29 ++----------------- 1 file changed, 2 insertions(+), 27 deletions(-) diff --git a/MyTracks/src/com/google/android/apps/mytracks/SectionResourceCursorAdapter.java b/MyTracks/src/com/google/android/apps/mytracks/SectionResourceCursorAdapter.java index d350287e0..f16cd9d40 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/SectionResourceCursorAdapter.java +++ b/MyTracks/src/com/google/android/apps/mytracks/SectionResourceCursorAdapter.java @@ -21,7 +21,6 @@ import com.google.android.maps.mytracks.R; import android.content.Context; import android.database.Cursor; -import android.database.DataSetObserver; import android.support.v4.widget.ResourceCursorAdapter; import android.view.LayoutInflater; import android.view.View; @@ -46,25 +45,8 @@ public abstract class SectionResourceCursorAdapter extends ResourceCursorAdapter public SectionResourceCursorAdapter(Context context, int layout, Cursor cursor, int flags) { super(context, layout, cursor, flags); this.layoutInflater = LayoutInflater.from(context); - - if (cursor != null) { - sharedWithMeIndex = getSharedWithMeIndex(); - cursor.registerDataSetObserver(dataSetObserver); - } } - private DataSetObserver dataSetObserver = new DataSetObserver() { - @Override - public void onChanged() { - sharedWithMeIndex = getSharedWithMeIndex(); - }; - - @Override - public void onInvalidated() { - sharedWithMeIndex = -1; - }; - }; - @Override public View getView(int position, View convertView, ViewGroup parent) { if (getItemViewType(position) == ItemType.TRACK.ordinal()) { @@ -122,15 +104,8 @@ public abstract class SectionResourceCursorAdapter extends ResourceCursorAdapter @Override public Cursor swapCursor(Cursor newCursor) { - if (getCursor() != null) { - getCursor().unregisterDataSetObserver(dataSetObserver); - } - Cursor oldCursor = super.swapCursor(newCursor); - if (newCursor != null) { - sharedWithMeIndex = getSharedWithMeIndex(); - newCursor.registerDataSetObserver(dataSetObserver); - } + sharedWithMeIndex = getSharedWithMeIndex(); return oldCursor; } @@ -145,7 +120,7 @@ public abstract class SectionResourceCursorAdapter extends ResourceCursorAdapter do { int sharedWithMe = cursor.getInt(index); if (sharedWithMe == 1) { - // Returns the index where sharedWithMe == 1 + // Returns the index where sharedWithMe == 1 return i; } i++;