- add default export directory

- add instant post workout track export
This commit is contained in:
thrillfall
2020-08-06 13:56:27 +02:00
committed by Dennis Guse
parent 257d8c1276
commit b270c45691
14 changed files with 253 additions and 5 deletions
@@ -47,6 +47,7 @@ import de.dennisguse.opentracks.content.provider.CustomContentProvider;
import de.dennisguse.opentracks.content.provider.TrackPointIterator;
import de.dennisguse.opentracks.content.sensor.SensorDataSet;
import de.dennisguse.opentracks.services.handlers.GpsStatusValue;
import de.dennisguse.opentracks.io.file.TrackFileFormat;
import de.dennisguse.opentracks.services.handlers.HandlerServer;
import de.dennisguse.opentracks.services.sensors.BluetoothRemoteSensorManager;
import de.dennisguse.opentracks.services.sensors.ElevationSumManager;
@@ -62,6 +63,8 @@ import de.dennisguse.opentracks.util.TrackIconUtils;
import de.dennisguse.opentracks.util.TrackNameUtils;
import de.dennisguse.opentracks.util.TrackPointUtils;
import static de.dennisguse.opentracks.io.file.exporter.InstantPostWorkoutExport.exportTrackToUri;
/**
* A background service that registers a location listener and records track points.
* Track points are saved to the {@link CustomContentProvider}.
@@ -127,6 +130,7 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand
private HandlerServer handlerServer;
private List<TrackRecordingServiceCallback> listeners = new ArrayList<>();
private Track.Id lastTrackId;
@Override
public void onCreate() {
@@ -186,17 +190,26 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand
PreferencesUtils.unregister(this, sharedPreferenceChangeListener);
try {
voiceExecutor.shutdown();
} finally {
voiceExecutor = null;
}
if (PreferencesUtils.shouldInstantExportAfterWorkout(getApplicationContext())) {
TrackFileFormat trackFileFormat = PreferencesUtils.getExportTrackFileFormat(this);
Uri directoryUri = PreferencesUtils.getDefaultExportDirectoryUri(getApplicationContext());
exportTrackToUri(directoryUri, getApplicationContext(), contentProviderUtils, trackFileFormat, lastTrackId);
}
contentProviderUtils = null;
binder.detachFromService();
binder = null;
// This should be the next to last operation
wakeLock = SystemUtils.releaseWakeLock(wakeLock);
@@ -411,6 +424,7 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand
// Need to remember the recordingTrackId before setting it to -1L
Track.Id trackId = recordingTrackId;
lastTrackId = recordingTrackId;
boolean wasPaused = recordingTrackPaused;
updateRecordingState(null, true);