From 719bb981ec18fccfe9c42b7133f0f716e92b0717 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Wed, 17 Aug 2022 18:34:42 +0200 Subject: [PATCH] Bugfix: Public API stop does not start service in foreground. Fixes #1354. --- .../opentracks/publicapi/AbstractAPIActivity.java | 6 +++++- .../de/dennisguse/opentracks/publicapi/StartRecording.java | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/dennisguse/opentracks/publicapi/AbstractAPIActivity.java b/src/main/java/de/dennisguse/opentracks/publicapi/AbstractAPIActivity.java index 6157af87b..a4f6a72a8 100644 --- a/src/main/java/de/dennisguse/opentracks/publicapi/AbstractAPIActivity.java +++ b/src/main/java/de/dennisguse/opentracks/publicapi/AbstractAPIActivity.java @@ -34,7 +34,7 @@ public abstract class AbstractAPIActivity extends AppCompatActivity { if (PreferencesUtils.isPublicAPIenabled()) { Log.i(TAG, "Received and trying to execute requested action."); new TrackRecordingServiceConnection(serviceConnectedCallback) - .startAndBind(this, true); + .startAndBind(this, isStartServiceForeground()); } else { Toast.makeText(this, getString(R.string.settings_public_api_disabled_toast), Toast.LENGTH_LONG).show(); Log.w(TAG, "Public API is disabled; ignoring request."); @@ -42,6 +42,10 @@ public abstract class AbstractAPIActivity extends AppCompatActivity { } } + protected boolean isStartServiceForeground() { + return false; + } + protected abstract void execute(TrackRecordingService service); protected abstract boolean isPostExecuteStopService(); diff --git a/src/main/java/de/dennisguse/opentracks/publicapi/StartRecording.java b/src/main/java/de/dennisguse/opentracks/publicapi/StartRecording.java index c904e1c5b..5009663d5 100644 --- a/src/main/java/de/dennisguse/opentracks/publicapi/StartRecording.java +++ b/src/main/java/de/dennisguse/opentracks/publicapi/StartRecording.java @@ -57,4 +57,9 @@ public class StartRecording extends AbstractAPIActivity { protected boolean isPostExecuteStopService() { return false; } + + @Override + protected boolean isStartServiceForeground() { + return true; + } }