Manually starting GPS and opening a recorded track bug fixed. Fixes #200.

This commit is contained in:
Román
2020-04-30 09:41:02 +02:00
parent c7557d80bb
commit 1601741495
2 changed files with 13 additions and 4 deletions
@@ -62,6 +62,7 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA
public static final String EXTRA_TRACK_ID = "track_id"; public static final String EXTRA_TRACK_ID = "track_id";
public static final String EXTRA_MARKER_ID = "marker_id"; public static final String EXTRA_MARKER_ID = "marker_id";
public static final String EXTRA_RECORDING_REQUEST = "request_recording";
private static final String TAG = TrackDetailActivity.class.getSimpleName(); private static final String TAG = TrackDetailActivity.class.getSimpleName();
@@ -78,6 +79,8 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA
// From intent // From intent
private long trackId; private long trackId;
private boolean isRecordingRequest = false;
// Preferences // Preferences
private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT; private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
private boolean recordingTrackPaused; private boolean recordingTrackPaused;
@@ -99,6 +102,9 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA
Log.d(TAG, "could not get TrackRecordingService"); Log.d(TAG, "could not get TrackRecordingService");
return; return;
} }
if (!isRecordingRequest) {
return;
}
// Starts or resumes a track. // Starts or resumes a track.
int msg; int msg;
@@ -119,6 +125,8 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA
trackDataHub.loadTrack(trackId); trackDataHub.loadTrack(trackId);
trackController.update(true, false); trackController.update(true, false);
trackController.onResume(true, recordingTrackPaused); trackController.onResume(true, recordingTrackPaused);
isRecordingRequest = false;
} }
} }
}; };
@@ -384,6 +392,7 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA
deleteTracks(new long[]{trackId}); deleteTracks(new long[]{trackId});
return true; return true;
case R.id.track_detail_resume_track: case R.id.track_detail_resume_track:
isRecordingRequest = true;
startRecording(); startRecording();
return true; return true;
case R.id.track_detail_settings: case R.id.track_detail_settings:
@@ -419,6 +428,7 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA
private void handleIntent(Intent intent) { private void handleIntent(Intent intent) {
trackId = intent.getLongExtra(EXTRA_TRACK_ID, -1L); trackId = intent.getLongExtra(EXTRA_TRACK_ID, -1L);
isRecordingRequest = intent.getBooleanExtra(EXTRA_RECORDING_REQUEST, false);
long markerId = intent.getLongExtra(EXTRA_MARKER_ID, -1L); long markerId = intent.getLongExtra(EXTRA_MARKER_ID, -1L);
if (markerId != -1L) { if (markerId != -1L) {
// Use the trackId from the marker // Use the trackId from the marker
@@ -205,7 +205,8 @@ public class TrackListActivity extends AbstractListActivity implements ConfirmDe
if (!PreferencesUtils.isRecording(recordingTrackId)) { if (!PreferencesUtils.isRecording(recordingTrackId)) {
// Not recording -> Recording // Not recording -> Recording
updateMenuItems(false, true); updateMenuItems(false, true);
Intent newIntent = IntentUtils.newIntent(TrackListActivity.this, TrackDetailActivity.class); Intent newIntent = IntentUtils.newIntent(TrackListActivity.this, TrackDetailActivity.class)
.putExtra(TrackDetailActivity.EXTRA_RECORDING_REQUEST, true);
startActivity(newIntent); startActivity(newIntent);
} else if (recordingTrackPaused) { } else if (recordingTrackPaused) {
// Paused -> Resume // Paused -> Resume
@@ -351,9 +352,7 @@ public class TrackListActivity extends AbstractListActivity implements ConfirmDe
searchMenuItem = menu.findItem(R.id.track_list_search); searchMenuItem = menu.findItem(R.id.track_list_search);
ActivityUtils.configureSearchWidget(this, searchMenuItem, trackController); ActivityUtils.configureSearchWidget(this, searchMenuItem, trackController);
startGpsMenuItem = menu.findItem(R.id.track_list_start_gps);
// Workaround for https://github.com/OpenTracksApp/OpenTracks/issues/200
//startGpsMenuItem = menu.findItem(R.id.track_list_start_gps);
return super.onCreateOptionsMenu(menu); return super.onCreateOptionsMenu(menu);
} }