mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
Huawei: Swim workout pace units
This commit is contained in:
+21
-1
@@ -7,6 +7,8 @@ import static nodomain.freeyourgadget.gadgetbridge.model.ActivitySummaryEntries.
|
|||||||
import static nodomain.freeyourgadget.gadgetbridge.model.ActivitySummaryEntries.UNIT_METERS;
|
import static nodomain.freeyourgadget.gadgetbridge.model.ActivitySummaryEntries.UNIT_METERS;
|
||||||
import static nodomain.freeyourgadget.gadgetbridge.model.ActivitySummaryEntries.UNIT_METERS_PER_SECOND;
|
import static nodomain.freeyourgadget.gadgetbridge.model.ActivitySummaryEntries.UNIT_METERS_PER_SECOND;
|
||||||
import static nodomain.freeyourgadget.gadgetbridge.model.ActivitySummaryEntries.UNIT_MM;
|
import static nodomain.freeyourgadget.gadgetbridge.model.ActivitySummaryEntries.UNIT_MM;
|
||||||
|
import static nodomain.freeyourgadget.gadgetbridge.model.ActivitySummaryEntries.UNIT_SECONDS_PER_100_METERS;
|
||||||
|
import static nodomain.freeyourgadget.gadgetbridge.model.ActivitySummaryEntries.UNIT_SECONDS_PER_100_YARDS;
|
||||||
import static nodomain.freeyourgadget.gadgetbridge.model.ActivitySummaryEntries.UNIT_SECONDS_PER_KM;
|
import static nodomain.freeyourgadget.gadgetbridge.model.ActivitySummaryEntries.UNIT_SECONDS_PER_KM;
|
||||||
import static nodomain.freeyourgadget.gadgetbridge.model.ActivitySummaryEntries.UNIT_SECONDS_PER_M;
|
import static nodomain.freeyourgadget.gadgetbridge.model.ActivitySummaryEntries.UNIT_SECONDS_PER_M;
|
||||||
|
|
||||||
@@ -149,12 +151,30 @@ public class WorkoutValueFormatter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case UNIT_SECONDS_PER_100_METERS:
|
||||||
|
if (units.equals(UNIT_IMPERIAL)) {
|
||||||
|
value = (value * 0.9144) / 60D;
|
||||||
|
unit = "minutes_100yd";
|
||||||
|
} else { //metric
|
||||||
|
value = value / 60D;
|
||||||
|
unit = "minutes_100m";
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case UNIT_SECONDS_PER_100_YARDS:
|
||||||
|
if (units.equals(UNIT_IMPERIAL)) {
|
||||||
|
value = value / 60D;
|
||||||
|
unit = "minutes_100yd";
|
||||||
|
} else { //metric
|
||||||
|
value = (value * 1.0936133D) / 60D;
|
||||||
|
unit = "minutes_100m";
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unit.equals("seconds") && !show_raw_data) { //rather then plain seconds, show formatted duration
|
if (unit.equals("seconds") && !show_raw_data) { //rather then plain seconds, show formatted duration
|
||||||
return DateTimeUtils.formatDurationHoursMinutes((long) value, TimeUnit.SECONDS);
|
return DateTimeUtils.formatDurationHoursMinutes((long) value, TimeUnit.SECONDS);
|
||||||
} else if (unit.equals("minutes_km") || unit.equals("minutes_mi")) {
|
} else if (unit.equals("minutes_km") || unit.equals("minutes_mi") || unit.equals("minutes_100m") || unit.equals("minutes_100yd")) {
|
||||||
// Format pace
|
// Format pace
|
||||||
return String.format(
|
return String.format(
|
||||||
Locale.getDefault(),
|
Locale.getDefault(),
|
||||||
|
|||||||
+12
-10
@@ -216,6 +216,8 @@ public class ActivitySummaryEntries {
|
|||||||
public static final String UNIT_MM = "unit_millimeter";
|
public static final String UNIT_MM = "unit_millimeter";
|
||||||
public static final String UNIT_WATT = "unit_watt";
|
public static final String UNIT_WATT = "unit_watt";
|
||||||
public static final String UNIT_JOULE = "unit_joule";
|
public static final String UNIT_JOULE = "unit_joule";
|
||||||
|
public static final String UNIT_SECONDS_PER_100_METERS = "seconds_100m";
|
||||||
|
public static final String UNIT_SECONDS_PER_100_YARDS = "seconds_100yd";
|
||||||
|
|
||||||
public static final String GROUP_PACE = "Pace";
|
public static final String GROUP_PACE = "Pace";
|
||||||
public static final String GROUP_ACTIVITY = "Activity";
|
public static final String GROUP_ACTIVITY = "Activity";
|
||||||
@@ -251,15 +253,15 @@ public class ActivitySummaryEntries {
|
|||||||
*/
|
*/
|
||||||
public static final String INTERNAL_HAS_GPS = "internal_hasGps";
|
public static final String INTERNAL_HAS_GPS = "internal_hasGps";
|
||||||
|
|
||||||
public static final Map<String, Integer> HR_ZONES = new LinkedHashMap<String, Integer>() {{
|
public static final Map<String, Integer> HR_ZONES = new LinkedHashMap<>() {{
|
||||||
put(HR_ZONE_NA, 0);
|
put(HR_ZONE_NA, 0);
|
||||||
put(HR_ZONE_WARM_UP, R.color.hr_zone_warm_up_color);
|
put(HR_ZONE_WARM_UP, R.color.hr_zone_warm_up_color);
|
||||||
put(HR_ZONE_EASY, R.color.hr_zone_easy_color);
|
put(HR_ZONE_EASY, R.color.hr_zone_easy_color);
|
||||||
put(HR_ZONE_FAT_BURN, R.color.hr_zone_easy_color);
|
put(HR_ZONE_FAT_BURN, R.color.hr_zone_easy_color);
|
||||||
put(HR_ZONE_AEROBIC, R.color.hr_zone_aerobic_color);
|
put(HR_ZONE_AEROBIC, R.color.hr_zone_aerobic_color);
|
||||||
put(HR_ZONE_ANAEROBIC, R.color.hr_zone_threshold_color);
|
put(HR_ZONE_ANAEROBIC, R.color.hr_zone_threshold_color);
|
||||||
put(HR_ZONE_THRESHOLD, R.color.hr_zone_threshold_color);
|
put(HR_ZONE_THRESHOLD, R.color.hr_zone_threshold_color);
|
||||||
put(HR_ZONE_EXTREME, R.color.hr_zone_maximum_color);
|
put(HR_ZONE_EXTREME, R.color.hr_zone_maximum_color);
|
||||||
put(HR_ZONE_MAXIMUM, R.color.hr_zone_maximum_color);
|
put(HR_ZONE_MAXIMUM, R.color.hr_zone_maximum_color);
|
||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-4
@@ -1074,11 +1074,13 @@ public class HuaweiWorkoutGbParser implements ActivitySummaryParser {
|
|||||||
if (sample.getType() != unitType)
|
if (sample.getType() != unitType)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
// TODO: add proper units for type == 1. imperial
|
||||||
|
|
||||||
final List<ActivitySummaryValue> columns = new LinkedList<>();
|
final List<ActivitySummaryValue> columns = new LinkedList<>();
|
||||||
// TODO: add proper units for type == 1. MILES
|
|
||||||
columns.add(new ActivitySummaryValue(currentIndex++, ActivitySummaryEntries.UNIT_NONE));
|
columns.add(new ActivitySummaryValue(currentIndex++, ActivitySummaryEntries.UNIT_NONE));
|
||||||
columns.add(new ActivitySummaryValue(getSwimStyle(sample.getSwimType()), ActivitySummaryEntries.UNIT_NONE));
|
columns.add(new ActivitySummaryValue(getSwimStyle(sample.getSwimType()), ActivitySummaryEntries.UNIT_NONE));
|
||||||
columns.add(new ActivitySummaryValue(sample.getDistance(), ActivitySummaryEntries.UNIT_METERS));
|
String segmentDistanceUnit = sample.getType() == 1?ActivitySummaryEntries.UNIT_YARD:ActivitySummaryEntries.UNIT_METERS;
|
||||||
|
columns.add(new ActivitySummaryValue(sample.getDistance(), segmentDistanceUnit));
|
||||||
columns.add(new ActivitySummaryValue(sample.getTime(), ActivitySummaryEntries.UNIT_SECONDS));
|
columns.add(new ActivitySummaryValue(sample.getTime(), ActivitySummaryEntries.UNIT_SECONDS));
|
||||||
|
|
||||||
|
|
||||||
@@ -1092,11 +1094,11 @@ public class HuaweiWorkoutGbParser implements ActivitySummaryParser {
|
|||||||
);
|
);
|
||||||
|
|
||||||
final List<ActivitySummaryValue> columns2 = new LinkedList<>();
|
final List<ActivitySummaryValue> columns2 = new LinkedList<>();
|
||||||
// TODO: add proper units for type == 1. MILES and SECONDS PER MILE
|
|
||||||
columns2.add(new ActivitySummaryValue("", ActivitySummaryEntries.UNIT_NONE));
|
columns2.add(new ActivitySummaryValue("", ActivitySummaryEntries.UNIT_NONE));
|
||||||
columns2.add(new ActivitySummaryValue(sample.getStrokes(), ActivitySummaryEntries.UNIT_STROKES));
|
columns2.add(new ActivitySummaryValue(sample.getStrokes(), ActivitySummaryEntries.UNIT_STROKES));
|
||||||
columns2.add(new ActivitySummaryValue(sample.getAvgSwolf(), ActivitySummaryEntries.UNIT_NONE));
|
columns2.add(new ActivitySummaryValue(sample.getAvgSwolf(), ActivitySummaryEntries.UNIT_NONE));
|
||||||
columns2.add(new ActivitySummaryValue(sample.getPace(), ActivitySummaryEntries.UNIT_NONE)); //TODO: seconds / 100 meters
|
String segmentPaceUnit = sample.getType() == 1?ActivitySummaryEntries.UNIT_SECONDS_PER_100_YARDS:ActivitySummaryEntries.UNIT_SECONDS_PER_100_METERS;
|
||||||
|
columns2.add(new ActivitySummaryValue(sample.getPace(), segmentPaceUnit));
|
||||||
|
|
||||||
|
|
||||||
segmentsTable.put("segments_table_" + tableIndex++,
|
segmentsTable.put("segments_table_" + tableIndex++,
|
||||||
|
|||||||
@@ -2669,6 +2669,8 @@
|
|||||||
<string name="km">km</string>
|
<string name="km">km</string>
|
||||||
<string name="mi">mi</string>
|
<string name="mi">mi</string>
|
||||||
<string name="degrees">degrees</string>
|
<string name="degrees">degrees</string>
|
||||||
|
<string name="minutes_100m">min/100m</string>
|
||||||
|
<string name="minutes_100yd">min/100yd</string>
|
||||||
<string name="Pace">Pace</string>
|
<string name="Pace">Pace</string>
|
||||||
<!-- activity summary groups-->
|
<!-- activity summary groups-->
|
||||||
<string name="Strokes">Strokes</string>
|
<string name="Strokes">Strokes</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user