forked from upstream-mirrors/OpenTracks
Cleanup: SensorStatistics is a record.
This commit is contained in:
+30
-30
@@ -986,13 +986,13 @@ public class CustomContentProviderUtilsTest {
|
|||||||
|
|
||||||
// then
|
// then
|
||||||
assertTrue(sensorStatistics.hasHeartRate());
|
assertTrue(sensorStatistics.hasHeartRate());
|
||||||
assertEquals(sensorStatistics.getAvgHeartRate().getBPM(), stats.avgHr, 0f);
|
assertEquals(sensorStatistics.avgHeartRate().getBPM(), stats.avgHr, 0f);
|
||||||
assertEquals(sensorStatistics.getMaxHeartRate().getBPM(), stats.maxHr, 0f);
|
assertEquals(sensorStatistics.maxHeartRate().getBPM(), stats.maxHr, 0f);
|
||||||
assertTrue(sensorStatistics.hasCadence());
|
assertTrue(sensorStatistics.hasCadence());
|
||||||
assertEquals(sensorStatistics.getAvgCadence().getRPM(), stats.avgCadence, 0f);
|
assertEquals(sensorStatistics.avgCadence().getRPM(), stats.avgCadence, 0f);
|
||||||
assertEquals(sensorStatistics.getMaxCadence().getRPM(), stats.maxCadence, 0f);
|
assertEquals(sensorStatistics.maxCadence().getRPM(), stats.maxCadence, 0f);
|
||||||
assertTrue(sensorStatistics.hasPower());
|
assertTrue(sensorStatistics.hasPower());
|
||||||
assertEquals(sensorStatistics.getAvgPower().getW(), stats.avgPower, 0f);
|
assertEquals(sensorStatistics.avgPower().getW(), stats.avgPower, 0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -1018,8 +1018,8 @@ public class CustomContentProviderUtilsTest {
|
|||||||
|
|
||||||
// then
|
// then
|
||||||
assertTrue(sensorStatistics.hasHeartRate());
|
assertTrue(sensorStatistics.hasHeartRate());
|
||||||
assertEquals(sensorStatistics.getAvgHeartRate().getBPM(), stats.avgHr, 0f);
|
assertEquals(sensorStatistics.avgHeartRate().getBPM(), stats.avgHr, 0f);
|
||||||
assertEquals(sensorStatistics.getMaxHeartRate().getBPM(), stats.maxHr, 0f);
|
assertEquals(sensorStatistics.maxHeartRate().getBPM(), stats.maxHr, 0f);
|
||||||
assertFalse(sensorStatistics.hasCadence());
|
assertFalse(sensorStatistics.hasCadence());
|
||||||
assertFalse(sensorStatistics.hasPower());
|
assertFalse(sensorStatistics.hasPower());
|
||||||
}
|
}
|
||||||
@@ -1048,8 +1048,8 @@ public class CustomContentProviderUtilsTest {
|
|||||||
// then
|
// then
|
||||||
assertFalse(sensorStatistics.hasHeartRate());
|
assertFalse(sensorStatistics.hasHeartRate());
|
||||||
assertTrue(sensorStatistics.hasCadence());
|
assertTrue(sensorStatistics.hasCadence());
|
||||||
assertEquals(sensorStatistics.getAvgCadence().getRPM(), stats.avgCadence, 0f);
|
assertEquals(sensorStatistics.avgCadence().getRPM(), stats.avgCadence, 0f);
|
||||||
assertEquals(sensorStatistics.getMaxCadence().getRPM(), stats.maxCadence, 0f);
|
assertEquals(sensorStatistics.maxCadence().getRPM(), stats.maxCadence, 0f);
|
||||||
assertFalse(sensorStatistics.hasPower());
|
assertFalse(sensorStatistics.hasPower());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1078,7 +1078,7 @@ public class CustomContentProviderUtilsTest {
|
|||||||
assertFalse(sensorStatistics.hasHeartRate());
|
assertFalse(sensorStatistics.hasHeartRate());
|
||||||
assertFalse(sensorStatistics.hasCadence());
|
assertFalse(sensorStatistics.hasCadence());
|
||||||
assertTrue(sensorStatistics.hasPower());
|
assertTrue(sensorStatistics.hasPower());
|
||||||
assertEquals(sensorStatistics.getAvgPower().getW(), stats.avgPower, 0f);
|
assertEquals(sensorStatistics.avgPower().getW(), stats.avgPower, 0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -1111,11 +1111,11 @@ public class CustomContentProviderUtilsTest {
|
|||||||
TestSensorDataUtil.SensorDataStats stats = sensorDataUtil.computeStats();
|
TestSensorDataUtil.SensorDataStats stats = sensorDataUtil.computeStats();
|
||||||
|
|
||||||
// then
|
// then
|
||||||
assertEquals(sensorStatistics.getAvgHeartRate().getBPM(), stats.avgHr, 0f);
|
assertEquals(sensorStatistics.avgHeartRate().getBPM(), stats.avgHr, 0f);
|
||||||
assertEquals(sensorStatistics.getMaxHeartRate().getBPM(), stats.maxHr, 0f);
|
assertEquals(sensorStatistics.maxHeartRate().getBPM(), stats.maxHr, 0f);
|
||||||
assertEquals(sensorStatistics.getAvgCadence().getRPM(), stats.avgCadence, 0f);
|
assertEquals(sensorStatistics.avgCadence().getRPM(), stats.avgCadence, 0f);
|
||||||
assertEquals(sensorStatistics.getMaxCadence().getRPM(), stats.maxCadence, 0f);
|
assertEquals(sensorStatistics.maxCadence().getRPM(), stats.maxCadence, 0f);
|
||||||
assertEquals(sensorStatistics.getAvgPower().getW(), stats.avgPower, 0f);
|
assertEquals(sensorStatistics.avgPower().getW(), stats.avgPower, 0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -1156,11 +1156,11 @@ public class CustomContentProviderUtilsTest {
|
|||||||
TestSensorDataUtil.SensorDataStats stats = sensorDataUtil.computeStats();
|
TestSensorDataUtil.SensorDataStats stats = sensorDataUtil.computeStats();
|
||||||
|
|
||||||
// then
|
// then
|
||||||
assertEquals(sensorStatistics.getAvgHeartRate().getBPM(), stats.avgHr, 0f);
|
assertEquals(sensorStatistics.avgHeartRate().getBPM(), stats.avgHr, 0f);
|
||||||
assertEquals(sensorStatistics.getMaxHeartRate().getBPM(), stats.maxHr, 0f);
|
assertEquals(sensorStatistics.maxHeartRate().getBPM(), stats.maxHr, 0f);
|
||||||
assertEquals(sensorStatistics.getAvgCadence().getRPM(), stats.avgCadence, 0f);
|
assertEquals(sensorStatistics.avgCadence().getRPM(), stats.avgCadence, 0f);
|
||||||
assertEquals(sensorStatistics.getMaxCadence().getRPM(), stats.maxCadence, 0f);
|
assertEquals(sensorStatistics.maxCadence().getRPM(), stats.maxCadence, 0f);
|
||||||
assertEquals(sensorStatistics.getAvgPower().getW(), stats.avgPower, 0f);
|
assertEquals(sensorStatistics.avgPower().getW(), stats.avgPower, 0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -1201,11 +1201,11 @@ public class CustomContentProviderUtilsTest {
|
|||||||
TestSensorDataUtil.SensorDataStats stats = sensorDataUtil.computeStats();
|
TestSensorDataUtil.SensorDataStats stats = sensorDataUtil.computeStats();
|
||||||
|
|
||||||
// then
|
// then
|
||||||
assertEquals(sensorStatistics.getAvgHeartRate().getBPM(), stats.avgHr, 0f);
|
assertEquals(sensorStatistics.avgHeartRate().getBPM(), stats.avgHr, 0f);
|
||||||
assertEquals(sensorStatistics.getMaxHeartRate().getBPM(), stats.maxHr, 0f);
|
assertEquals(sensorStatistics.maxHeartRate().getBPM(), stats.maxHr, 0f);
|
||||||
assertEquals(sensorStatistics.getAvgCadence().getRPM(), stats.avgCadence, 0f);
|
assertEquals(sensorStatistics.avgCadence().getRPM(), stats.avgCadence, 0f);
|
||||||
assertEquals(sensorStatistics.getMaxCadence().getRPM(), stats.maxCadence, 0f);
|
assertEquals(sensorStatistics.maxCadence().getRPM(), stats.maxCadence, 0f);
|
||||||
assertEquals(sensorStatistics.getAvgPower().getW(), stats.avgPower, 0f);
|
assertEquals(sensorStatistics.avgPower().getW(), stats.avgPower, 0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void testGetSensorStats_randomData(int totalPoints, boolean withStartSegments) {
|
private void testGetSensorStats_randomData(int totalPoints, boolean withStartSegments) {
|
||||||
@@ -1232,11 +1232,11 @@ public class CustomContentProviderUtilsTest {
|
|||||||
TestSensorDataUtil.SensorDataStats stats = sensorDataUtil.computeStats();
|
TestSensorDataUtil.SensorDataStats stats = sensorDataUtil.computeStats();
|
||||||
|
|
||||||
// then
|
// then
|
||||||
assertEquals(sensorStatistics.getAvgHeartRate().getBPM(), stats.avgHr, 0.01f);
|
assertEquals(sensorStatistics.avgHeartRate().getBPM(), stats.avgHr, 0.01f);
|
||||||
assertEquals(sensorStatistics.getMaxHeartRate().getBPM(), stats.maxHr, 0.01f);
|
assertEquals(sensorStatistics.maxHeartRate().getBPM(), stats.maxHr, 0.01f);
|
||||||
assertEquals(sensorStatistics.getAvgCadence().getRPM(), stats.avgCadence, 0.01f);
|
assertEquals(sensorStatistics.avgCadence().getRPM(), stats.avgCadence, 0.01f);
|
||||||
assertEquals(sensorStatistics.getMaxCadence().getRPM(), stats.maxCadence, 0.01f);
|
assertEquals(sensorStatistics.maxCadence().getRPM(), stats.maxCadence, 0.01f);
|
||||||
assertEquals(sensorStatistics.getAvgPower().getW(), stats.avgPower, 0.01f);
|
assertEquals(sensorStatistics.avgPower().getW(), stats.avgPower, 0.01f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
@@ -254,24 +254,24 @@ public class StatisticsRecordedFragment extends Fragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (sensorStatistics.hasHeartRate()) {
|
if (sensorStatistics.hasHeartRate()) {
|
||||||
String maxBPM = String.valueOf(Math.round(sensorStatistics.getMaxHeartRate().getBPM()));
|
String maxBPM = String.valueOf(Math.round(sensorStatistics.maxHeartRate().getBPM()));
|
||||||
String avgBPM = String.valueOf(Math.round(sensorStatistics.getAvgHeartRate().getBPM()));
|
String avgBPM = String.valueOf(Math.round(sensorStatistics.avgHeartRate().getBPM()));
|
||||||
|
|
||||||
viewBinding.statsHeartRateGroup.setVisibility(View.VISIBLE);
|
viewBinding.statsHeartRateGroup.setVisibility(View.VISIBLE);
|
||||||
viewBinding.statsMaxHeartRateValue.setText(maxBPM);
|
viewBinding.statsMaxHeartRateValue.setText(maxBPM);
|
||||||
viewBinding.statsAvgHeartRateValue.setText(avgBPM);
|
viewBinding.statsAvgHeartRateValue.setText(avgBPM);
|
||||||
}
|
}
|
||||||
if (sensorStatistics.hasCadence()) {
|
if (sensorStatistics.hasCadence()) {
|
||||||
String maxRPM = String.valueOf(Math.round(sensorStatistics.getMaxCadence().getRPM()));
|
String maxRPM = String.valueOf(Math.round(sensorStatistics.maxCadence().getRPM()));
|
||||||
String avgRPM = String.valueOf(Math.round(sensorStatistics.getAvgCadence().getRPM()));
|
String avgRPM = String.valueOf(Math.round(sensorStatistics.avgCadence().getRPM()));
|
||||||
|
|
||||||
viewBinding.statsCadenceGroup.setVisibility(View.VISIBLE);
|
viewBinding.statsCadenceGroup.setVisibility(View.VISIBLE);
|
||||||
viewBinding.statsMaxCadenceValue.setText(maxRPM);
|
viewBinding.statsMaxCadenceValue.setText(maxRPM);
|
||||||
viewBinding.statsAvgCadenceValue.setText(avgRPM);
|
viewBinding.statsAvgCadenceValue.setText(avgRPM);
|
||||||
}
|
}
|
||||||
if (sensorStatistics.hasPower()) {
|
if (sensorStatistics.hasPower()) {
|
||||||
String maxW = String.valueOf(Math.round(sensorStatistics.getMaxPower().getW()));
|
String maxW = String.valueOf(Math.round(sensorStatistics.maxPower().getW()));
|
||||||
String avgW = String.valueOf(Math.round(sensorStatistics.getAvgPower().getW()));
|
String avgW = String.valueOf(Math.round(sensorStatistics.avgPower().getW()));
|
||||||
|
|
||||||
viewBinding.statsPowerGroup.setVisibility(View.VISIBLE);
|
viewBinding.statsPowerGroup.setVisibility(View.VISIBLE);
|
||||||
viewBinding.statsMaxPowerValue.setText(maxW);
|
viewBinding.statsMaxPowerValue.setText(maxW);
|
||||||
|
|||||||
+1
-1
@@ -138,7 +138,7 @@ class VoiceAnnouncementUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (shouldVoiceAnnounceAverageHeartRate() && sensorStatistics != null && sensorStatistics.hasHeartRate()) {
|
if (shouldVoiceAnnounceAverageHeartRate() && sensorStatistics != null && sensorStatistics.hasHeartRate()) {
|
||||||
int averageHeartRate = Math.round(sensorStatistics.getAvgHeartRate().getBPM());
|
int averageHeartRate = Math.round(sensorStatistics.avgHeartRate().getBPM());
|
||||||
|
|
||||||
builder.append(" ")
|
builder.append(" ")
|
||||||
.append(context.getString(R.string.average_heart_rate));
|
.append(context.getString(R.string.average_heart_rate));
|
||||||
|
|||||||
@@ -4,56 +4,24 @@ import de.dennisguse.opentracks.data.models.Cadence;
|
|||||||
import de.dennisguse.opentracks.data.models.HeartRate;
|
import de.dennisguse.opentracks.data.models.HeartRate;
|
||||||
import de.dennisguse.opentracks.data.models.Power;
|
import de.dennisguse.opentracks.data.models.Power;
|
||||||
|
|
||||||
public class SensorStatistics {
|
public record SensorStatistics(
|
||||||
private final HeartRate maxHr;
|
HeartRate maxHeartRate,
|
||||||
private final HeartRate avgHr;
|
HeartRate avgHeartRate,
|
||||||
private final Cadence maxCadence;
|
Cadence maxCadence,
|
||||||
private final Cadence avgCadence;
|
Cadence avgCadence,
|
||||||
private final Power maxPower;
|
Power maxPower,
|
||||||
private final Power avgPower;
|
Power avgPower
|
||||||
|
) {
|
||||||
public SensorStatistics(HeartRate maxHr, HeartRate avgHr, Cadence maxCadence, Cadence avgCadence, Power maxPower, Power avgPower) {
|
|
||||||
this.maxHr = maxHr;
|
|
||||||
this.avgHr = avgHr;
|
|
||||||
this.maxCadence = maxCadence;
|
|
||||||
this.avgCadence = avgCadence;
|
|
||||||
this.maxPower = maxPower;
|
|
||||||
this.avgPower = avgPower;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean hasHeartRate() {
|
public boolean hasHeartRate() {
|
||||||
return avgHr != null && maxHr != null;
|
return avgHeartRate != null && maxHeartRate != null;
|
||||||
}
|
|
||||||
|
|
||||||
public HeartRate getMaxHeartRate() {
|
|
||||||
return maxHr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public HeartRate getAvgHeartRate() {
|
|
||||||
return avgHr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasCadence() {
|
public boolean hasCadence() {
|
||||||
return avgCadence != null && maxCadence != null;
|
return avgCadence != null && maxCadence != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Cadence getMaxCadence() {
|
|
||||||
return maxCadence;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Cadence getAvgCadence() {
|
|
||||||
return avgCadence;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean hasPower() {
|
public boolean hasPower() {
|
||||||
return avgPower != null;
|
return avgPower != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Power getMaxPower() {
|
|
||||||
return maxPower;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Power getAvgPower() {
|
|
||||||
return avgPower;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user