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;
|
package de.dennisguse.opentracks.sensors;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
@@ -17,8 +16,6 @@ public abstract class SensorHandler<T> {
|
|||||||
|
|
||||||
private final SensorManager sensorManager;
|
private final SensorManager sensorManager;
|
||||||
|
|
||||||
private final SharedPreferences.OnSharedPreferenceChangeListener sharedPreferenceChangeListener = (sharedPreferences, key) -> connect();
|
|
||||||
|
|
||||||
private Context context;
|
private Context context;
|
||||||
private Handler handler;
|
private Handler handler;
|
||||||
private Driver driver;
|
private Driver driver;
|
||||||
@@ -48,7 +45,6 @@ public abstract class SensorHandler<T> {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
protected SensorHandler(SensorManager sensorManager) {
|
protected SensorHandler(SensorManager sensorManager) {
|
||||||
this.sensorManager = sensorManager;
|
this.sensorManager = sensorManager;
|
||||||
}
|
}
|
||||||
@@ -57,13 +53,11 @@ public abstract class SensorHandler<T> {
|
|||||||
void start(Context context, Handler handler) {
|
void start(Context context, Handler handler) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
this.handler = handler;
|
this.handler = handler;
|
||||||
PreferencesUtils.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void stop() {
|
void stop() {
|
||||||
this.context = null;
|
this.context = null;
|
||||||
this.handler = null;
|
this.handler = null;
|
||||||
PreferencesUtils.unregisterOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
|
||||||
|
|
||||||
disconnect();
|
disconnect();
|
||||||
}
|
}
|
||||||
@@ -109,6 +103,8 @@ public abstract class SensorHandler<T> {
|
|||||||
@NonNull
|
@NonNull
|
||||||
protected abstract Aggregator<T, ?> createAggregator();
|
protected abstract Aggregator<T, ?> createAggregator();
|
||||||
|
|
||||||
|
protected abstract int getSensorPreferenceKey();
|
||||||
|
|
||||||
protected Context getContext() {
|
protected Context getContext() {
|
||||||
return context;
|
return context;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -167,6 +167,10 @@ public class SensorManager implements SharedPreferences.OnSharedPreferenceChange
|
|||||||
if (gpsManager != null) {
|
if (gpsManager != null) {
|
||||||
gpsManager.onSharedPreferenceChanged(sharedPreferences, key);
|
gpsManager.onSharedPreferenceChanged(sharedPreferences, key);
|
||||||
|
|
||||||
|
if (PreferencesUtils.isKey(altitudeSumManager.getSensorPreferenceKey(), key)) {
|
||||||
|
altitudeSumManager.connect();
|
||||||
|
}
|
||||||
|
|
||||||
if (PreferencesUtils.isKey(R.string.settings_sensor_bluetooth_heart_rate_key, key)) {
|
if (PreferencesUtils.isKey(R.string.settings_sensor_bluetooth_heart_rate_key, key)) {
|
||||||
String address = PreferencesUtils.getBluetoothHeartRateSensorAddress();
|
String address = PreferencesUtils.getBluetoothHeartRateSensorAddress();
|
||||||
connect(heartRateManager, address);
|
connect(heartRateManager, address);
|
||||||
|
|||||||
Reference in New Issue
Block a user