From f64c1feb1a4cb45f6383d0b13ae8ed7ef4a777aa Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Wed, 19 Jan 2022 20:53:30 +0100 Subject: [PATCH] Bugfix: prevent rare crash due to Actvity lifecycle events in AbstractTrackDeleteActivity. --- .../opentracks/AbstractTrackDeleteActivity.java | 6 +----- .../opentracks/services/TrackDeleteServiceConnection.java | 8 ++------ 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/AbstractTrackDeleteActivity.java b/src/main/java/de/dennisguse/opentracks/AbstractTrackDeleteActivity.java index ffe7ba307..95b1b6571 100644 --- a/src/main/java/de/dennisguse/opentracks/AbstractTrackDeleteActivity.java +++ b/src/main/java/de/dennisguse/opentracks/AbstractTrackDeleteActivity.java @@ -96,11 +96,7 @@ public abstract class AbstractTrackDeleteActivity extends AbstractActivity imple protected abstract Track.Id getRecordingTrackId(); @Override - public void connected() { - TrackDeleteService service = trackDeleteServiceConnection.getServiceIfBound(); - if (service == null) { - return; - } + public void connected(TrackDeleteService service) { service.getDeletingStatusObservable().observe(AbstractTrackDeleteActivity.this, this::onTrackDeleteStatus); } } diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackDeleteServiceConnection.java b/src/main/java/de/dennisguse/opentracks/services/TrackDeleteServiceConnection.java index b34a3be29..fbbb28b85 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackDeleteServiceConnection.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackDeleteServiceConnection.java @@ -27,7 +27,7 @@ public class TrackDeleteServiceConnection implements ServiceConnection { @Override public void onServiceConnected(ComponentName name, IBinder service) { trackDeleteService = ((TrackDeleteService.Binder) service).getService(); - listener.connected(); + listener.connected(trackDeleteService); } @Override @@ -60,11 +60,7 @@ public class TrackDeleteServiceConnection implements ServiceConnection { trackDeleteService = null; } - public TrackDeleteService getServiceIfBound() { - return trackDeleteService; - } - public interface Listener { - void connected(); + void connected(@NonNull TrackDeleteService service); } }