forked from upstream-mirrors/OpenTracks
GainManager should only re-connect if sensor should be changed.
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user