Commit Graph
15266 Commits
Author SHA1 Message Date
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
Gideon ZenzandJosé Rebelo aea638d4be Adding HealthConnect sync for:
Body Temperature
    Skin Temperature
    Distance
    Exercise
    Heart rate
    Heart rate variability
    Oxygen saturation
    Sleep
    Steps
    Total calories burned
    VO2 max
    Weight

The feature is configurable via Settings->External Integrations->Health Connect

Based on https://codeberg.org/LLan/Gadgetbridge

Kudos to LLan for the preliminary work!
2026-01-03 15:03:21 +01:00
José RebeloandJosé Rebelo ac557cabf3 Add re2j to proguard rules 2026-01-03 14:30:16 +01:00
dependency-botandJosé Rebelo 4bce911076 Update dependency org.jsoup:jsoup to v1.22.1 2026-01-03 14:30:16 +01:00
dependency-botandJosé Rebelo 2558bf470c Update dependency org.msgpack:msgpack-core to v0.9.11 2026-01-03 11:13:37 +01:00
José Rebelo ba238d25d9 gradle: Increase jvm heap
Build is sometimes failing due to lack of memory: "Gradle build daemon has been stopped: since the JVM garbage collector is thrashing"
2026-01-03 09:56:03 +00:00
Daniele Gobbetti 11ca07451a Add Lifecycle observer to GBApplication
Support classes can now react to application being in foreground/background.

Also adds support for sending app status to garmin devices.
2026-01-03 08:56:25 +01:00
José Rebelo 8fcad9f9f8 Garmin Edge 130: Initial support 2026-01-02 20:45:48 +00:00
José Rebelo c85dbf2a68 GloryFit: Fix screen timeout preference 2026-01-01 23:22:59 +00:00
jrthomas270andJosé Rebelo 2fbef85753 Calendar Sync: Add the option to filter events
This change adds filter filters to the calendar sync options:
  1. Declined events
  2. Canceled events
  3. Color Label filtering
  4. Focus Time event filtering
  5. Working Location event filtering
  6. All Day Event filtering

This changes also inverts the menu for teh sync black list so that is
now a white list. The underlying prefs variables have not changed, just
how the interface displays them so existing user settings will carry
over.

The color label filtering is more useful on calendars from Google
Workspace Calendars that actually have named colors. There is no way
that I can find to access the names of the colors to show to the user,
but it can still be useful to tag some events that you don't want synced.

In addition to the color filters, Google Workspace Calendar has extended
parameters called Focus Time and Working Location. Working location
appears as an all day event every day and if you use the Focus Time as a
Calendar block, your calendar may be filled with these events. For my
work calendar these two event types choke out the "real" events, so it
is nice to filter them.
2026-01-02 00:07:07 +01:00
José Rebelo e6ff0aef04 Sony Headphones: Add 500ms connection delay 2026-01-01 23:01:34 +00:00
José Rebelo 43fc2e4727 Add timeout when connecting to GATT server 2026-01-01 22:42:47 +00:00
Me7c7andJosé Rebelo 305f1827e0 Huawei: Research related to GPS routes for workouts. 2026-01-01 21:59:18 +01:00
José Rebelo a27d4f6de2 Zepp OS: Add debug support for more config types
As seen when requesting all config arguments from the Amazfit GTR 4.
2026-01-01 20:55:10 +00:00
José Rebelo dc3ee7f4a0 Zepp OS: Extract config types to standalone classes 2026-01-01 18:30:49 +00:00
José Rebelo 0676d09115 CMF Watch Pro: Fix active score 2026-01-01 17:45:09 +00:00
José Rebelo e47c1f72ce CMF Watch Pro: Rework device settings screen 2026-01-01 17:42:34 +00:00
José Rebelo b173cad550 CMF Watch Pro 2: Improve activity parsing 2 (#4530) 2026-01-01 17:19:50 +00:00
José Rebelo 5ea10473be Delete AbstractHeadphoneSerialDeviceSupport 2026-01-01 16:37:29 +00:00
José Rebelo 731c1717e8 Anker Soundcore Liberty 3 Pro / 4 NC: Switch to BTBR support class, add headphones features 2026-01-01 16:37:19 +00:00
José Rebelo 1dfe8d3f5e Galaxy Buds: Switch to BTBR support class 2026-01-01 16:35:46 +00:00
José Rebelo 9a790f852f Oppo Headphones: Switch to BTBR support class 2026-01-01 16:34:54 +00:00
José Rebelo 81f0c7fa75 Redmi Buds: Switch to BTBR support class, add headphones features 2026-01-01 16:32:20 +00:00
José Rebelo 158c59ce7b Bose QC35: Switch to BTBR support class, add headphones features 2026-01-01 16:28:42 +00:00
José Rebelo ae38e51154 Soundcore AeroFit 2: Switch to BTBR support class, add headphones features 2026-01-01 16:27:51 +00:00
José Rebelo eaba6be2e4 Pixel Buds A: Switch to BTBR support class, add headphones features 2026-01-01 16:27:16 +00:00
José Rebelo 82177b9b77 Soundcore Q30: Switch to BTBR support class, add headphones features 2026-01-01 16:26:32 +00:00
José Rebelo ce208c9809 Moondrop Space Travel: Switch to BTBR support class 2026-01-01 16:25:34 +00:00
José Rebelo 8b18830e9a Soundcore Motion 300: Switch to BTBR support class 2026-01-01 16:25:09 +00:00
José Rebelo e4d0d4f958 1MORE SonoFlow: Switch to BTBR support class 2026-01-01 16:24:05 +00:00
José Rebelo 58f3e2e357 Divoom Pixoo: Switch to BTBR support class 2026-01-01 16:23:14 +00:00
José Rebelo 49bd90d960 Liveview: Switch to BTBR support class 2026-01-01 16:21:58 +00:00
José Rebelo 9330d8f96c Ear Fun: Switch to BTBR support class 2026-01-01 16:21:11 +00:00