Thomas Kuehne and José Rebelo
bde914fad2
Garmin: extend support for non-GPS activities
...
- chart elevation even if the activity has no GPS recording (e.g. treadmill and floor climbing)
- added distance chart
- added stride chart
- added step length chart
- added body energy chart - 24/7 energy level
- added stamina chart - activity specific endurance capacity
- added N2 load (Nitrogen) chart for diving
- added CNS toxicity (Central Nervous System) chart for diving
- added oxygen toxicity summary for diving
- added surface interval summary for diving
- adjusted dive summary layout
2026-04-11 01:43:45 +02:00
Thomas Kuehne and José Rebelo
5b2f982509
Garmin: fix identification of relevant FitDiveSummary session record
...
The logic depended on the sequence of records and not their actual content.
2026-04-11 01:43:45 +02:00
Thomas Kuehne and José Rebelo
4da08f7968
Garmin: ignore Null Island for ActivitySummaryData.setHasGps
...
Some indoor tracks, like Edge1030's Cycling / Virtual Activity, record all points with fake Null Island (0°N 0°E) position.
2026-04-11 01:43:45 +02:00
Thomas Kuehne and José Rebelo
9344940260
extend support for non-GPS activities
...
This enhances the general GB code _without_ the device specific adjustments required to actually display values:
- chart elevation even if the activity has no GPS recording (e.g. treadmill and floor climbing)
- added distance chart
- added stride chart
- added step length chart
- added body energy chart - 24/7 energy level
- added stamina chart - activity specific endurance capacity
- added N2 load (Nitrogen) chart for diving
- added CNS toxicity (Central Nervous System) chart for diving
- added oxygen toxicity summary for diving
- added surface interval summary for diving
2026-04-11 01:43:45 +02:00
José Rebelo
bad2d6f842
Fix duplicated weight conversion
2026-04-11 00:31:46 +01:00
José Rebelo
cede254fd8
Huawei Band 11 Pro: Initial support
2026-04-10 23:28:15 +01:00
Thomas Kuehne and José Rebelo
536ad17c4d
Garmin HRM 600: Initial support
...
Based on feedback in #5633
2026-04-11 00:03:36 +02:00
duhow and José Rebelo
749219f840
fix: use Ambient Sound Control 2
2026-04-10 23:23:11 +02:00
Thomas Kuehne
9edeec2a57
Garmin: fix start time handling for stopwatch ( #4507 ) and prepare for multi sessions in one file ( #5862 . #5860 )
...
Prioritise the session specific start time over the file creation time.
2026-04-10 17:33:39 +00:00
luckyluk607 and Arjan Schrijver
7a1960a85a
ITech Active 3: Update coordinator with all features
2026-04-09 21:40:50 +02:00
Arjan Schrijver
f05b55a250
Fossil hybrids: Increase request timeout for big activity file downloads
2026-04-07 13:04:23 +02:00
José Rebelo
77a66eb9c6
Merge pull request 'Health Connect: Fix partial sleep sessions not being replaced by full data' ( #5961 )
...
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/5961
2026-04-07 00:49:41 +02:00
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
José Rebelo
b4ca137d8c
Merge pull request 'Redmi Buds 8 Active: Add device support' ( #5932 )
...
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/5932
2026-04-07 00:26:44 +02:00
Benjamin Temple and José Rebelo
c595e69ef2
Pebble: Unify Pebble hardware definitions into PebbleHardware class
...
Create PebbleHardware.java as the single source of truth for all
Pebble hardware definitions and for determining what model and features
a watch has. The goal of this commit is to better unify the pebble watch
model definitions into a single source of truth to make adding new
models easier, as well as to bring all the relevant model specific logic
about what a watch is capable of, or which watch model to use into a
single file versus being spread out among multiple files making it
easier to fail to fix logic bugs.
The PebbleHardware class now has all the definitions for the following
information in one place:
- Platform enum with capabilities (BLE-only, hasHealth, hasHRM)
- Hardware revision registry mapping hardware IDs to codenames
- BLE-only device detection methods
- Platform name lookup for watchface installation
This cleans up PebbleUtils to only contain non-hardware utilities.
(maybe should move into the pebble directory away from the utils folder
in another commit?)
2026-04-07 00:22:44 +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