From fdf4336a9bd56dad955d812f2c947474d4cca34f Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Sat, 27 Feb 2021 22:14:21 +0100 Subject: [PATCH] Cleanup. --- .../opentracks/MarkerEditActivity.java | 8 +++--- .../adapters/ExecutorListViewService.java | 5 ++-- .../adapters/ScrollVisibleViews.java | 2 +- .../opentracks/content/data/TrackPoint.java | 11 ++++++++ .../opentracks/content/sensor/SensorData.java | 2 +- .../content/sensor/SensorDataSet.java | 6 ++--- .../io/file/importer/ImportViewModel.java | 2 +- .../services/TrackRecordingService.java | 5 ++-- .../services/handlers/LocationHandler.java | 3 +-- .../opentracks/stats/SensorStatistics.java | 10 +++---- .../stats/TrackStatisticsUpdater.java | 5 ++-- .../opentracks/util/TrackPointUtils.java | 27 ------------------- .../viewmodels/SensorDataModel.java | 2 +- 13 files changed, 33 insertions(+), 55 deletions(-) delete mode 100644 src/main/java/de/dennisguse/opentracks/util/TrackPointUtils.java diff --git a/src/main/java/de/dennisguse/opentracks/MarkerEditActivity.java b/src/main/java/de/dennisguse/opentracks/MarkerEditActivity.java index a8f970a58..c9420c792 100644 --- a/src/main/java/de/dennisguse/opentracks/MarkerEditActivity.java +++ b/src/main/java/de/dennisguse/opentracks/MarkerEditActivity.java @@ -84,11 +84,9 @@ public class MarkerEditActivity extends AbstractActivity { // Setup UI elements ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.marker_types, android.R.layout.simple_dropdown_item_1line); viewBinding.markerEditMarkerType.setAdapter(adapter); - viewBinding.markerEditPhotoDelete.setOnClickListener(v -> { - viewModel.onPhotoDelete(viewBinding.markerEditName.getText().toString(), - viewBinding.markerEditMarkerType.getText().toString(), - viewBinding.markerEditDescription.getText().toString()); - }); + viewBinding.markerEditPhotoDelete.setOnClickListener(v -> viewModel.onPhotoDelete(viewBinding.markerEditName.getText().toString(), + viewBinding.markerEditMarkerType.getText().toString(), + viewBinding.markerEditDescription.getText().toString())); viewBinding.markerEditCancel.setOnClickListener(v -> { viewModel.onCancel(); diff --git a/src/main/java/de/dennisguse/opentracks/adapters/ExecutorListViewService.java b/src/main/java/de/dennisguse/opentracks/adapters/ExecutorListViewService.java index f4ccaa4c2..af78d9495 100644 --- a/src/main/java/de/dennisguse/opentracks/adapters/ExecutorListViewService.java +++ b/src/main/java/de/dennisguse/opentracks/adapters/ExecutorListViewService.java @@ -14,8 +14,8 @@ import java.util.concurrent.Future; */ class ExecutorListViewService { - private List enqueueObjects = new ArrayList<>(); - private ExecutorService executorService; + private final List enqueueObjects = new ArrayList<>(); + private final ExecutorService executorService; public ExecutorListViewService(int numThreads) { executorService = Executors.newFixedThreadPool(numThreads); @@ -23,7 +23,6 @@ class ExecutorListViewService { public void shutdown() { enqueueObjects.clear(); - enqueueObjects = null; executorService.shutdown(); } diff --git a/src/main/java/de/dennisguse/opentracks/adapters/ScrollVisibleViews.java b/src/main/java/de/dennisguse/opentracks/adapters/ScrollVisibleViews.java index 050fdc980..0dd041b14 100644 --- a/src/main/java/de/dennisguse/opentracks/adapters/ScrollVisibleViews.java +++ b/src/main/java/de/dennisguse/opentracks/adapters/ScrollVisibleViews.java @@ -12,7 +12,7 @@ public class ScrollVisibleViews implements AbsListView.OnScrollListener { private int from = -1; private int to = -1; - private VisibleViewsListener visibleViewsListener; + private final VisibleViewsListener visibleViewsListener; public ScrollVisibleViews(@NonNull VisibleViewsListener visibleViewsListener) { this.visibleViewsListener = visibleViewsListener; diff --git a/src/main/java/de/dennisguse/opentracks/content/data/TrackPoint.java b/src/main/java/de/dennisguse/opentracks/content/data/TrackPoint.java index 31b95898a..e9660daaf 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/TrackPoint.java +++ b/src/main/java/de/dennisguse/opentracks/content/data/TrackPoint.java @@ -45,6 +45,9 @@ public class TrackPoint { private static final Duration MAX_LOCATION_AGE = Duration.ofMinutes(1); + // Anything faster than that (in meters per second) will be considered moving. + private static final double MAX_NO_MOVEMENT_SPEED = 0.224; + private TrackPoint.Id id; private Instant time; @@ -279,6 +282,10 @@ public class TrackPoint { this.speed_mps = speed; } + public boolean isMoving() { + return hasSpeed() && getSpeed() >= MAX_NO_MOVEMENT_SPEED; + } + public boolean hasBearing() { return bearing != null; } @@ -307,6 +314,10 @@ public class TrackPoint { return getLocation().distanceTo(dest.getLocation()); } + public boolean fulfillsAccuracy(int poorAccuracy) { + return hasAccuracy() && accuracy < poorAccuracy; + } + public float bearingTo(@NonNull TrackPoint dest) { return getLocation().bearingTo(dest.getLocation()); } diff --git a/src/main/java/de/dennisguse/opentracks/content/sensor/SensorData.java b/src/main/java/de/dennisguse/opentracks/content/sensor/SensorData.java index 6f942c05e..5caff36ff 100644 --- a/src/main/java/de/dennisguse/opentracks/content/sensor/SensorData.java +++ b/src/main/java/de/dennisguse/opentracks/content/sensor/SensorData.java @@ -8,7 +8,7 @@ import java.time.Instant; import de.dennisguse.opentracks.services.sensors.BluetoothRemoteSensorManager; -public class SensorData { +public abstract class SensorData { protected T value; 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 414ede43f..7469e68c5 100644 --- a/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataSet.java +++ b/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataSet.java @@ -33,11 +33,11 @@ public final class SensorDataSet { return cyclingPower; } - public void set(SensorData data) { + public void set(SensorData data) { set(data, data); } - public void remove(SensorData type) { + public void remove(SensorData type) { set(type, null); } @@ -75,7 +75,7 @@ public final class SensorDataSet { + (getCyclingPower() != null ? " " + getCyclingPower() : ""); } - private void set(@NonNull SensorData type, SensorData data) { + private void set(@NonNull SensorData type, SensorData data) { if (type instanceof SensorDataHeartRate) { this.heartRate = (SensorDataHeartRate) data; return; diff --git a/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportViewModel.java b/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportViewModel.java index da16b2f57..74650fe40 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportViewModel.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportViewModel.java @@ -95,7 +95,7 @@ public class ImportViewModel extends AndroidViewModel implements ImportServiceRe private int successCount; private int existsCount; private int errorCount; - private ArrayList importedTrackIds = new ArrayList<>(); + private final ArrayList importedTrackIds = new ArrayList<>(); private final ArrayList fileErrors = new ArrayList<>(); public int getTotalCount() { diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java index 2cbf92534..00271f52b 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java @@ -66,7 +66,6 @@ import de.dennisguse.opentracks.util.PreferencesUtils; import de.dennisguse.opentracks.util.SystemUtils; import de.dennisguse.opentracks.util.TrackIconUtils; import de.dennisguse.opentracks.util.TrackNameUtils; -import de.dennisguse.opentracks.util.TrackPointUtils; /** * A background service that registers a location listener and records track points. @@ -594,7 +593,7 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand return; } - if (!isIdle && !TrackPointUtils.isMoving(trackPoint)) { + if (!isIdle && !trackPoint.isMoving()) { insertTrackPointIfNewer(track, lastTrackPoint); insertTrackPoint(track, trackPoint); @@ -605,7 +604,7 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand return; } - if (isIdle && TrackPointUtils.isMoving(trackPoint)) { + if (isIdle && trackPoint.isMoving()) { insertTrackPointIfNewer(track, lastTrackPoint); insertTrackPoint(track, trackPoint); diff --git a/src/main/java/de/dennisguse/opentracks/services/handlers/LocationHandler.java b/src/main/java/de/dennisguse/opentracks/services/handlers/LocationHandler.java index d8f5e7635..4efd699e8 100644 --- a/src/main/java/de/dennisguse/opentracks/services/handlers/LocationHandler.java +++ b/src/main/java/de/dennisguse/opentracks/services/handlers/LocationHandler.java @@ -16,7 +16,6 @@ import de.dennisguse.opentracks.R; import de.dennisguse.opentracks.content.data.TrackPoint; import de.dennisguse.opentracks.util.LocationUtils; import de.dennisguse.opentracks.util.PreferencesUtils; -import de.dennisguse.opentracks.util.TrackPointUtils; class LocationHandler implements HandlerServer.Handler, LocationListener, GpsStatus.GpsStatusListener { @@ -92,7 +91,7 @@ class LocationHandler implements HandlerServer.Handler, LocationListener, GpsSta @Override public void onLocationChanged(@NonNull Location location) { TrackPoint trackPoint = new TrackPoint(location); - boolean isAccurate = TrackPointUtils.fulfillsAccuracy(trackPoint, recordingGpsAccuracy); + boolean isAccurate = trackPoint.fulfillsAccuracy(recordingGpsAccuracy); boolean isValid = LocationUtils.isValidLocation(location); if (gpsStatus != null) { diff --git a/src/main/java/de/dennisguse/opentracks/stats/SensorStatistics.java b/src/main/java/de/dennisguse/opentracks/stats/SensorStatistics.java index 495bc2668..46b043f2d 100644 --- a/src/main/java/de/dennisguse/opentracks/stats/SensorStatistics.java +++ b/src/main/java/de/dennisguse/opentracks/stats/SensorStatistics.java @@ -1,11 +1,11 @@ package de.dennisguse.opentracks.stats; public class SensorStatistics { - private Float maxHr; - private Float avgHr; - private Float maxCadence; - private Float avgCadence; - private Float avgPower; + private final Float maxHr; + private final Float avgHr; + private final Float maxCadence; + private final Float avgCadence; + private final Float avgPower; public SensorStatistics(Float maxHr, Float avgHr, Float maxCadence, Float avgCadence, Float avgPower) { this.maxHr = maxHr; diff --git a/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java b/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java index 7558284db..f5b7f5f33 100644 --- a/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java +++ b/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java @@ -25,7 +25,6 @@ import java.time.Duration; import de.dennisguse.opentracks.content.data.TrackPoint; import de.dennisguse.opentracks.content.provider.TrackPointIterator; -import de.dennisguse.opentracks.util.TrackPointUtils; /** * Updater for {@link TrackStatistics}. @@ -161,7 +160,7 @@ public class TrackStatisticsUpdater { } double movingDistance = lastMovingTrackPoint.distanceTo(trackPoint); - if (movingDistance < minRecordingDistance && !TrackPointUtils.isMoving(trackPoint)) { + if (movingDistance < minRecordingDistance && !trackPoint.isMoving()) { speedBuffer_ms.reset(); lastTrackPoint = trackPoint; return; @@ -211,7 +210,7 @@ public class TrackStatisticsUpdater { */ @VisibleForTesting private void updateSpeed(@NonNull TrackPoint trackPoint, @NonNull TrackPoint lastTrackPoint) { - if (!TrackPointUtils.isMoving(trackPoint)) { + if (!trackPoint.isMoving()) { speedBuffer_ms.reset(); } else if (isValidSpeed(trackPoint, lastTrackPoint)) { speedBuffer_ms.setNext(trackPoint.getSpeed()); diff --git a/src/main/java/de/dennisguse/opentracks/util/TrackPointUtils.java b/src/main/java/de/dennisguse/opentracks/util/TrackPointUtils.java deleted file mode 100644 index d3bfc5f1f..000000000 --- a/src/main/java/de/dennisguse/opentracks/util/TrackPointUtils.java +++ /dev/null @@ -1,27 +0,0 @@ -package de.dennisguse.opentracks.util; - -import androidx.annotation.NonNull; - -import de.dennisguse.opentracks.content.data.TrackPoint; - -public class TrackPointUtils { - - // Anything faster than that (in meters per second) will be considered moving. - private static final double MAX_NO_MOVEMENT_SPEED = 0.224; - - private final static String TAG = TrackPointUtils.class.getSimpleName(); - - private TrackPointUtils() { - } - - public static boolean isMoving(@NonNull TrackPoint trackPoint) { - return trackPoint.hasSpeed() && trackPoint.getSpeed() >= MAX_NO_MOVEMENT_SPEED; - } - - /** - * Is accuracy better than threshold? - */ - public static boolean fulfillsAccuracy(@NonNull TrackPoint trackPoint, int poorAccuracy) { - return trackPoint.hasAccuracy() && trackPoint.getAccuracy() < poorAccuracy; - } -} diff --git a/src/main/java/de/dennisguse/opentracks/viewmodels/SensorDataModel.java b/src/main/java/de/dennisguse/opentracks/viewmodels/SensorDataModel.java index 3aa16b31e..dca6d5958 100644 --- a/src/main/java/de/dennisguse/opentracks/viewmodels/SensorDataModel.java +++ b/src/main/java/de/dennisguse/opentracks/viewmodels/SensorDataModel.java @@ -9,7 +9,7 @@ import de.dennisguse.opentracks.util.StringUtils; public class SensorDataModel { private int labelId; - private String sensorValue; + private final String sensorValue; private String sensorName; private int unitId;