forked from upstream-mirrors/OpenTracks
If a trackId is not longer valid, use the last track.
Fix app widget launching My Tracks with an invalid track id.
This commit is contained in:
@@ -92,7 +92,6 @@ public class TrackDetailActivity extends AbstractSendToGoogleActivity
|
|||||||
// From intent
|
// From intent
|
||||||
private long trackId;
|
private long trackId;
|
||||||
private long markerId;
|
private long markerId;
|
||||||
private Track track;
|
|
||||||
|
|
||||||
// Preferences
|
// Preferences
|
||||||
private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
||||||
@@ -299,10 +298,12 @@ public class TrackDetailActivity extends AbstractSendToGoogleActivity
|
|||||||
menu.findItem(R.id.track_detail_save_tcx)
|
menu.findItem(R.id.track_detail_save_tcx)
|
||||||
.setTitle(getString(R.string.menu_save_format, fileTypes[3]));
|
.setTitle(getString(R.string.menu_save_format, fileTypes[3]));
|
||||||
|
|
||||||
menu.findItem(R.id.track_detail_edit).setVisible(!track.isSharedWithMe());
|
Track track = myTracksProviderUtils.getTrack(trackId);
|
||||||
|
boolean sharedWithMe = track != null ? track.isSharedWithMe() : true;
|
||||||
|
menu.findItem(R.id.track_detail_edit).setVisible(!sharedWithMe);
|
||||||
shareDriveMenuItem = menu.findItem(R.id.track_detail_share_drive);
|
shareDriveMenuItem = menu.findItem(R.id.track_detail_share_drive);
|
||||||
shareDriveMenuItem.setEnabled(!track.isSharedWithMe());
|
shareDriveMenuItem.setEnabled(!sharedWithMe);
|
||||||
shareDriveMenuItem.setVisible(!track.isSharedWithMe());
|
shareDriveMenuItem.setVisible(!sharedWithMe);
|
||||||
|
|
||||||
insertMarkerMenuItem = menu.findItem(R.id.track_detail_insert_marker);
|
insertMarkerMenuItem = menu.findItem(R.id.track_detail_insert_marker);
|
||||||
playMenuItem = menu.findItem(R.id.track_detail_play);
|
playMenuItem = menu.findItem(R.id.track_detail_play);
|
||||||
@@ -377,7 +378,9 @@ public class TrackDetailActivity extends AbstractSendToGoogleActivity
|
|||||||
return true;
|
return true;
|
||||||
case R.id.track_detail_send_google:
|
case R.id.track_detail_send_google:
|
||||||
AnalyticsUtils.sendPageViews(this, "/action/send_google");
|
AnalyticsUtils.sendPageViews(this, "/action/send_google");
|
||||||
ChooseUploadServiceDialogFragment.newInstance(track.isSharedWithMe()).show(
|
Track track = myTracksProviderUtils.getTrack(trackId);
|
||||||
|
boolean sharedWithMe = track != null ? track.isSharedWithMe() : true;
|
||||||
|
ChooseUploadServiceDialogFragment.newInstance(sharedWithMe).show(
|
||||||
getSupportFragmentManager(),
|
getSupportFragmentManager(),
|
||||||
ChooseUploadServiceDialogFragment.CHOOSE_UPLOAD_SERVICE_DIALOG_TAG);
|
ChooseUploadServiceDialogFragment.CHOOSE_UPLOAD_SERVICE_DIALOG_TAG);
|
||||||
return true;
|
return true;
|
||||||
@@ -518,6 +521,7 @@ public class TrackDetailActivity extends AbstractSendToGoogleActivity
|
|||||||
trackId = intent.getLongExtra(EXTRA_TRACK_ID, -1L);
|
trackId = intent.getLongExtra(EXTRA_TRACK_ID, -1L);
|
||||||
markerId = intent.getLongExtra(EXTRA_MARKER_ID, -1L);
|
markerId = intent.getLongExtra(EXTRA_MARKER_ID, -1L);
|
||||||
if (markerId != -1L) {
|
if (markerId != -1L) {
|
||||||
|
// Use the trackId from the marker
|
||||||
Waypoint waypoint = myTracksProviderUtils.getWaypoint(markerId);
|
Waypoint waypoint = myTracksProviderUtils.getWaypoint(markerId);
|
||||||
if (waypoint == null) {
|
if (waypoint == null) {
|
||||||
finish();
|
finish();
|
||||||
@@ -529,8 +533,16 @@ public class TrackDetailActivity extends AbstractSendToGoogleActivity
|
|||||||
finish();
|
finish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
track = myTracksProviderUtils.getTrack(trackId);
|
Track track = myTracksProviderUtils.getTrack(trackId);
|
||||||
if (track == null) {
|
if (track == null) {
|
||||||
|
// Use the last track if markerId is not set
|
||||||
|
if (markerId == -1L) {
|
||||||
|
track = myTracksProviderUtils.getLastTrack();
|
||||||
|
if (track != null) {
|
||||||
|
trackId = track.getId();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
finish();
|
finish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -587,7 +599,8 @@ public class TrackDetailActivity extends AbstractSendToGoogleActivity
|
|||||||
if (isRecording) {
|
if (isRecording) {
|
||||||
title = getString(isPaused ? R.string.generic_paused : R.string.generic_recording);
|
title = getString(isPaused ? R.string.generic_paused : R.string.generic_recording);
|
||||||
} else {
|
} else {
|
||||||
title = track.getName();
|
Track track = myTracksProviderUtils.getTrack(trackId);
|
||||||
|
title = track != null ? track.getName() : "";
|
||||||
}
|
}
|
||||||
setTitle(title);
|
setTitle(title);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user