forked from upstream-mirrors/OpenTracks
57 lines
1.9 KiB
Java
57 lines
1.9 KiB
Java
package de.dennisguse.opentracks.viewmodels;
|
|
|
|
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.SensorDataCyclingPower;
|
|
import de.dennisguse.opentracks.content.sensor.SensorDataHeartRate;
|
|
import de.dennisguse.opentracks.util.StringUtils;
|
|
|
|
public class SensorDataModel {
|
|
private int labelId;
|
|
private final String sensorValue;
|
|
private String sensorName;
|
|
private int unitId;
|
|
|
|
public SensorDataModel(int labelId, int unitId, float sensorValue) {
|
|
this.labelId = labelId;
|
|
this.unitId = unitId;
|
|
this.sensorValue = StringUtils.formatDecimal(sensorValue, 0);
|
|
}
|
|
|
|
public SensorDataModel(SensorData<Float> sensorData) {
|
|
this.sensorName = sensorData.getSensorNameOrAddress();
|
|
this.sensorValue = sensorData.hasValue() && sensorData.isRecent() ? StringUtils.formatDecimal(sensorData.getValue(), 0) : null;
|
|
if (sensorData instanceof SensorDataHeartRate) {
|
|
this.labelId = R.string.sensor_state_heart_rate;
|
|
this.unitId = R.string.sensor_unit_beats_per_minute;
|
|
} else if (sensorData instanceof SensorDataCycling.Cadence) {
|
|
this.labelId = R.string.sensor_state_cadence;
|
|
this.unitId = R.string.sensor_unit_rounds_per_minute;
|
|
} else if (sensorData instanceof SensorDataCyclingPower) {
|
|
this.labelId = R.string.sensor_state_power;
|
|
this.unitId = R.string.sensor_unit_power;
|
|
}
|
|
}
|
|
|
|
public int getLabelId() {
|
|
return labelId;
|
|
}
|
|
|
|
public int getUnitId() {
|
|
return unitId;
|
|
}
|
|
|
|
public String getSensorName() {
|
|
return sensorName;
|
|
}
|
|
|
|
public String getSensorValue() {
|
|
return sensorValue;
|
|
}
|
|
|
|
public boolean hasValue() {
|
|
return sensorValue != null;
|
|
}
|
|
}
|