From e3a8143d587b2f48087a5142631b0108317a119f Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Sat, 9 May 2020 20:54:29 +0200 Subject: [PATCH] Cleanup. --- .../content/sensor/SensorDataSet.java | 11 ----- .../opentracks/fragments/StatsFragment.java | 40 +++++++++---------- .../TrackRecordingServiceConnection.java | 8 ++-- .../sensors/BluetoothRemoteSensorManager.java | 3 +- 4 files changed, 27 insertions(+), 35 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataSet.java b/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataSet.java index 0d05c9c9d..cc24aafd9 100644 --- a/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataSet.java +++ b/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataSet.java @@ -4,9 +4,6 @@ import androidx.annotation.NonNull; import de.dennisguse.opentracks.content.data.TrackPoint; -/** - * - */ public final class SensorDataSet { private SensorDataHeartRate heartRate; @@ -31,10 +28,6 @@ public final class SensorDataSet { } public void set(SensorData data) { - if (data == null) { - return; - } - if (data instanceof SensorDataHeartRate) { this.heartRate = (SensorDataHeartRate) data; return; @@ -48,10 +41,6 @@ public final class SensorDataSet { this.cyclingSpeed = (SensorDataCycling.Speed) data; return; } - if (data instanceof SensorDataCycling.CadenceAndSpeed) { - set(((SensorDataCycling.CadenceAndSpeed) data).getCadence()); - set(((SensorDataCycling.CadenceAndSpeed) data).getSpeed()); - } throw new UnsupportedOperationException(); } diff --git a/src/main/java/de/dennisguse/opentracks/fragments/StatsFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/StatsFragment.java index 5ab72b4cd..8b9c3452f 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/StatsFragment.java +++ b/src/main/java/de/dennisguse/opentracks/fragments/StatsFragment.java @@ -40,6 +40,8 @@ import de.dennisguse.opentracks.content.TrackDataListener; import de.dennisguse.opentracks.content.data.Track; import de.dennisguse.opentracks.content.data.TrackPoint; import de.dennisguse.opentracks.content.data.Waypoint; +import de.dennisguse.opentracks.content.sensor.SensorDataCycling; +import de.dennisguse.opentracks.content.sensor.SensorDataHeartRate; import de.dennisguse.opentracks.content.sensor.SensorDataSet; import de.dennisguse.opentracks.services.TrackRecordingServiceConnection; import de.dennisguse.opentracks.services.TrackRecordingServiceInterface; @@ -59,15 +61,14 @@ import de.dennisguse.opentracks.util.UnitConversions; */ public class StatsFragment extends Fragment implements TrackDataListener { - private static final String STATS_FRAGMENT_TAG = StatsFragment.class.getSimpleName(); + private static final String TAG = StatsFragment.class.getSimpleName(); private static final long UI_UPDATE_INTERVAL = UnitConversions.ONE_SECOND_MS; private TrackDataHub trackDataHub; private Handler handlerUpdateUI; - //TODO Initialize immediately and remove in onDestroy() - private TrackRecordingServiceConnection trackRecordingServiceConnection; + private final TrackRecordingServiceConnection trackRecordingServiceConnection = new TrackRecordingServiceConnection(); private TrackPoint lastTrackPoint = null; private TrackStatistics lastTrackStatistics = null; @@ -96,9 +97,6 @@ public class StatsFragment extends Fragment implements TrackDataListener { if (PreferencesUtils.getRecordingTrackId(getContext()) != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT) { // A recording track id has been set -> Resumes track and starts timer. resumeTrackDataHub(); - if (trackRecordingServiceConnection == null) { - trackRecordingServiceConnection = new TrackRecordingServiceConnection(null); - } trackRecordingServiceConnection.startConnection(getContext()); handlerUpdateUI.post(updateUIeachSecond); @@ -248,7 +246,6 @@ public class StatsFragment extends Fragment implements TrackDataListener { resumeTrackDataHub(); PreferencesUtils.register(getContext(), sharedPreferenceChangeListener); - trackRecordingServiceConnection = new TrackRecordingServiceConnection(null); trackRecordingServiceConnection.startConnection(getContext()); handlerUpdateUI.post(updateUIeachSecond); @@ -266,10 +263,7 @@ public class StatsFragment extends Fragment implements TrackDataListener { @Override public void onStop() { super.onStop(); - if (trackRecordingServiceConnection != null) { - trackRecordingServiceConnection.unbind(getContext()); - } - trackRecordingServiceConnection = null; + trackRecordingServiceConnection.unbind(getContext()); } @Override @@ -442,7 +436,7 @@ public class StatsFragment extends Fragment implements TrackDataListener { SensorDataSet sensorDataSet = null; if (trackRecordingService == null) { - Log.d(STATS_FRAGMENT_TAG, "Cannot get the track recording service."); + Log.d(TAG, "Cannot get the track recording service."); } else { sensorDataSet = trackRecordingService.getSensorData(); } @@ -463,9 +457,11 @@ public class StatsFragment extends Fragment implements TrackDataListener { String sensorValue = getContext().getString(R.string.value_unknown); String sensorName = getContext().getString(R.string.value_unknown); if (sensorDataSet != null && sensorDataSet.getHeartRate() != null) { - sensorName = sensorDataSet.getHeartRate().getSensorName(); - if (sensorDataSet.getHeartRate().hasHeartRate_bpm() && sensorDataSet.getHeartRate().isRecent()) { - sensorValue = StringUtils.formatDecimal(sensorDataSet.getHeartRate().getHeartRate_bpm(), 0); + SensorDataHeartRate data = sensorDataSet.getHeartRate(); + + sensorName = data.getSensorName(); + if (data.hasHeartRate_bpm() && data.isRecent()) { + sensorValue = StringUtils.formatDecimal(data.getHeartRate_bpm(), 0); } } @@ -485,9 +481,11 @@ public class StatsFragment extends Fragment implements TrackDataListener { String sensorValue = getContext().getString(R.string.value_unknown); String sensorName = getContext().getString(R.string.value_unknown); if (sensorDataSet != null && sensorDataSet.getCyclingCadence() != null) { - sensorName = sensorDataSet.getCyclingCadence().getSensorName(); - if (sensorDataSet.getCyclingCadence().hasCadence_rpm() && sensorDataSet.getCyclingCadence().isRecent()) { - sensorValue = StringUtils.formatDecimal(sensorDataSet.getCyclingCadence().getCadence_rpm(), 0); + SensorDataCycling.Cadence data = sensorDataSet.getCyclingCadence(); + sensorName = data.getSensorName(); + + if (data.hasCadence_rpm() && data.isRecent()) { + sensorValue = StringUtils.formatDecimal(data.getCadence_rpm(), 0); } } @@ -499,8 +497,10 @@ public class StatsFragment extends Fragment implements TrackDataListener { private void setSpeedSensorData(SensorDataSet sensorDataSet, boolean isRecording) { if (isRecording) { if (sensorDataSet != null && sensorDataSet.getCyclingSpeed() != null) { - if (sensorDataSet.getCyclingSpeed().hasSpeed_mps() && sensorDataSet.getCyclingSpeed().isRecent()) { - setSpeed(sensorDataSet.getCyclingSpeed().getSpeed_mps()); + SensorDataCycling.Speed data = sensorDataSet.getCyclingSpeed(); + + if (data.hasSpeed_mps() && data.isRecent()) { + setSpeed(data.getSpeed_mps()); } } } diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceConnection.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceConnection.java index c6f394d55..9c4bffdc9 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceConnection.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceConnection.java @@ -51,12 +51,14 @@ public class TrackRecordingServiceConnection implements ServiceConnection, Death private TrackRecordingServiceInterface trackRecordingService; + public TrackRecordingServiceConnection() { + callback = null; + } + /** - * Constructor. - * * @param callback the callback to invoke when the service binding changes */ - public TrackRecordingServiceConnection(Runnable callback) { + public TrackRecordingServiceConnection(@NonNull Runnable callback) { this.callback = callback; } diff --git a/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothRemoteSensorManager.java b/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothRemoteSensorManager.java index cbffa48f1..4115fabbc 100644 --- a/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothRemoteSensorManager.java +++ b/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothRemoteSensorManager.java @@ -23,6 +23,7 @@ import android.content.SharedPreferences; import android.util.Log; import de.dennisguse.opentracks.R; +import de.dennisguse.opentracks.content.sensor.SensorData; import de.dennisguse.opentracks.content.sensor.SensorDataCycling; import de.dennisguse.opentracks.content.sensor.SensorDataSet; import de.dennisguse.opentracks.util.BluetoothUtils; @@ -148,7 +149,7 @@ public class BluetoothRemoteSensorManager implements BluetoothConnectionManager. } @Override - public synchronized void onChanged(de.dennisguse.opentracks.content.sensor.SensorData sensorData) { + public synchronized void onChanged(SensorData sensorData) { if (sensorData instanceof SensorDataCycling.Cadence) { if (sensorData.equals(sensorDataSet.getCyclingCadence())) { Log.d(TAG, "onChanged: cadence data repeated.");