Commit Graph
14473 Commits
Author SHA1 Message Date
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
José RebeloandJosé Rebelo c5d9e45006 Make app manager device-agnostic (pt1) 2026-01-04 18:55:30 +01:00
José Rebelo 8bd666ec89 Garmin: Signal pair and setup wizard completed on first connection 2026-01-04 17:33:32 +00:00
José Rebelo 90fd47c2d6 Health Connect: Add debug fragment 2026-01-04 17:33:32 +00:00
José Rebelo 71f9457b93 Health Connect: Sync resting heart rate 2026-01-04 17:33:32 +00:00
José Rebelo 0962c5e225 Health Connect: Deduplicate permissions declaration 2026-01-04 17:33:32 +00:00
Andreas Shimokawa 7d0ee3e93b Pebble: Prepare for Pebble Time Round 2
(This also corrects model strings send to the javascript configuration interface for Pebble 2 Duo and Pebble Time 2)
2026-01-04 18:24:38 +01:00
José Rebelo 45689ad77a Add debug setting to override BUSY_CHECKING 2026-01-04 17:24:02 +00:00
José Rebelo 072cfeab45 Garmin GPSMAP 66s: Initial support 2026-01-04 17:00:13 +00:00
Gideon Zenz 9c85d5995c Zepp OS: Enable workout detection sensitivity for Helio Strap
- Add supportsWorkoutActivityTypesConfiguration() to enable workout settings for devices without display
- Add supportsWorkoutDetectionCategories() to control visibility of workout categories
- Update ZeppOsSettingsCustomizer to hide workout categories preference for devices that don't support it
- Enable workout detection sensitivity configuration for Amazfit Helio Strap
- Workout categories selector is hidden for Helio Strap, only alert and sensitivity settings are shown
This allows the Helio Strap to configure automatic workout detection sensitivity despite having no display.
2026-01-04 17:14:51 +01:00
José Rebelo f4381ca81e Garmin Edge 1040: Initial support 2026-01-04 14:34:18 +00:00
José Rebelo 884ec5eecf Dashboard: Make widget filters more explicit 2026-01-04 14:31:40 +00:00
José Rebelo cbe0531528 BTBR: Do not crash when writing null data 2026-01-04 14:23:32 +00:00
José Rebelo c79f1da98a Roidmi: Switch to BTBR support class 2026-01-04 14:23:32 +00:00
Gideon Zenz 3fe147247e Fix last sample sync issue by making slice boundaries inclusive
Changed boundary checks from exclusive [start, end) to inclusive [start, end] to ensure samples occurring exactly at slice boundaries are synced correctly. This fixes the issue where the last sample in the database would never get synced because it was filtered out by the exclusive end boundary check while the sync state advanced to its timestamp.

Affected syncers:
- AbstractTimeSampleSyncer (HRV, SpO2, Weight, etc.)
- StepsSyncer
- HeartRateSyncer
- SleepSyncer
2026-01-04 14:50:47 +01:00
José Rebelo b3eb699ed0 Garmin Fenix 5S: Experimental support 2026-01-04 13:32:34 +00:00
Gideon Zenz 687b812ed4 Fix workout sync to track end time instead of start time for last synced position
Changed getLastSampleTimestamp() for WORKOUTS to use workout EndTime instead of
StartTime. Previously, using StartTime caused the sync state to advance only to
the start of the last workout, resulting in that workout being re-synced on every
sync run and any new workouts started after it being missed until the next sync.
Now correctly advances to workout end time, ensuring proper incremental sync.
2026-01-04 13:54:25 +01:00
José Rebelo eb0b6fdd4f Yawell R05: Initial support 2026-01-04 11:47:16 +00:00
José Rebelo 91fdd4340c Health Connect: Allow access to HC preferences even if not enabled 2026-01-03 14:47:42 +00:00
José Rebelo 167216b69f Health Connect: Refactor Spo2Syncer to use AbstractTimeSampleSyncer 2026-01-03 14:44:45 +00:00
Gideon ZenzandJosé Rebelo 2e582f48c6 Health Connect: Refactor HrvSyncer, Vo2MaxSyncer, and WeightSyncer to use AbstractTimeSampleSyncer 2026-01-03 14:37:37 +00:00
José Rebelo 832266701d Health Connect: Sync respiratory rate 2026-01-03 14:33:08 +00:00
José Rebelo dabc3ae4c9 Loyalty Cards: Move unsupported barcodes to coordinator 2026-01-03 14:07:46 +00:00
José RebeloandJosé Rebelo 22c541d8f2 HealthConnect: Use BaseActivitySummaryDao for WORKOUT 2026-01-03 15:03:21 +01:00
José RebeloandJosé Rebelo 5f3e56b148 HealthConnect: Always use HRV value provider 2026-01-03 15:03:21 +01:00
Gideon ZenzandJosé Rebelo 1bdf0bd130 fix timestamp issues 2026-01-03 15:03:21 +01:00
Gideon ZenzandJosé Rebelo fd29be7b4a - Filter WORKOUTS from sync iteration since it's only for permission grouping
- Move RecordedWorkoutSyncer outside activityBasedSamples null check
2026-01-03 15:03:21 +01:00
Gideon ZenzandJosé Rebelo 2e5a77e541 Add missing Health Connect permissions and WORKOUTS data type
- Add PERMISSION_WRITE_EXERCISE_ROUTE import to HealthConnectPermissionManager
- Include ElevationGainedRecord, PowerRecord, SpeedRecord, and ExerciseRoute permissions in requiredHealthConnectPermissions
- Add WORKOUTS enum to HealthConnectDataType with comprehensive permission mapping
- Handle WORKOUTS branches in HealthConnectUtils when expressions for exhaustiveness
2026-01-03 15:03:21 +01:00