Commit Graph
15620 Commits
Author SHA1 Message Date
dependency-botandJosé Rebelo 96a66b8cfa Update dependency androidx.activity:activity-ktx to v1.13.0 2026-03-16 23:50:20 +01:00
Thomas KuehneandJosé Rebelo e6bdac82d4 Garmin: GpxRouteFileConverter add depth, temperature, speed and tests 2026-03-16 23:31:39 +01:00
José RebeloandJosé Rebelo ca9c02e686 Garmin: Use builders for GpxRouteFileConverter 2026-03-16 23:31:39 +01:00
Ritvik BanakarandJosé Rebelo 22c8a8f897 Add PAI dashboard widget 2026-03-16 23:27:04 +01:00
José Rebelo 302d79342e Xiaomi: Fix first HC sync for SpO2 data 2026-03-16 21:50:25 +00:00
José Rebelo eee47b717c Xiaomi: Fix first HC sync for SpO2 data 2026-03-15 21:28:21 +00:00
José Rebelo 546dd7a9cf Garmin/CMF: Fix activity over-counting on timezone change 2026-03-15 00:05:30 +00:00
Thomas Kuehne d985e0ab7e strings: clean-up British vs US spellings and GPS 2026-03-14 19:39:59 +01:00
Thomas Kuehne 4ebb31f255 add missing @Override annotations 2026-03-14 11:02:58 +01:00
José Rebelo 5dfe8d835f Garmin Forerunner 935: Initial support 2026-03-13 21:31:39 +00:00
José Rebelo fb6e605389 Garmin Venu 4: Fix bluetooth name 2026-03-13 21:29:02 +00:00
Gideon Zenz 7096e11dcf Fix: Hide only all-day HR interval and activity monitoring for devices without display 2026-03-12 23:22:15 +01:00
Gideon Zenz b5e6fa82a6 Remove dead supportsActivityTracking guards and unused methods from RecordedWorkoutSyncer
RecordedWorkoutSyncer is only invoked for devices where supportsActivityTracks() is true,
and all such devices also support activity tracking — so the !supportsActivityTracking
guards were always false, making addHeartRateRecord and addStepsRecord unreachable.
HR and steps are already synced by HeartRateSyncer and StepsSyncer at activity level.
2026-03-12 21:46:41 +01:00
Gideon Zenz f9d1f3874c Health Connect: Fix duplicate and truncated sleep records across slice boundaries
SleepSyncer was inserting the same sleep session in multiple slices when
the session spanned a slice boundary. The 1-day look-back caused the
session to be re-discovered in adjacent slices, and the overlap check
allowed it to be synced in each one.
Assign each session to the slice where its start time falls
([sliceStart, sliceEnd)). This ownership rule ensures each session is
synced exactly once regardless of how many slices it overlaps with.
Add a 12-hour look-forward to the DB query for SLEEP so that sessions
starting near the slice end are fetched with their full data, preventing
truncation at the slice boundary.
Fixes: https://codeberg.org/Freeyourgadget/Gadgetbridge/issues/5873
2026-03-12 18:30:52 +01:00
Gideon Zenz f07779f249 Health Connect: Fix duplicate records from workout syncer overlapping ACTIVITY sync
RecordedWorkoutSyncer was writing heart rate, steps, and calorie records
that overlap with the per-minute data already synced by HeartRateSyncer,
StepsSyncer, and ActiveCaloriesSyncer in the ACTIVITY data type sync.
The supportsActiveCalories guard from 8c575535b only covered
processDetailedWorkout but not processAggregateWorkout, which is the
code path hit when no track file is available. No guards existed for
heart rate or steps in either path.

Skip workout-level aggregate HR and steps when supportsActivityTracking
(covered by ACTIVITY sync), and skip workout-level calories when
supportsActiveCalories (covered by ActiveCaloriesSyncer). Per-second HR
from detailed workout track data is always synced as it is more granular
than the per-minute activity HR.
2026-03-12 18:30:52 +01:00
Thomas KuehneandJosé Rebelo cb5634dcfe Garmin: add Recovery Heart Rate and Rate of Perceived Exertion to activity summary
RPE / rate of perceived exertion
https://support.garmin.com/en-US/?faq=8nISJXqSZVAI3Td4IWRqsA

