From e6e009ba1491ca3f8589fbb26242f8eeabdeaea1 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Thu, 29 Jan 2026 18:38:51 +0100 Subject: [PATCH] GainManager should only re-connect if sensor should be changed. --- .../de/dennisguse/opentracks/sensors/SensorHandler.java | 8 ++------ .../de/dennisguse/opentracks/sensors/SensorManager.java | 4 ++++ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/sensors/SensorHandler.java b/src/main/java/de/dennisguse/opentracks/sensors/SensorHandler.java index 32cbf1d7e..e4b93037c 100644 --- a/src/main/java/de/dennisguse/opentracks/sensors/SensorHandler.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/SensorHandler.java @@ -1,7 +1,6 @@ package de.dennisguse.opentracks.sensors; import android.content.Context; -import android.content.SharedPreferences; import android.os.Handler; import androidx.annotation.NonNull; @@ -17,8 +16,6 @@ public abstract class SensorHandler { private final SensorManager sensorManager; - private final SharedPreferences.OnSharedPreferenceChangeListener sharedPreferenceChangeListener = (sharedPreferences, key) -> connect(); - private Context context; private Handler handler; private Driver driver; @@ -48,7 +45,6 @@ public abstract class SensorHandler { } }; - protected SensorHandler(SensorManager sensorManager) { this.sensorManager = sensorManager; } @@ -57,13 +53,11 @@ public abstract class SensorHandler { void start(Context context, Handler handler) { this.context = context; this.handler = handler; - PreferencesUtils.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener); } void stop() { this.context = null; this.handler = null; - PreferencesUtils.unregisterOnSharedPreferenceChangeListener(sharedPreferenceChangeListener); disconnect(); } @@ -109,6 +103,8 @@ public abstract class SensorHandler { @NonNull protected abstract Aggregator createAggregator(); + protected abstract int getSensorPreferenceKey(); + protected Context getContext() { return context; } diff --git a/src/main/java/de/dennisguse/opentracks/sensors/SensorManager.java b/src/main/java/de/dennisguse/opentracks/sensors/SensorManager.java index 3e1f78276..f7206fd74 100644 --- a/src/main/java/de/dennisguse/opentracks/sensors/SensorManager.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/SensorManager.java @@ -167,6 +167,10 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange if (gpsManager != null) { gpsManager.onSharedPreferenceChanged(sharedPreferences, key); + if (PreferencesUtils.isKey(altitudeSumManager.getSensorPreferenceKey(), key)) { + altitudeSumManager.connect(); + } + if (PreferencesUtils.isKey(R.string.settings_sensor_bluetooth_heart_rate_key, key)) { String address = PreferencesUtils.getBluetoothHeartRateSensorAddress(); connect(heartRateManager, address);