Gideon Zenz
26dc2879d9
Health Connect: Fix partial sleep sessions not being replaced by full data
...
Sleep sessions that grow over time (partial data synced mid-sleep, full
data available after waking) were permanently stuck as partial records
in Health Connect. The sync cursor advanced past the session's start
after the first sync, so the full session was never re-processed.
Fix with two mechanisms:
- Set clientRecordId per sleep session (deterministic from device +
start hour) with clientRecordVersion = stage count, enabling HC's
native upsert: re-inserting the same session replaces partial data
with the full record.
- Hold the sync cursor behind sessions that ended less than 6 hours
ago (likely still in-progress), so they get re-processed on the
next sync with more complete data.
2026-04-07 00:35:58 +02:00
Thomas Kuehne and José Rebelo
fc6dcc793b
Garmin: export FIT laps as GPX track segments
2026-04-07 00:14:44 +02:00
Thomas Kuehne and José Rebelo
68aa74bc39
GPX: fix redirecting URLs in xsi:schemaLocation
...
Some XML parsers don't support HTTP redirection for schemaLocation so encode the actual URLs.
2026-04-07 00:14:06 +02:00
Gideon Zenz
68475a07fd
Health Connect: Use separate start/end offsets for workout records
...
Resolve ZoneOffset independently for workout start and end instants,
so workouts spanning a DST transition get correct offset metadata on
both ends.
2026-04-05 23:40:57 +02:00
Gideon Zenz
746bc16bfa
Health Connect: Use per-timestamp timezone offset for DST correctness
...
Replace single sync-time ZoneOffset with ZoneId, resolving the correct
offset per record timestamp via ZoneId.rules.getOffset(instant). Fixes
wrong offset metadata on records crossing DST boundaries (e.g. sleep
sessions starting in CET and ending in CEST).
Also fixes leading space in device model name after manufacturer prefix
strip.
2026-04-05 23:40:57 +02:00
Me7c7 and Martin.JM
bc63bfa588
Huawei: fix for watchfaces installation for some devices
2026-04-05 18:09:10 +02:00
Arjan Schrijver and Arjan Schrijver
7420876a88
Fossil Q: Move notifications configuration to dedicated top-level device preference
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
7735b2d795
Fossil Q: Add button function to ring phone
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
a03bfee348
Fossil Q: Add/fix button actions for music and volume control
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
5ceef900de
Fossil Q: Support for find device
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
66f2c26c53
Fossil Q: Migrate existing button preferences automatically
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
aa37f7bdce
Fossil Q: Move button config to device preferences
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
5015e3a7b7
Fossil Q: Improve time picker visuals
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
b6b9781f0b
Fossil Q: Fix commands being sent to all connected Fossil watches
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
f161d129f5
Fossil Q: Fix spelling in code and logging
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
efd2c626a5
Fossil Q: Move time offsets to device preferences
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
30aa847fa1
Fossil Q: Vibrate watch on incoming call
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
4083d181a6
Fossil Q: Fix steps detection during increased activity
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
79363b0cbb
Fossil Q: Support calibration of physical hands
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
9e3e381680
Fossil Q: Extend activity files parser for non-HR watches
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
a149a48e95
Fossil Q: Move subdial notifications to preferences
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
3b437df4ab
Fossil Q: Stop misusing app manager button on device card
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
4a7f17599b
Fossil Q: Add dev preference for saving raw activity files
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
9093f730a2
Fossil Q: Hide unused authentication key preference
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
a03799fff3
Fossil Q: Limit amount of toasts
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
65b95a9eeb
Fossil Q: Move vibration strength preference into device prefs
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
d243b82761
Fossil Q: Use global step goal preference instead of custom one
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
d997ae6cc8
Fossil Q: Improve device details output
2026-04-05 14:18:10 +02:00
Arjan Schrijver and Arjan Schrijver
f77b8edb04
Fossil Q: Add button action for showing step goal progress
2026-04-05 14:18:10 +02:00
Thomas Kuehne
d65b1fd853
DeviceCoordinator.findInstallHandler: add Bundle parameter
...
EventHandler.onInstallApp already has a Bundle parameter for passing options to install handlers.
This prepares the infrastructure for PR #5923 .
2026-04-03 20:57:30 +00:00
Thomas Kuehne and José Rebelo
05b229c833
Gpx: export track name
...
Some Garmin devices only read gpx/trk/name and ignore gpx/metadata/name.
Export the same name to both.
2026-04-03 18:53:54 +02:00
Thomas Kuehne
de1c74f223
fix: always use GPSCoordinate.hasAltitude to check if altitude value is valid
...
Altitude is a floating point value that supports NaN so it is too easy to use the wrong comparison operation.
2026-04-03 16:40:55 +00:00
Thomas Kuehne
3cd5ae847b
Garmin: add support for installing .FIT location and segment files
...
The uploaded location file creates new waypoints on the device by updating the LCTNS.FIT / Location.fit file.
2026-03-30 01:26:02 +02:00
Christian Breiteneder
a634fb15a5
BPW4500: Persist samples immediately on receive
...
Align with GenericBloodPressureSupport (e3d8530103 ):
remove BroadcastReceiver, use onConnectionStateChange
to signal activity data finish.
2026-03-29 10:00:37 +02:00
Martin.JM
59f140f751
Reduce error toasts for Huawei workout sync
2026-03-28 11:14:45 +01:00
José Rebelo
da878deea5
Health Connect: Fix device model
2026-03-27 18:52:28 +00:00
José Rebelo
11711c6b51
Merge pull request 'Redmi Buds 6 Active: Add 'none' option to 'long button mode'' ( #5933 )
...
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/5933
2026-03-25 23:19:17 +01:00
Thomas Kuehne and José Rebelo
6fcb07ea98
GPX: add support for importing older GPX version 1.0 files
...
Also takes care of slightly quirky GPX 1.1 files that contain extra spaces, XML comments or use floats instead of integers for cadence and heart rate.
2026-03-25 23:17:42 +01:00
José Rebelo
3bb686a106
CMF Watch Pro: Reassemble chunks larger than mtu
2026-03-25 21:39:46 +00:00
iNeedADoctor
9deaf1f45e
Redmi Buds 6 Active: Add 'none' option to 'long button mode'
2026-03-25 20:46:27 +01:00
José Rebelo
b3ae7607fc
Fix nautical units
2026-03-25 17:29:44 +00:00
José Rebelo
5b161d7e5e
Huawei: Fix tests
2026-03-25 17:22:40 +00:00
José Rebelo
00dd7cb99b
Split measurement system units
2026-03-24 22:16:13 +00:00
José Rebelo
8a16ab2f66
Add support for nautical units
2026-03-24 21:49:26 +00:00
Manfred Kroehnert
07fb5704c7
add ic_activity_climbing_indoor.xml and assign it in ActivityKind.java
2026-03-24 22:25:47 +01:00
Martin.JM and José Rebelo
cefd33b465
[Huawei] Improve workout sync error handling
2026-03-24 19:35:47 +01:00
Martin.JM and José Rebelo
4ea8a4b77b
[Huawei] Workout sync refactor
...
I hope it will fix #5523
2026-03-24 19:35:47 +01:00
Martin.JM and José Rebelo
9eb3ed9026
[Huawei] Add RequestBuilder
2026-03-24 19:35:47 +01:00
José Rebelo
c594afb629
Merge pull request 'Redmi Buds 6 Active: add (almost all) the missing features' ( #5833 ) from iNeedADoctor/Gadgetbridge:RedmiBuds6Active into master
...
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/5833
2026-03-24 19:16:30 +01:00
José Rebelo
e3d8530103
SBM67: Persist samples when they are received
2026-03-24 18:12:21 +00:00