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.
I switched from pixel 8 to pixel 10 and the 10 is much more aggressive
at putting threads to sleep. This change changes the logic to make the
heartbeat more and more aggressive the more unexpected disconnects that
there are.
Even Realities G1: Add Calendar Support
This change adds support for syncing the calendar to the glasses. It
also cleans up the settings menu and adds a few dummy options for touch
controls that don't currently do anything.
Even Realities G1: Clean up the command ID constants
This should be purely a refactor with no functional changes. The change
renames all the command IDs, it adds the ones that are missing and
unifies the name of all of them. It also breaks out the known
subfunctions into their own structures. Finally, it reorders the Command
objects to be in the same order as the command ids.
Even Realities G1: Set the language on the glasses to match the app locale
This makes two changes:
First, it fixes a bug where the reconnection delay was always increased before the first reconnection attempt which meant that the first attempt was always 8 seconds later instead of the intended 4 seconds.
Second, it adds a new delay field to the the abstract coordinator which defaults to 2 seconds, and can be overridden by devices to get a smaller delay. If there are multiple devices waiting for reconnect, the lowest delay will be used.