Bug fix, reload cursor loader after deleting a track

This commit is contained in:
Jimmy Shih
2013-07-10 12:24:40 -07:00
parent 8bd5818a81
commit 7deb589a75
@@ -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<Cursor> loaderCallbacks = new LoaderCallbacks<Cursor>() {
@Override
public Loader<Cursor> 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<Cursor> loader, Cursor cursor) {
sectionResourceCursorAdapter.swapCursor(cursor);
}
@Override
public void onLoaderReset(Loader<Cursor> 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<Cursor>() {
@Override
public Loader<Cursor> 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<Cursor> loader, Cursor cursor) {
sectionResourceCursorAdapter.swapCursor(cursor);
}
@Override
public void onLoaderReset(Loader<Cursor> 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);
}