mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
Zepp OS: Add jump rope stats
This commit is contained in:
+15
-3
@@ -84,11 +84,11 @@ public class ZeppOsActivitySummaryParser extends HuamiActivitySummaryParser {
|
||||
return;
|
||||
}
|
||||
|
||||
final ActivityKind activityKind;
|
||||
if (summaryProto.hasType()) {
|
||||
final byte typeCode = (byte) summaryProto.getType().getType();
|
||||
final ZeppOsActivityType activityType = ZeppOsActivityType.fromCode(typeCode);
|
||||
|
||||
final ActivityKind activityKind;
|
||||
if (activityType != null) {
|
||||
activityKind = activityType.toActivityKind();
|
||||
} else {
|
||||
@@ -97,7 +97,10 @@ public class ZeppOsActivitySummaryParser extends HuamiActivitySummaryParser {
|
||||
summaryData.add(ACTIVITY_TYPE_CODE, typeCode, UNIT_NONE);
|
||||
}
|
||||
summary.setActivityKind(activityKind.getCode());
|
||||
} else {
|
||||
activityKind = ActivityKind.UNKNOWN;
|
||||
}
|
||||
final ActivityKind.CycleUnit cycleUnit = ActivityKind.getCycleUnit(activityKind);
|
||||
|
||||
if (summaryProto.hasTime()) {
|
||||
int totalDuration = summaryProto.getTime().getTotalDuration();
|
||||
@@ -121,8 +124,8 @@ public class ZeppOsActivitySummaryParser extends HuamiActivitySummaryParser {
|
||||
}
|
||||
|
||||
if (summaryProto.hasSteps()) {
|
||||
summaryData.add(CADENCE_MAX, summaryProto.getSteps().getMaxCadence() * 60, UNIT_SPM);
|
||||
summaryData.add(CADENCE_AVG, summaryProto.getSteps().getAvgCadence() * 60, UNIT_SPM);
|
||||
summaryData.addCadenceMax(summaryProto.getSteps().getMaxCadence() * 60, cycleUnit);
|
||||
summaryData.addCadenceAvg(summaryProto.getSteps().getAvgCadence() * 60, cycleUnit);
|
||||
summaryData.add(STRIDE_AVG, summaryProto.getSteps().getAvgStride(), UNIT_CM);
|
||||
summaryData.add(STEPS, summaryProto.getSteps().getSteps(), UNIT_STEPS);
|
||||
}
|
||||
@@ -136,6 +139,15 @@ public class ZeppOsActivitySummaryParser extends HuamiActivitySummaryParser {
|
||||
summaryData.add(PACE_AVG_SECONDS_KM, summaryProto.getPace().getAvg() * 1000, UNIT_SECONDS_PER_KM);
|
||||
}
|
||||
|
||||
if (summaryProto.hasFrequency()) {
|
||||
summaryData.addCadenceAvg(summaryProto.getFrequency().getAvgFrequency(), cycleUnit);
|
||||
summaryData.addCadenceMax(summaryProto.getFrequency().getMaxFrequency(), cycleUnit);
|
||||
}
|
||||
|
||||
if (summaryProto.hasCount()) {
|
||||
summaryData.add(JUMPS, summaryProto.getCount().getTotalJumps(), UNIT_JUMPS);
|
||||
}
|
||||
|
||||
if (summaryProto.hasCalories()) {
|
||||
summaryData.add(CALORIES_BURNT, summaryProto.getCalories().getCalories(), UNIT_KCAL);
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ message WorkoutSummary {
|
||||
Location location = 2;
|
||||
Type type = 3;
|
||||
Distance distance = 4;
|
||||
Count count = 5;
|
||||
Steps steps = 11;
|
||||
Time time = 7;
|
||||
SwimmingData swimmingData = 9;
|
||||
@@ -15,6 +16,7 @@ message WorkoutSummary {
|
||||
Altitude altitude = 13;
|
||||
HeartRate heartRate = 19;
|
||||
Calories calories = 16;
|
||||
Frequency frequency = 18;
|
||||
TrainingEffect trainingEffect = 21;
|
||||
HeartRateZones heartRateZones = 22;
|
||||
Elevation elevation = 23;
|
||||
@@ -55,6 +57,10 @@ message Distance {
|
||||
float distance = 1; // meters
|
||||
}
|
||||
|
||||
message Count {
|
||||
uint32 totalJumps = 1;
|
||||
}
|
||||
|
||||
message Time {
|
||||
int32 totalDuration = 1; // seconds
|
||||
int32 workoutDuration = 2; // seconds
|
||||
@@ -79,6 +85,11 @@ message Calories {
|
||||
int32 calories = 1; // kcal
|
||||
}
|
||||
|
||||
message Frequency {
|
||||
uint32 avgFrequency = 1;
|
||||
uint32 maxFrequency = 2;
|
||||
}
|
||||
|
||||
message HeartRateZones {
|
||||
// TODO 1, is always = 1?
|
||||
// Zones: N/A, Warm-up, Fat-burn time, Aerobic, Anaerobic, Extreme
|
||||
|
||||
Reference in New Issue
Block a user