recovery heart rate
https://support.garmin.com/en-US/?faq=3HTTUrSoRF51m8vGUtMhY9
2026-03-11 22:13:16 +01:00
Thomas Riedler 6b9650f675 Zepp OS: fix notification pictures 2026-03-10 21:44:10 +01:00
José Rebelo 3739a2935e Attempt to fix TinyWeatherForecastGermanyReceiver on some devices 2026-03-10 19:47:14 +00:00
José Rebelo 50338052b6 Zepp OS: Add setting to disable calendar event reminders 2026-03-09 22:46:06 +00:00
José Rebelo 63d94b3121 Garmin Instinct 2S Surf: Initial support 2026-03-09 21:44:50 +00:00
José Rebelo 6f6047363e Huawei Band 11: Initial support 2026-03-09 21:42:58 +00:00
José Rebelo 6f0b8b368e Dashboard: Add week day 2026-03-09 21:39:23 +00:00
Thomas KuehneandJosé Rebelo 07b1e593b3 nQuant: backport Gadgetbridge fixups 2026-03-09 22:28:03 +01:00
Thomas KuehneandJosé Rebelo c8da8b4717 nQuant: refresh to mcychan/nQuant.android@12822f15c9 2026-03-09 22:28:03 +01:00
Thomas KuehneandJosé Rebelo 26cf09d700 Garmin: move test FIT data into files 2026-03-09 22:15:35 +01:00
José Rebelo 680026d7a4 Restrict jitpack dependencies to com.github.* 2026-03-08 22:43:13 +00:00
Thomas Kuehne 98fe5caaa4 Garmin: FIT file type 57 is SPORTS_BACKUP 2026-03-08 08:30:55 +01:00
Thomas KuehneandJosé Rebelo 7dc6044138 BleNamesResolver: add more standard services and characteristics 2026-03-07 21:28:35 +01:00
José Rebelo d0993353cf Garmin: Improve activity fetch logging 2026-03-07 13:06:58 +00:00
Arjan Schrijver 422cb0eced Garmin Forerunner 245 Music: Remove experimental flag 2026-03-03 12:30:49 +01:00
Arjan Schrijver 700b39674e Webview: Firewall is not used when direct internet access is available 2026-03-03 10:55:30 +01:00
Arjan Schrijver 8e02231d66 Pebble: Fix app configuration when internet helper is available but disallowed 2026-03-03 10:48:55 +01:00
Gideon ZenzandMerow 92f0a7d802 Add data export for HC sync verification tooling as debug function 2026-03-02 20:24:53 +01:00
Gideon Zenz b5b0b585cc Fix #5797: Advance HC sync cursor by last-written record timestamp
The sync state cursor was advancing to the slice end timestamp
unconditionally, even when no records were written. Late-arriving data
(sleep, workouts, VO2Max, etc.) that arrives after the cursor has
already advanced past it would be permanently skipped.
Each syncer now reports the latest timestamp of records actually
inserted into Health Connect. The sync cursor advances to
max(currentPersisted, latestRecordTimestamp) instead of
sliceEndTimestamp. If no records were written for a slice, the cursor
stays put. This handles all late-arriving data generically without
needing per-data-type special-casing.
2026-03-02 20:19:02 +01:00
WilsontheWolfandJosé Rebelo 1b314c41b1 fix: battery and time sync 2026-03-02 20:14:59 +01:00
dependency-botandJosé Rebelo 23d3f0de1f Update protobuf to v4.34.0 2026-03-02 20:06:04 +01:00
dependency-botandJosé Rebelo 88e8524c79 Update dependency org.mockito:mockito-core to v5.22.0 2026-03-02 20:05:46 +01:00
Andreas Shimokawa 467b58edf3 Pebble: fix sending config to watchfaces 2026-03-01 10:14:42 +01:00
Andreas Shimokawa 7f3eec47ec Pebble: Fix crash when returning from exernal website from browser application. 2026-02-28 19:49:40 +01:00
Thomas KuehneandJosé Rebelo bacc85bcb8 Garmin: add sleep disruption FIT fields 2026-02-28 18:36:59 +01:00
Thomas Kuehne 9a9ba5b30c Garmin: add more FIT sport types
example FIT files for testing:

STREET_RUN (sport:1, subsport:2)
https://github.com/ThomasKuehne/FIT-test-files/tree/main/Activity/2025/Activity_20250410_Running_Nike_1794463148babf53fb33b260a19a91fe.fit

VIRTUAL_CYCLING (sport:2, subsport:58)
https://github.com/ThomasKuehne/FIT-test-files/tree/main/Activity/2026/Activity_20260110_Cycling_Mywhoosh_cbefa61fcd6d7c0f9916e07d119fbceb.fit

INDOOR_ROWING (sport:4, subsport:14)
https://github.com/ThomasKuehne/FIT-test-files/tree/main/Activity/2017/Activity_20170518_FitnessEquipment_VivoActiveHr_94dbffeb8be296bb39027edc041a2963.fit

STOPWATCH (sport:52, subsport:0)
https://github.com/ThomasKuehne/FIT-test-files/tree/main/Activity/2023/Activity_20221129_52_Fenix5Plus_43621059f6fc664f8f3b577e2f1d8695.fit

CCR_DIVING (sport:53, subsport:63)
https://github.com/ThomasKuehne/FIT-test-files/tree/main/Activity/2017/Activity_20230816_Diving_Descent_d602dcb95b6701d1921e9d6a26594ebe.fit
2026-02-28 17:39:51 +01:00
José Rebelo 2aed9d9bb2 Amazfit Active 2 NFC Square: Unmark as experimental 2026-02-27 23:23:22 +00:00
José Rebelo 297492d0a5 Amazfit GTR 4: Add bluetooth name for Limited Edition 2026-02-27 22:28:38 +00:00
Arjan Schrijver 7a5427e028 Dashboard: Add preference for disabling dimming in Today widget 2026-02-23 15:11:20 +01:00
Thomas Kuehne 17a4338984 Garmin: add more FILETYPEs 2026-02-21 12:55:02 +01:00
José Rebelo f60cb524f7 Improve media control logging 2026-02-18 23:09:09 +00:00
José Rebelo 433787d3af Health Connect: Fix calories unit 2026-02-18 23:00:56 +00:00
José Rebelo bf46baa5de Zepp OS: Add missing swim styles, fix columns 2026-02-17 18:30:32 +00:00
José Rebelo d621b1d8f8 Mi Band 9 Active: Add hack for daily activity parsing 2026-02-16 22:24:03 +00:00
José Rebelo a3e216320c Xiaomi-protobuf: Fix calories unit 2026-02-16 22:20:00 +00:00