GainManager should only re-connect if sensor should be changed.

This commit is contained in:
Dennis Guse
2026-01-29 18:38:51 +01:00
parent f8aa456549
commit e6e009ba14
2 changed files with 6 additions and 6 deletions
@@ -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<T> {
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<T> {
}
};
protected SensorHandler(SensorManager sensorManager) {
this.sensorManager = sensorManager;
}
@@ -57,13 +53,11 @@ public abstract class SensorHandler<T> {
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<T> {
@NonNull
protected abstract Aggregator<T, ?> createAggregator();
protected abstract int getSensorPreferenceKey();
protected Context getContext() {
return context;
}
@@ -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);