Commit Graph
15612 Commits
Author SHA1 Message Date
Arjan Schrijver 5dfa20202d Endurain: Improve token refresh logic 2026-06-19 23:31:23 +02:00
Arjan Schrijver df89cf8bb6 Endurain: Fetch and show server version string 2026-06-19 23:31:23 +02:00
Arjan Schrijver 692df2e3aa Endurain: Support uploading workout GPX file 2026-06-19 23:31:23 +02:00
Arjan Schrijver efdc8b9121 Endurain: Support refreshing auth token 2026-06-19 23:31:23 +02:00
Arjan Schrijver 38e02f6e78 Endurain: Functional local login implementation 2026-06-19 23:31:23 +02:00
Arjan Schrijver f92d8c8ebb Endurain: First try with bottomsheet instead of dialogs 2026-06-19 23:31:23 +02:00
Arjan Schrijver 256d2eb59a Endurain: Initial prefs and online auth implementation 2026-06-19 23:31:23 +02:00
trentsuzukiandtrentsuzuki 78ed1d2d1a Improve HRV status chart views 2026-06-19 21:20:06 +02:00
José Rebelo 7c21dbe819 Ignore foreground service notifications 2026-06-19 09:05:27 +01:00
José Rebelo 36a3fa7cd2 Forerunner 170: Initial support 2026-06-19 08:30:01 +01:00
José Rebelo 545cda0310 Fix chart overshooting values (#6298, #4661) 2026-06-19 08:25:28 +01:00
trentsuzukiandJosé Rebelo 7cc7e82e5a Show VO2 max to one decimal place 2026-06-19 00:39:51 +02:00
Gideon Zenz a666b4acb1 Health Connect: Debounce event-triggered sync and fix resting HR lower bound
Two robustness fixes for the event-triggered Health Connect sync.

Debounce: an activity fetch can broadcast ACTION_NEW_DATA several times in
quick succession - multi-phase fetches and some chatty drivers emit the finish
signal mid-fetch - and each broadcast immediately enqueued a sync. A sync that
runs while the fetch is still in progress reads a half-populated database and
can drop or duplicate records for the in-flight range. Enqueue the per-device
worker with a short initial delay and ExistingWorkPolicy.REPLACE, so a burst of
broadcasts collapses into one sync that runs once the fetch has settled. The
per-device work name is unchanged (devices debounce independently) and the
manual/debug sync paths use separate work names, so "Sync now" is unaffected.

Resting heart rate: the platform RestingHeartRateRecord rejects bpm < 1, but
the filter allowed 0..300, so a 0 bpm sample threw IllegalArgumentException and
aborted that data type's slice. Filter 1..300 instead, matching the regular
HeartRate syncer. Update the existing boundary test accordingly.
2026-06-18 16:18:21 +02:00
José Rebelo 03b8f3b74d Merge pull request 'reduce DAO related merge conflicts for new devices' (#6294)
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/6294
2026-06-17 23:33:58 +02:00
José Rebelo 28f8682335 Log notification flags 2026-06-17 21:07:44 +01:00
Thomas Kuehne c6102f1af4 reduce DAO related merge conflicts for new devices
- add GenericBodyEnergySample
- add GenericRespiratoryRateSample and AbstractSleepScoreSample
- and GenericSleepScoreSample
- add AbstractMetricSample
- add SleepStageSample and AbstractSleepStageSample
- add additional entries to MetricSample.Metric
2026-06-14 20:13:22 +00:00
José Rebelo 397088b289 Merge pull request 'BangleJS: add optional device target filter for com.banglejs.uart.tx intent' (#6290)
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/6290
2026-06-14 20:02:39 +02:00
José Rebelo 8b6924f60a Merge pull request 'add BundleUtils.addToBundle' (#6284)
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/6284
2026-06-14 19:55:46 +02:00
Thomas Kuehne db09823aca BangleJS: add optional device target filter for com.banglejs.uart.tx intent
Analog to IntentApiReceiver enhancement #6250

Adds an optional `device` extra containing the MAC address of the target gadget.
Missing `device` extra or a `null` value forward the intent payload to all initialised BangleJS.
The existing device preference filter (device_intents == true) remains unchanged.
2026-06-14 17:50:27 +00:00
José Rebelo ab87538e69 Merge pull request 'git: reduce exposure risk for local secrets' (#6286)
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/6286
2026-06-14 14:24:03 +02:00
José Rebelo ef9a037f94 Merge pull request 'BtLEAction: code review' (#6287)
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/6287
2026-06-14 14:23:48 +02:00
Thomas Kuehne b2588c5761 Garmin: add more enumeration entries 2026-06-14 11:29:53 +00:00
Thomas Kuehne 2a7ccef529 BtLEAction: code review 2026-06-14 10:43:39 +00:00
Thomas Kuehne 1313392a84 add BundleUtils.addToBundle
- deduplicate code from BangleJSDeviceSupport and IntentApiReceiver
- add support for more standard types
- add BangleJS support for simple JSON arrays and JSON null values:
   - `"nullValue" : null`
   - `"booleanArray" : [true, false]`
   - `"doubleArray" : [1.2, -3.4]`
   - `"longArray" : [12, -34]`
   - `"StringArray" : ["12", "xyz"]`
2026-06-14 10:36:11 +00:00
Thomas Kuehne 16826a3091 fix: SampleProviderTest's use of addGBActivitySamples 2026-06-14 10:31:41 +00:00
Andreas Shimokawa 95c1cf770d Pebble: Support TrekV3Reworked watchface natively
(for @izzy)
2026-06-14 12:30:53 +02:00
duhowandJosé Rebelo 0fd997ccaf add comment for find device 2026-06-14 10:34:05 +02:00
duhowandJosé Rebelo 89ca02fa59 restore comments 2026-06-14 10:34:05 +02:00
duhowandJosé Rebelo afbf2df4c6 move message functions, refactor into Abstract Protocol 2026-06-14 10:34:05 +02:00
duhowandJosé Rebelo 9fd323789e refactor: add protocol implementation and command variables 2026-06-14 10:34:05 +02:00
José Rebelo cb5c820f4f Merge pull request 'Health Connect: Recover late-arriving step samples to fix step count discrepancies' (#6215)
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/6215
2026-06-14 00:55:52 +02:00
José Rebelo 0c71905c6c Merge pull request 'Health Connect: Harden sync-start selection against non-positive sample timestamps' (#6207)
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/6207
2026-06-13 19:50:12 +02:00
Spiralo-IdioideandJosé Rebelo 12605bd749 Intent extra handling : Use instanceof pattern matching 2026-06-13 19:46:32 +02:00
Spiralo-IdioideandJosé Rebelo 602e4e15b2 BangleJs : Added support for different data types in intent extras 2026-06-13 19:46:32 +02:00
José Rebelo 0a0dd83220 FitPro: Add camera 2026-06-13 17:31:22 +01:00
José Rebelo 5e9e0c05e2 Xiaomi-protobuf: Keep notification IDs on reconnection (#6265)
Otherwise we stop being able to remove notifications.
2026-06-13 17:10:01 +01:00
duhowandJosé Rebelo 25974bc504 add device name to test 2026-06-13 16:43:12 +02:00
duhowandJosé Rebelo 62105fbbf2 FitPro: Add support for Yell Smart Watch GT3 2026-06-13 16:43:12 +02:00
José Rebelo 0fbd839530 Merge pull request 'cherry picks for Zepp OS weather (#5653)' (#6260)
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/6260
2026-06-13 16:41:23 +02:00
NTeditorandJosé Rebelo 62406519d1 Add realme Buds T100/T200/T300 to AbstractDeviceCoordinatorTest.deviceMatchingByNameTest 2026-06-13 16:38:37 +02:00
NTeditorandJosé Rebelo 9699282038 Add find support for Realme Buds T200 2026-06-13 16:38:37 +02:00
NTeditorandJosé Rebelo 4a7ce22529 Add noise control touch configuration for Realme Buds T200 2026-06-13 16:38:37 +02:00
NTeditorandJosé Rebelo 90725ad70e Added basic support for Realme Buds T200 2026-06-13 16:38:37 +02:00
José Rebelo 438eb1b80f Merge pull request 'fix typos in device independent comments' (#6279)
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/6279
2026-06-13 16:33:49 +02:00
Gideon Zenz d4c36e2e36 Health Connect: Exclude bad-measurement sentinels from HR and SpO2 sync
PR #6195 widened the syncer guards to match Health Connect's enforced
bounds, but widened too much: it overlooked that some of Gadgetbridge's
in-band sentinel values fall inside HC's accepted range, so placeholder
readings leaked into Health Connect and showed up as spurious data points.

- HeartRate / RestingHeartRate: 255 is GB's "illegal value" marker for a
  bad measurement (ActivitySample.getHeartRate), and it sits inside HC's
  1..300 / 0..300 range. Exclude it explicitly while keeping HC's bounds.
- SpO2: 0 means "not measured" (sample providers return null on 0 and all
  SpO2 charts filter getSpo2() > 0). Raise the lower bound to 1.

Add HeartRateSyncerTest covering the HeartRateSyncer.sync() path (sentinel
255 and 0 are not inserted; valid range passes) and extend
SyncerRangeValidationTest with the new boundaries.
2026-06-13 11:13:37 +02:00
Thomas Kuehne bb03a2d5eb fix typos in device independent comments 2026-06-12 14:23:06 +00:00
José Rebelo 1f65fc26eb Victron SmartShunt: Initial support 2026-06-11 21:34:11 +01:00
Thomas KuehneandJosé Rebelo 6ad6638605 fix device independent typos 2026-06-10 17:43:46 +02:00
José Rebelo fd03accd4c Xiaomi Smart Band 10 Pro: Experimental support 2026-06-08 21:09:15 +01:00
Arjan Schrijver a2c249b86e OpenTracks: Fix extra empty activitytrack and rare crash 2026-06-08 21:25:46 +02:00