This commit is contained in:
Dennis Guse
2021-03-11 21:16:24 +01:00
parent 14e63a1a54
commit 29b522b8a2
4 changed files with 14 additions and 15 deletions
@@ -7,8 +7,8 @@ import java.util.List;
public class TestSensorDataUtil { public class TestSensorDataUtil {
private List<TrackPoint> trackPointList = new ArrayList<>(); private final List<TrackPoint> trackPointList = new ArrayList<>();
private List<SensorData> sensorDataList = new ArrayList<>(); private final List<SensorData> sensorDataList = new ArrayList<>();
public void add(Instant time, Float hr, Float cadence, Float power, TrackPoint.Type type) { public void add(Instant time, Float hr, Float cadence, Float power, TrackPoint.Type type) {
sensorDataList.add(new TestSensorDataUtil.SensorData(time, hr, cadence, power, type)); sensorDataList.add(new TestSensorDataUtil.SensorData(time, hr, cadence, power, type));
@@ -33,7 +33,7 @@ public class TestSensorDataUtil {
} }
public SensorDataStats computeStats() { public SensorDataStats computeStats() {
if (sensorDataList == null || sensorDataList.size() <= 1) { if (sensorDataList.size() <= 1) {
return null; return null;
} }
@@ -49,9 +49,9 @@ public class TestSensorDataUtil {
if (dataPrev.type != TrackPoint.Type.SEGMENT_START_MANUAL) { if (dataPrev.type != TrackPoint.Type.SEGMENT_START_MANUAL) {
timeElapsed = dataCurrent.type != TrackPoint.Type.SEGMENT_START_MANUAL ? dataCurrent.time.getEpochSecond() - dataPrev.time.getEpochSecond() : 0; timeElapsed = dataCurrent.type != TrackPoint.Type.SEGMENT_START_MANUAL ? dataCurrent.time.getEpochSecond() - dataPrev.time.getEpochSecond() : 0;
stats.avgHr += (dataPrev.hr * timeElapsed); stats.avgHr += (dataPrev.hr * timeElapsed);
stats.maxHr = dataPrev.hr > stats.maxHr ? dataPrev.hr : stats.maxHr; stats.maxHr = Math.max(dataPrev.hr, stats.maxHr);
stats.avgCadence += (dataPrev.cadence * timeElapsed); stats.avgCadence += (dataPrev.cadence * timeElapsed);
stats.maxCadence = dataPrev.cadence > stats.maxCadence ? dataPrev.cadence : stats.maxCadence; stats.maxCadence = Math.max(dataPrev.cadence, stats.maxCadence);
stats.avgPower += (dataPrev.power * timeElapsed); stats.avgPower += (dataPrev.power * timeElapsed);
movingTime += timeElapsed; movingTime += timeElapsed;
@@ -67,11 +67,11 @@ public class TestSensorDataUtil {
} }
private static class SensorData { private static class SensorData {
Instant time; final Instant time;
float hr; final float hr;
float cadence; final float cadence;
float power; final float power;
TrackPoint.Type type; final TrackPoint.Type type;
public SensorData(Instant time, Float hr, Float cadence, Float power, TrackPoint.Type type) { public SensorData(Instant time, Float hr, Float cadence, Float power, TrackPoint.Type type) {
this.time = time; this.time = time;
@@ -34,7 +34,7 @@ public class MarkerResourceCursorAdapter extends ResourceCursorAdapter implement
private final Activity activity; private final Activity activity;
//TODO Should be Marker.Id //TODO Should be Marker.Id
private final ExecutorListViewService executorService = new ExecutorListViewService<Long>(LIST_PREFERRED_ITEM_HEIGHT_DEFAULT); private final ExecutorListViewService<Long> executorService = new ExecutorListViewService<Long>(LIST_PREFERRED_ITEM_HEIGHT_DEFAULT);
private boolean scroll = false; private boolean scroll = false;
@@ -259,8 +259,7 @@ public class CustomContentProvider extends ContentProvider {
break; break;
case TRACKS_SENSOR_STATS: case TRACKS_SENSOR_STATS:
long trackId = ContentUris.parseId(url); long trackId = ContentUris.parseId(url);
Cursor cursor = db.rawQuery(SENSOR_STATS_QUERY, new String[]{String.valueOf(trackId), String.valueOf(trackId)}); return db.rawQuery(SENSOR_STATS_QUERY, new String[]{String.valueOf(trackId), String.valueOf(trackId)});
return cursor;
case MARKERS: case MARKERS:
queryBuilder.setTables(MarkerColumns.TABLE_NAME); queryBuilder.setTables(MarkerColumns.TABLE_NAME);
sortOrder = sort != null ? sort : MarkerColumns.DEFAULT_SORT_ORDER; sortOrder = sort != null ? sort : MarkerColumns.DEFAULT_SORT_ORDER;
@@ -19,9 +19,9 @@ public class SensorDataModel {
this.sensorValue = StringUtils.formatDecimal(sensorValue, 0); this.sensorValue = StringUtils.formatDecimal(sensorValue, 0);
} }
public SensorDataModel(SensorData sensorData) { public SensorDataModel(SensorData<Float> sensorData) {
this.sensorName = sensorData.getSensorNameOrAddress(); this.sensorName = sensorData.getSensorNameOrAddress();
this.sensorValue = sensorData.hasValue() && sensorData.isRecent() ? StringUtils.formatDecimal((float) sensorData.getValue(), 0) : null; this.sensorValue = sensorData.hasValue() && sensorData.isRecent() ? StringUtils.formatDecimal(sensorData.getValue(), 0) : null;
if (sensorData instanceof SensorDataHeartRate) { if (sensorData instanceof SensorDataHeartRate) {
this.labelId = R.string.sensor_state_heart_rate; this.labelId = R.string.sensor_state_heart_rate;
this.unitId = R.string.sensor_unit_beats_per_minute; this.unitId = R.string.sensor_unit_beats_per_minute;