Commit Graph
15871 Commits
Author SHA1 Message Date
FjuroandHosted Weblate 59ae2598a1 Translated using Weblate (Czech)
Currently translated at 100.0% (4613 of 4613 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/cs/
2026-04-12 19:53:31 +02:00
大王叫我来巡山andHosted Weblate 5ca173729f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (4613 of 4613 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hans/
2026-04-12 19:53:30 +02:00
Jan Jasper de KroonandHosted Weblate 7e58d79f47 Translated using Weblate (Dutch)
Currently translated at 99.6% (4596 of 4613 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/nl/
2026-04-12 19:53:30 +02:00
Саша ПетровићandHosted Weblate 5b3b33597d Translated using Weblate (Serbian)
Currently translated at 64.5% (2978 of 4613 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/sr/
2026-04-12 19:53:29 +02:00
summoner001andHosted Weblate 4c51134b9f Translated using Weblate (Hungarian)
Currently translated at 100.0% (4613 of 4613 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/hu/
2026-04-12 19:53:29 +02:00
OmikorinandHosted Weblate 4817259048 Translated using Weblate (Polish)
Currently translated at 100.0% (4610 of 4610 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/pl/
2026-04-12 19:53:28 +02:00
DanieleandHosted Weblate 9f0ca681eb Translated using Weblate (Italian)
Currently translated at 100.0% (3 of 3 strings)

Translation: Freeyourgadget/fastlane metadata
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/fastlane-metadata/it/
2026-04-12 19:53:27 +02:00
FjuroandHosted Weblate d73fbd082a Translated using Weblate (Czech)
Currently translated at 100.0% (4610 of 4610 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/cs/
2026-04-12 19:53:27 +02:00
大王叫我来巡山andHosted Weblate 58a2d2f48f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (4610 of 4610 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hans/
2026-04-12 19:53:26 +02:00
summoner001andHosted Weblate a8b9a9ae01 Translated using Weblate (Hungarian)
Currently translated at 100.0% (4610 of 4610 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/hu/
2026-04-12 19:53:25 +02:00
Thomas KuehneandHosted Weblate cce6ed4d03 Translated using Weblate (German)
Currently translated at 99.9% (4607 of 4610 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/de/
2026-04-12 19:53:25 +02:00
Daniel FinolandHosted Weblate 5ce6ef075c Translated using Weblate (Spanish)
Currently translated at 99.9% (4601 of 4603 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/es/
2026-04-12 19:53:24 +02:00
summoner001andHosted Weblate ef575196f9 Translated using Weblate (Hungarian)
Currently translated at 100.0% (4603 of 4603 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/hu/
2026-04-12 19:53:23 +02:00
summoner001andHosted Weblate d1f1ed6d1d Translated using Weblate (Hungarian)
Currently translated at 100.0% (4602 of 4602 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/hu/
2026-04-12 19:53:23 +02:00
KachelkaiserandHosted Weblate d6df34f429 Translated using Weblate (German)
Currently translated at 100.0% (4602 of 4602 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/de/
2026-04-12 19:53:22 +02:00
大王叫我来巡山andHosted Weblate 10c463a663 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (4602 of 4602 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hans/
2026-04-12 19:53:21 +02:00
qtmandHosted Weblate 33e182a31e Translated using Weblate (Russian)
Currently translated at 93.8% (4314 of 4599 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ru/
2026-04-12 19:53:21 +02:00
Christian BreitenederandHosted Weblate 1351d9af59 Translated using Weblate (German)
Currently translated at 100.0% (4599 of 4599 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/de/
2026-04-12 19:53:20 +02:00
FjuroandHosted Weblate 9f93d52bb4 Translated using Weblate (Czech)
Currently translated at 100.0% (4599 of 4599 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/cs/
2026-04-12 19:53:19 +02:00
Michał KorczakandHosted Weblate bb8b1abef6 Translated using Weblate (Polish)
Currently translated at 100.0% (4599 of 4599 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/pl/
2026-04-12 19:53:19 +02:00
summoner001andHosted Weblate ed59abd109 Translated using Weblate (Hungarian)
Currently translated at 100.0% (4599 of 4599 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/hu/
2026-04-12 19:53:18 +02:00
Priit JõerüütandHosted Weblate f741731e00 Translated using Weblate (Estonian)
Currently translated at 34.2% (1573 of 4599 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/et/
2026-04-12 19:53:18 +02:00
大王叫我来巡山andHosted Weblate 46d99a11c4 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (4599 of 4599 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hans/
2026-04-12 19:53:17 +02:00
KachelkaiserandHosted Weblate 6cf7e5a4ad Translated using Weblate (German)
Currently translated at 100.0% (4597 of 4597 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/de/
2026-04-12 19:53:16 +02:00
summoner001andHosted Weblate 93af45dbff Translated using Weblate (Hungarian)
Currently translated at 100.0% (4596 of 4596 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/hu/
2026-04-12 19:53:16 +02:00
omletccblpomandHosted Weblate 51de8915f7 Translated using Weblate (Russian)
Currently translated at 93.6% (4302 of 4594 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/ru/
2026-04-12 19:53:15 +02:00
summoner001andHosted Weblate b6a20400c1 Translated using Weblate (Hungarian)
Currently translated at 100.0% (4594 of 4594 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/hu/
2026-04-12 19:53:14 +02:00
大王叫我来巡山andHosted Weblate 393ba75e08 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (4594 of 4594 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hans/
2026-04-12 19:53:14 +02:00
David D.andHosted Weblate 00be5b08f7 Translated using Weblate (French)
Currently translated at 93.5% (4299 of 4594 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/fr/
2026-04-12 19:53:13 +02:00
Christian BreitenederandHosted Weblate cbb1036924 Translated using Weblate (German)
Currently translated at 100.0% (4587 of 4587 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/de/
2026-04-12 19:53:12 +02:00
Viktor RakandHosted Weblate 2aa776277f Translated using Weblate (Ukrainian)
Currently translated at 99.5% (4557 of 4578 strings)

Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/uk/
2026-04-12 19:53:12 +02:00
Thomas Kuehne f9d9ecce09 Garmin: extract and store metrics (#5708, #5709, #5710)
This extracts the following metrics and stores them in a new GenericMetricSample / GENERIC_METRIC_SAMPLE table:
- endurance score
- functional threshold power
- hill endurance
- hill score
- hill strength
- MET max VO2
- running lactate threshold power
- training readiness

Visualisation and charts aren't part of this PR.
2026-04-12 17:13:10 +00:00
José Rebelo bec7846657 Merge pull request 'Health Connect: Add DistanceSyncer for daily activity distance' (#5951)
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/5951
2026-04-12 17:24:36 +02:00
José Rebelo ba963c0ca4 Test Device: Log loyalty cards 2026-04-12 16:07:56 +01:00
José Rebelo c3b248da36 Improve battery notifications
* Prevent battery updates from one gadget from removing the notification
  from another
* Prevent gadgets with multiple batteries from replacing a battery full
  or low notification if any of the other batteries is not notifying
2026-04-12 14:46:32 +01:00
Thomas KuehneandJosé 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 KuehneandJosé 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 KuehneandJosé 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 KuehneandJosé 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 KuehneandJosé Rebelo 536ad17c4d Garmin HRM 600: Initial support
Based on feedback in #5633
2026-04-11 00:03:36 +02:00
duhowandJosé 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
luckyluk607andArjan 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
Gideon Zenz 4d8ef91b13 Health Connect: Gate DistanceSyncer with supportsActivityDistance flag
Add supportsActivityDistance coordinator capability flag following the
supportsActiveCalories pattern. When true, DistanceSyncer syncs all
per-minute distance and RecordedWorkoutSyncer skips DistanceRecords.

Enabled for Garmin (watch + bike), Xiaomi, and Huawei. Other devices
with distance fields (CMF, Colmi, H+, etc.) left at default false
until per-minute data quality is verified.
2026-04-07 10:30:40 +02:00
Gideon Zenz da3f21aafb Health Connect: Add DistanceSyncer for daily activity distance
Syncs device-reported distance (distanceCm) from ActivitySamples to
Health Connect DistanceRecord. Only writes actual device measurements,
skips NOT_MEASURED or zero values.
2026-04-07 10:29:13 +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