Commit Graph
15325 Commits
Author SHA1 Message Date
Gideon ZenzandJosé Rebelo a486de73c5 Parse workout summaries upfront to ensure correct activityKind before processing 2026-01-16 22:12:23 +01:00
Gideon ZenzandJosé Rebelo 3bebe6563d Fix cadence syncing to only sync for appropriate activity types
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.
2026-01-16 22:12:23 +01:00
Gideon ZenzandJosé Rebelo 46925c2dde Add missing workout data sync: active calories, steps, and cadence
- 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
2026-01-16 22:12:23 +01:00
José Rebelo 4ee7007c61 Zepp OS: Handle weather app settings request 2026-01-16 18:42:31 +00:00
José Rebelo f4556e81cc Garmin: Fix MLR retransmission request numbers 2026-01-16 18:24:19 +00:00
José Rebelo 6aeb50d026 Dashboard: Only include activities from enabled devices 2026-01-15 23:39:32 +00:00
José Rebelo 367ce236a1 Export GenericWeatherReceiver from manifest
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.
2026-01-15 23:11:27 +00:00
José Rebelo 1a50b85b7e Zepp OS: Add display item for Jet Lag Manager 2026-01-15 23:04:39 +00:00
José RebeloandJosé Rebelo 813be065c3 Garmin: Improve developer field decoding 2026-01-15 22:11:45 +01:00
dependency-botandJosé Rebelo effb054aaf Update mapsforge to v0.27.0 2026-01-15 20:49:01 +01:00
dependency-botandJosé Rebelo ba0a3821f2 Update protobuf to v4.33.4 2026-01-15 20:48:49 +01:00
José Rebelo 31f71edda5 Garmin: Make calories consistent with other devices 2026-01-15 19:40:36 +00:00
José Rebelo b6c125a3a6 Garmin: Make calories consistent with other devices 2026-01-15 19:36:35 +00:00
José Rebelo 617ef396a5 Garmin: Run FitCodeGen 2026-01-13 22:12:00 +00:00
José Rebelo 0bdb76c6d4 Garmin: Improve field cast safety 2026-01-13 22:08:54 +00:00
José Rebelo 8dad0e1da6 Garmin: Fix TestFitLocationEncoding
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.
2026-01-13 22:00:48 +00:00
José Rebelo a4f9dd7ea6 GarminSupportTest: Fix some tests 2026-01-13 21:18:14 +00:00
José Rebelo 71cf60cff9 WeatherMapper: Fix test
Failure introduced in c19ed15df, but this test does not make sense to
maintain anymore.
2026-01-13 21:02:22 +00:00
José Rebelo 614fb05a8b OneTouch: Fix test 2026-01-13 21:00:41 +00:00
José Rebelo 05de74dbc7 Fix raw details path between Gb versions 2026-01-12 22:13:20 +00:00
José Rebelo 32210e7249 Garmin: Add average ascent velocity 2026-01-12 22:05:02 +00:00
José Rebelo 915c2a5546 Garmin: Map some missing fit fields
Taken from a fit file of a Garmin Edge 1040
2026-01-12 21:29:53 +00:00
José Rebelo eada46234b Garmin: Fix lap speed unit
Fixes #5698
2026-01-12 21:08:59 +00:00
José Rebelo 824d325ac4 Charts: Make max temperature dynamic
Fixes #5699
2026-01-12 21:08:29 +00:00
José Rebelo a6aa965863 Charts: Add hours to x-axis
Fixes #5697
2026-01-12 21:08:25 +00:00
José Rebelo 59cbba92d7 Intent API: Add picturePath to debug notification 2026-01-09 22:36:57 +00:00
José Rebelo 8d4727b01c Garmin: Experimental app configuration support 2026-01-09 22:03:05 +00:00
Daniele Gobbetti b52490665b Garmin: remove the legacy vivomovehr package
Migrate the GarminCapability class to main garmin package.
Delete the VivomoveHrSampleProvider class which was unused.
2026-01-09 21:54:42 +01:00
José Rebelo 491652f7f0 Add a small delay when deleting the device
Prevent the delete activity from just blinking too fast.
2026-01-08 23:07:02 +00:00
José Rebelo 7643fdb404 Zepp OS: Derive device sources from PNP ID 2026-01-08 22:54:40 +00:00
Me7c7andJosé Rebelo 1417a85996 Huawei: refactoring dyct sync. Split to classes 2026-01-08 19:30:54 +01:00
Avery SterkandJosé Rebelo e47d1c82b8 Pebble: add weather support in Tears of the Kingdom watchface
Watchface uses Fahrenheit and its own enumerated weather icons
Watchface source: https://github.com/HarrisonAllen/totk-watchface

Supports icons for night added in v2.1.0
2026-01-08 19:21:42 +01:00
José Rebelo efe3fef2cd Garmin: Fix json decoding of payloads with trailing bytes 2026-01-07 23:58:36 +00:00
José Rebelo 9a84a2f5af Zepp OS: Fix image encoding 2026-01-07 22:06:08 +00:00
José Rebelo e16d4f89cd Garmin: Display intervals on non-swimming activities 2026-01-07 20:50:43 +00:00
José Rebelo 1b34e6dfb6 Introduce GBPrefsMigrator 2026-01-07 18:46:26 +00:00
José Rebelo 3919059069 Migrate all existing preference migrations to PreferenceMigrator55 2026-01-07 17:47:57 +00:00
José Rebelo 3f46c5259a Zepp OS: Enable HRV if Readiness app is available 2026-01-07 17:40:31 +00:00
José RebeloandJosé Rebelo 377917eb0f Garmin: Remove maxPacketSize from GFDIMessage 2026-01-07 18:20:33 +01:00
jrthomas270 6fcd6cc636 Even Realities G1: Make the heartbeat more aggressive on disconnect
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
2026-01-06 18:07:22 -08:00
jrthomas270andJosé Rebelo 6bdfdfc6ca Reconnection: Fix a bug with the reconnection delay and make it more aggressive
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.
2026-01-06 23:24:59 +01:00
José RebeloandJosé Rebelo 6aaf6d50e8 Make device deletion async 2026-01-06 23:20:58 +01:00
José Rebelo d037be0303 Health Connect: Restore initial sync start
Removed during debugging and commited by mistake.
2026-01-06 21:26:12 +00:00
José Rebelo 13b2fb9dd1 Health Connect: Sync blood glucose 2026-01-06 21:19:51 +00:00
José Rebelo 667d5fdfc4 Health Connect: Add manual sync debug trigger 2026-01-06 21:19:16 +00:00
José Rebelo 4ec30d1e52 OneTouch: Initial support 2026-01-06 20:57:32 +00:00
José Rebelo 1976dc698c Debug: Add function to drop database table 2026-01-06 19:14:26 +00:00
José Rebelo b94a0b5b34 Health Connect: Prevent sync of devices which are not configured 2026-01-06 00:23:50 +00:00
Victor KarehandJosé Rebelo 65dd8731fa pinetime: Add sunrise and sunset weather data 2026-01-05 14:07:54 +01:00
José Rebelo 507d9c9c56 Garmin: Fix crash when communicator is null 2026-01-04 17:59:19 +00:00