forked from upstream-mirrors/OpenTracks
fix NPE at null barometer after unregister listener
This commit is contained in:
committed by
Dennis Guse
parent
fd914630d0
commit
5dbd17f3bb
@@ -13,7 +13,7 @@ import java.util.concurrent.TimeUnit;
|
|||||||
import de.dennisguse.opentracks.data.models.AtmosphericPressure;
|
import de.dennisguse.opentracks.data.models.AtmosphericPressure;
|
||||||
import de.dennisguse.opentracks.sensors.GainManager;
|
import de.dennisguse.opentracks.sensors.GainManager;
|
||||||
|
|
||||||
public class BarometerInternal {
|
public class BarometerInternal implements SensorEventListener {
|
||||||
|
|
||||||
private static final String TAG = BarometerInternal.class.getSimpleName();
|
private static final String TAG = BarometerInternal.class.getSimpleName();
|
||||||
|
|
||||||
@@ -21,22 +21,20 @@ public class BarometerInternal {
|
|||||||
|
|
||||||
private GainManager observer;
|
private GainManager observer;
|
||||||
|
|
||||||
private final SensorEventListener listener = new SensorEventListener() {
|
@Override
|
||||||
@Override
|
public void onSensorChanged(SensorEvent event) {
|
||||||
public void onSensorChanged(SensorEvent event) {
|
if (!isConnected()) {
|
||||||
if (!isConnected()) {
|
Log.w(TAG, "Not connected to sensor, cannot process data.");
|
||||||
Log.w(TAG, "Not connected to sensor, cannot process data.");
|
return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
observer.onSensorValueChanged(AtmosphericPressure.ofHPA(event.values[0]));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
observer.onSensorValueChanged(AtmosphericPressure.ofHPA(event.values[0]));
|
||||||
public void onAccuracyChanged(Sensor sensor, int accuracy) {
|
}
|
||||||
Log.w(TAG, "Sensor accuracy changes are (currently) ignored.");
|
|
||||||
}
|
@Override
|
||||||
};
|
public void onAccuracyChanged(Sensor sensor, int accuracy) {
|
||||||
|
Log.w(TAG, "Sensor accuracy changes are (currently) ignored.");
|
||||||
|
}
|
||||||
|
|
||||||
public void connect(Context context, Handler handler, GainManager observer) {
|
public void connect(Context context, Handler handler, GainManager observer) {
|
||||||
SensorManager sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
|
SensorManager sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
|
||||||
@@ -46,7 +44,7 @@ public class BarometerInternal {
|
|||||||
this.observer = null;
|
this.observer = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sensorManager.registerListener(listener, pressureSensor, SAMPLING_PERIOD, handler)) {
|
if (sensorManager.registerListener(this, pressureSensor, SAMPLING_PERIOD, handler)) {
|
||||||
this.observer = observer;
|
this.observer = observer;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -56,7 +54,7 @@ public class BarometerInternal {
|
|||||||
|
|
||||||
public void disconnect(Context context) {
|
public void disconnect(Context context) {
|
||||||
SensorManager sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
|
SensorManager sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
|
||||||
sensorManager.unregisterListener(listener);
|
sensorManager.unregisterListener(this);
|
||||||
observer = null;
|
observer = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user