Rename supportsActivityTabs to supportsCharts, as it should have always meant.
This decouples charts from activity tracking, and avoids the need to
needlessly override sleep measurement, step counter and speed zones
support just to display charts on devices that do not support any of
those capabilities.
Use ActivityKind.getCycleUnit() to determine if cadence should be synced.
Only sync StepsCadenceRecord for step-based activities (walking, running, hiking) and CyclingPedalingCadenceRecord for cycling activities.
Skip cadence syncing for activities with other cycle units (strokes, jumps, reps, swings) as Health Connect lacks appropriate cadence record types.
Note: Swimming workouts with stroke data (freestyle, backstroke, etc.) could be synced as ExerciseSegment records in a future enhancement.
- Fix calorie mapping: caloriesBurnt represents active calories, not total calories
- Parse RAW_SUMMARY_DATA when SUMMARY_DATA JSON is empty (fixes Amazfit/ZeppOS devices)
- Use device-specific ActivitySummaryParser to extract workout metrics from binary protobuf data
- Sync ActiveCaloriesBurnedRecord separately from total calories
- Add StepsRecord for step count during workouts
- Add intelligent cadence syncing (StepsCadenceRecord for running/walking, CyclingPedalingCadenceRecord for cycling)
- Add required Health Connect permissions to manifest
- Update HealthConnectPermissionManager with all workout permissions
This is useful to cache the latest weather when no gadgets are
connected, as well as for weather app developers to be able to test
their apps without any gadget.
As of 1b45d71cc7, we avoid writing
consecutive record definitions if they are exactly the same. This
results in an optimized and smaller fit file, which effectively
contains the exact same information.