Refactor: introduced SensorConnector interface.

This commit is contained in:
Dennis Guse
2022-12-19 23:02:29 +01:00
parent 13484685a3
commit e16780277f
6 changed files with 26 additions and 12 deletions
@@ -20,12 +20,13 @@ import java.time.Instant;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.data.models.Distance;
import de.dennisguse.opentracks.data.models.TrackPoint;
import de.dennisguse.opentracks.sensors.SensorConnector;
import de.dennisguse.opentracks.settings.PreferencesUtils;
import de.dennisguse.opentracks.util.LocationUtils;
import de.dennisguse.opentracks.util.PermissionRequester;
@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
public class GPSHandler implements LocationListenerCompat, GpsStatus.GpsStatusListener, SharedPreferences.OnSharedPreferenceChangeListener {
public class GPSHandler implements SensorConnector, LocationListenerCompat, GpsStatus.GpsStatusListener, SharedPreferences.OnSharedPreferenceChangeListener {
private final String TAG = GPSHandler.class.getSimpleName();
@@ -44,7 +45,7 @@ public class GPSHandler implements LocationListenerCompat, GpsStatus.GpsStatusLi
this.trackPointCreator = trackPointCreator;
}
public void onStart(@NonNull Context context, @NonNull Handler handler) {
public void start(@NonNull Context context, @NonNull Handler handler) {
this.context = context;
this.handler = handler;
@@ -61,7 +62,7 @@ public class GPSHandler implements LocationListenerCompat, GpsStatus.GpsStatusLi
@SuppressWarnings({"MissingPermission"})
//TODO upgrade to AGP7.0.0/API31 started complaining about removeUpdates.
public void onStop() {
public void stop(Context context) {
if (locationManager != null && context != null) {
if (PermissionRequester.GPS.hasPermission(context)) {
LocationManagerCompat.removeUpdates(locationManager, this);
@@ -52,12 +52,12 @@ public class TrackPointCreator implements BluetoothRemoteSensorManager.SensorDat
public synchronized void start(@NonNull Context context, @NonNull Handler handler) {
this.context = context;
gpsHandler.onStart(context, handler);
gpsHandler.start(context, handler);
remoteSensorManager = new BluetoothRemoteSensorManager(context, handler, this);
altitudeSumManager = new AltitudeSumManager();
remoteSensorManager.start();
remoteSensorManager.start(context, handler);
altitudeSumManager.start(context, handler);
}
@@ -94,10 +94,10 @@ public class TrackPointCreator implements BluetoothRemoteSensorManager.SensorDat
}
public synchronized void stop() {
gpsHandler.onStop();
gpsHandler.stop(context);
if (remoteSensorManager != null) {
remoteSensorManager.stop();
remoteSensorManager.stop(context);
remoteSensorManager = null;
}