From 7deb589a759ae5fc504455c5ac76677a37828644 Mon Sep 17 00:00:00 2001 From: Jimmy Shih Date: Wed, 10 Jul 2013 12:24:40 -0700 Subject: [PATCH] Bug fix, reload cursor loader after deleting a track --- .../apps/mytracks/TrackListActivity.java | 42 ++++++++++--------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java index 637b21e06..f924f57d3 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java @@ -192,7 +192,7 @@ public class TrackListActivity extends AbstractSendToGoogleActivity @Override public void run() { ApiAdapterFactory.getApiAdapter().invalidMenu(TrackListActivity.this); - sectionResourceCursorAdapter.notifyDataSetChanged(); + getSupportLoaderManager().restartLoader(0, null, loaderCallbacks); boolean isRecording = recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT; trackController.update(isRecording, recordingTrackPaused); @@ -273,6 +273,25 @@ public class TrackListActivity extends AbstractSendToGoogleActivity } }; + private final LoaderCallbacks loaderCallbacks = new LoaderCallbacks() { + @Override + public Loader onCreateLoader(int arg0, Bundle arg1) { + return new CursorLoader(TrackListActivity.this, TracksColumns.CONTENT_URI, PROJECTION, null, + null, + "IFNULL(" + TracksColumns.SHAREDWITHME + ",0) ASC, " + TracksColumns.STARTTIME + " DESC"); + } + + @Override + public void onLoadFinished(Loader loader, Cursor cursor) { + sectionResourceCursorAdapter.swapCursor(cursor); + } + + @Override + public void onLoaderReset(Loader loader) { + sectionResourceCursorAdapter.swapCursor(null); + } + }; + // The following are set in onCreate private MyTracksProviderUtils myTracksProviderUtils; private SharedPreferences sharedPreferences; @@ -371,24 +390,7 @@ public class TrackListActivity extends AbstractSendToGoogleActivity ApiAdapterFactory.getApiAdapter() .configureListViewContextualMenu(this, listView, contextualActionModeCallback); - getSupportLoaderManager().initLoader(0, null, new LoaderCallbacks() { - @Override - public Loader onCreateLoader(int arg0, Bundle arg1) { - return new CursorLoader(TrackListActivity.this, TracksColumns.CONTENT_URI, PROJECTION, null, - null, "IFNULL(" + TracksColumns.SHAREDWITHME + ",0) ASC, " + TracksColumns.STARTTIME - + " DESC"); - } - - @Override - public void onLoadFinished(Loader loader, Cursor cursor) { - sectionResourceCursorAdapter.swapCursor(cursor); - } - - @Override - public void onLoaderReset(Loader loader) { - sectionResourceCursorAdapter.swapCursor(null); - } - }); + getSupportLoaderManager().initLoader(0, null, loaderCallbacks); showStartupDialogs(); } @@ -414,7 +416,7 @@ public class TrackListActivity extends AbstractSendToGoogleActivity // Update UI ApiAdapterFactory.getApiAdapter().invalidMenu(this); - sectionResourceCursorAdapter.notifyDataSetChanged(); + getSupportLoaderManager().restartLoader(0, null, loaderCallbacks); boolean isRecording = recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT; trackController.onResume(isRecording, recordingTrackPaused); }