Cleanup: move marker creation to MarkerEditActivity.

This commit is contained in:
Dennis Guse
2024-01-13 00:31:48 +01:00
parent f3e8d033cc
commit 1ae18836cb
2 changed files with 19 additions and 30 deletions
@@ -47,6 +47,7 @@ import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.data.models.Marker;
import de.dennisguse.opentracks.data.models.Track;
import de.dennisguse.opentracks.databinding.MarkerEditBinding;
import de.dennisguse.opentracks.services.TrackRecordingService;
import de.dennisguse.opentracks.services.TrackRecordingServiceConnection;
/**
@@ -158,15 +159,14 @@ public class MarkerEditActivity extends AbstractActivity {
if (markerId == null) {
new TrackRecordingServiceConnection((service, self) -> {
Marker.Id newMarkerId = self.addMarker(MarkerEditActivity.this, "", "", "", null);
TrackRecordingServiceConnection.execute(this, (service, self) -> {
Marker.Id newMarkerId = createNewMarker(service);
if (newMarkerId == null) {
finish();
} else {
loadMarkerData(newMarkerId);
}
self.unbind(this);
}).bind(this);
});
} else {
loadMarkerData(markerId);
}
@@ -174,6 +174,21 @@ public class MarkerEditActivity extends AbstractActivity {
setSupportActionBar(viewBinding.bottomAppBarLayout.bottomAppBar);
}
private Marker.Id createNewMarker(TrackRecordingService trackRecordingService) {
try {
Marker.Id marker = trackRecordingService.insertMarker("", "", "", null);
if (marker == null) {
Toast.makeText(this, R.string.marker_add_error, Toast.LENGTH_LONG).show();
return null;
}
return marker;
} catch (IllegalStateException e) {
Log.e(TAG, "Unable to add marker.", e);
return null;
}
}
private void loadMarkerData(Marker.Id markerId) {
viewModel.getMarkerData(markerId).observe(this, data -> {
marker = data;