Daniele Gobbetti and José Rebelo
fe6def63ee
Garmin: Weather message improvements
...
Add equals() and hashCode() to all classes needed to properly compare RecordDefinition class instances.
Add FitLocalMessageBuilder class to deduplicate the Definitions also recreating the RecordData in case they differ just from previous ones with the same localMessageType (e.g. if they were built specifying the fields in a different order).
Restore a different order in GarminSupport when building weather messages, to test the deduplication.
Add FieldDefinitionWeatherReport as proper enum with explicit Types. Also adapt the code generator and run it (without adding all unrelated changes to generated Messages, only FitWeather).
2025-12-21 13:54:21 +00:00
José Rebelo
af91ecf9ba
Garmin: Use FitWeather.Builder and add unit test
...
TODO: Distinct record definitions extraction does not work properly since RecordData may contain Fields in different order.
2025-12-21 13:54:21 +00:00
José Rebelo
8754cc90cd
Charts: Adjust SpO2 chart colors
2025-12-21 13:50:53 +00:00
José Rebelo
a3daf822c7
Charts: Fix SpO2 chart crash when there is no data
2025-12-21 13:50:48 +00:00
trentsuzuki and José Rebelo
d7c489c145
Add weekly/monthly charts for blood oxygen
2025-12-21 14:50:35 +01:00
José Rebelo
9f5a15911b
Dismiss permissions screen after all permissions granted
2025-12-20 19:43:59 +00:00
José Rebelo
bba80d3c60
Huami: Improve workout charts for activities without gps
2025-12-20 19:12:14 +00:00
Andreas Shimokawa
76a844eb8a
Pebble: Support Signal icon with 2025 models
2025-12-20 19:42:41 +01:00
José Rebelo
51845a6501
Charts: Avoid flashing progressbar when loading is fast
2025-12-20 18:23:14 +00:00
José Rebelo
4f339a1d51
Charts: Fix body energy crash when no data
2025-12-20 18:23:12 +00:00
trentsuzuki and José Rebelo
7c25ec2b6d
Add weekly/monthly charts for body energy
2025-12-20 19:22:11 +01:00
Gideon Zenz and José Rebelo
40137ef9e7
Ignore devices that don't support HRV measurements
2025-12-20 19:07:34 +01:00
Gideon Zenz and José Rebelo
3b4b7292c3
Invalidate HRV cache based on latest sample timestamp
...
Query latest HRV sample to invalidate also yesterday if needed
2025-12-20 19:07:34 +01:00
Gideon Zenz and José Rebelo
68f12ea92e
Invalidate HRV summary cache when new data arrives
...
Add HrvCacheInvalidationReceiver to listen for ACTION_NEW_DATA broadcasts and invalidate the computed HRV summary cache for the current day.
2025-12-20 19:07:34 +01:00
Gideon Zenz and José Rebelo
9ef4942102
Add HRV summary computation for Huawei devices
...
Uses ComputedHrvSummarySampleProvider to generate HRV summary statistics
from per-minute HRV values stored by Huawei devices.
2025-12-20 19:07:34 +01:00
José Rebelo and José Rebelo
36e067938c
Add charts loading indicator
2025-12-20 19:07:34 +01:00
Gideon Zenz and José Rebelo
ca532a6350
Implemented a static, thread-safe LRU cache that persists across provider instances:
2025-12-20 19:07:34 +01:00
Gideon Zenz and José Rebelo
290379a462
- Use SleepAnalysis for last night HRV calculation
...
- remove ColmiHrvSummarySampleProvider
2025-12-20 19:07:34 +01:00
Gideon Zenz and José Rebelo
0c7a2c3960
Adding Yawell Rings
2025-12-20 19:07:34 +01:00
Gideon Zenz and José Rebelo
8c0b8934ee
Require minimum 7 days of overnight HRV data before calculating baseline status to prevent unreliable POOR status in first few days
2025-12-20 19:07:34 +01:00
Gideon Zenz and José Rebelo
9df32ad1ac
Generic provider creation
...
Garmin algorithm implementation
POOR status addition
Caching for performance
Application to both Huami and Ultrahuman devices
2025-12-20 19:07:34 +01:00
Gideon Zenz and José Rebelo
c0f5da073e
Add HRV summary computation for Huami/Zepp OS devices
...
Implements HuamiHrvSummarySampleProvider to compute HRV summary statistics
on-demand from per-minute HRV value samples. Calculates weekly averages,
last night values, baselines, and HRV status (LOW/UNBALANCED/BALANCED).
This enables full HRV dashboard and status screen functionality for devices
that only provide raw HRV measurements without pre-computed summaries.
- Created HuamiHrvSummarySampleProvider with computed summary logic
- Added getHrvSummarySampleProvider() override in HuamiCoordinator
- Computes 7-day rolling average, last-night stats, and 14-day baselines
- Works retroactively with existing historical HRV data
2025-12-20 19:07:34 +01:00
José Rebelo
f005db7e1d
Discard sleep sessions that are too small
2025-12-20 14:43:36 +00:00
José Rebelo
e7c4cc11f7
Prevent out of order samples when filling gaps
2025-12-20 14:43:11 +00:00
José Rebelo
46ea7cc1c5
FwAppInstallerActivity: Improve logging
2025-12-20 14:02:11 +00:00
dependency-bot and José Rebelo
65f03195e8
Update dependency androidx.activity:activity-ktx to v1.12.2
2025-12-20 10:33:29 +01:00
dependency-bot
3a8dc21d06
Update dependency com.google.protobuf:protobuf-gradle-plugin to v0.9.6
2025-12-20 01:04:53 +00:00
Me7c7 and José Rebelo
eaf0250c8e
Huawei: sync raw ECG data(no UI)
2025-12-19 23:50:25 +01:00
dependency-bot
db121a4761
Update kotlin monorepo to v2.3.0
2025-12-17 01:04:08 +00:00
José Rebelo
07884a277b
Garmin Edge 840: Initial support
2025-12-15 20:48:25 +00:00
José Rebelo
5fdc2b8fc6
Garmin: Basic http web request/response parsing
...
As per https://gadgetbridge.org/internals/specifics/garmin-protocol/#internal-structures
2025-12-15 20:45:19 +00:00
Kreato
790e18a9e3
Add support for Galaxy Buds3 Pro
...
- Add Galaxy Buds3 Pro device coordinator and assets
- Remove unnecessary duplicate entries
- Clean up device type migration file
2025-12-14 00:55:39 +03:00
José Rebelo
625e007b71
Xiaomi-protobuf: Enable active calories
2025-12-13 18:45:28 +00:00
José Rebelo
74612b8db8
CMF Buds 2: Initial support
2025-12-13 17:35:06 +00:00
José Rebelo
f208e6a6fc
Zepp OS: Add jump rope stats
2025-12-13 16:50:02 +00:00
dependency-bot and Arjan Schrijver
02acd94a1e
Update dependency org.mockito:mockito-core to v5.21.0
2025-12-13 13:39:36 +01:00
dependency-bot
fbf48d5f8a
Update dependency com.android.tools.build:gradle to v8.13.2
2025-12-13 01:05:07 +00:00
Andreas Shimokawa
f765c70971
ATC_BLE_OEPL: fix support for WO 260 BWRY JD V2
0.88.0
2025-12-09 11:03:41 +01:00
José Rebelo
7b0ba247e9
Update changelog
2025-12-07 23:02:56 +00:00
José Rebelo
e923d54cb3
Remove "Bluetooth is disabled" toast when getting available devices
...
A simple getter should not be responsible for checking whether bluetooth
is available or not.
2025-12-07 17:36:00 +00:00
José Rebelo
0e54d331e4
Fix linter
2025-12-07 17:15:18 +00:00
José Rebelo
bf7a71341f
Garmin: Fix motocross subtype
2025-12-07 17:10:10 +00:00
José Rebelo
4595facdb9
Update changelog
2025-12-07 16:28:33 +00:00
Priit Jõerüüt and Hosted Weblate
c187ca7c05
Translated using Weblate (Estonian)
...
Currently translated at 33.7% (1458 of 4326 strings)
Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/et/
2025-12-07 15:11:18 +01:00
vcodesai and Hosted Weblate
ac805d21d3
Translated using Weblate (Greek)
...
Currently translated at 47.4% (2052 of 4325 strings)
Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/el/
2025-12-07 15:11:17 +01:00
Fjuro and Hosted Weblate
8b7726b464
Translated using Weblate (Czech)
...
Currently translated at 100.0% (4325 of 4325 strings)
Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/cs/
2025-12-07 15:11:16 +01:00
Christian Thiele and Hosted Weblate
fd792d3a66
Translated using Weblate (German)
...
Currently translated at 100.0% (4325 of 4325 strings)
Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/de/
2025-12-07 15:11:16 +01:00
diskacz and Hosted Weblate
8a5a4013b5
Translated using Weblate (Polish)
...
Currently translated at 100.0% (4324 of 4324 strings)
Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/pl/
2025-12-07 15:11:15 +01:00
Michael and Hosted Weblate
77c90db517
Translated using Weblate (German)
...
Currently translated at 99.7% (4315 of 4324 strings)
Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/de/
2025-12-07 15:11:14 +01:00
大王叫我来巡山 and Hosted Weblate
d4ae43324c
Translated using Weblate (Chinese (Simplified Han script))
...
Currently translated at 100.0% (4324 of 4324 strings)
Translation: Freeyourgadget/Gadgetbridge
Translate-URL: https://hosted.weblate.org/projects/freeyourgadget/gadgetbridge/zh_Hans/
2025-12-07 15:11:13 +01:00