Commit Graph
10927 Commits
Author SHA1 Message Date
Daniele Gobbetti 537b0580b5 Garmin: fix for watch staying in synchronizing state on first connection
Reported in issue 3269, https://codeberg.org/Freeyourgadget/Gadgetbridge/issues/3269#issuecomment-1845355

Also run refactor code on the whole file
2024-05-28 12:35:55 +02:00
José Rebelo e5d41e75ad Garmin Vivosmart 5: Initial support 2024-05-27 20:08:00 +01:00
José Rebelo 2fa22224bd Garmin: Determine ML characteristic dynamically 2024-05-27 20:08:00 +01:00
José Rebelo ef11dd0f16 Flush logs before sharing 2024-05-26 15:38:11 +01:00
José Rebelo 7b21f85613 Garmin Venu 2 Plus: Initial support 2024-05-26 09:04:57 +01:00
José Rebelo db33bc3ee9 Xiaomi Spp: Log plaintext payload
It's very hard to troubleshoot issues with Xiaomi Spp devices from logs
without having access to the plain-text payload, so we now log it.
2024-05-25 09:35:25 +01:00
José RebeloandDaniele Gobbetti b704276e49 Garmin: Fix 304 response when agps matches cache 2024-05-24 22:24:09 +02:00
Daniele Gobbetti ba9e5c8a77 Garmin: various minor changes
remove message placeholders referring to legacy code,
remove try-catch from the weather data message building method
lower the frequency of music control messages
2024-05-24 22:24:09 +02:00
Daniele Gobbetti 9c4da444cf Garmin: fix protobuf chunked fragments handling
remove chunk from the map once it is complete if it is incoming, fix the removal of outgoing chunks
also return a warn log message if the protobuf status is not OK.
2024-05-24 22:24:09 +02:00
José RebeloandDaniele Gobbetti 5224244f74 Garmin: Fix edge case in sleep overlay
If the sleep session ends outside the queried time range, we need to
fetch the next sleep stage outside the range so that we can overlay it
properly.
2024-05-24 22:24:09 +02:00
José RebeloandDaniele Gobbetti 8e1511bd6e Garmin: Fix overcounting of steps in some cases
We need to take into account the previous sample that is outside the
range that was queried, so that we can correct the first sample in the
range.
2024-05-24 22:24:09 +02:00
José RebeloandDaniele Gobbetti 39bbd2e579 Garmin: Improve transaction logging 2024-05-24 22:24:09 +02:00
José RebeloandDaniele Gobbetti d741b6ff66 Garmin: Ignore agps request if etag matches
Some watches reboot on http 304
2024-05-24 22:24:09 +02:00
José RebeloandDaniele Gobbetti ca8d595493 Garmin: Configure contacts 2024-05-24 22:24:09 +02:00
José RebeloandDaniele Gobbetti f3cc07af27 Garmin: Fix COBS encoding of long non-zero sections 2024-05-24 22:24:09 +02:00
José RebeloandDaniele Gobbetti 88f687496c Garmin: Improve logging during file downloading 2024-05-24 22:24:09 +02:00
José RebeloandDaniele Gobbetti 88a9c81dcc Garmin: Implement etag for agps requests 2024-05-24 22:24:09 +02:00
Daniele Gobbetti ea1c1c808c Change java package of garmin protobuf files 2024-05-24 22:24:09 +02:00
Daniele Gobbetti 0cf73a2120 Remove all the legacy vivomove HR code.
Also replaces support for device through the new garmin code path.
The Entities are preserved to enable on-demand database migration in case some user had previously synchronized data.
2024-05-24 22:24:09 +02:00
José RebeloandDaniele Gobbetti 2f729dbe29 Garmin: Allow agps updates for multiple URLs 2024-05-24 22:24:09 +02:00
lorddavidiiiandDaniele Gobbetti a0943649bd Initial support for Garmin Vivoactive 4 2024-05-24 22:24:09 +02:00
José RebeloandDaniele Gobbetti 6f9f49aa4a Garmin Venu 3: Fix device name 2024-05-24 22:24:09 +02:00
José RebeloandDaniele Gobbetti 2ac83fbc31 Garmin: Set default icon to a round watch 2024-05-24 22:24:09 +02:00
José RebeloandDaniele Gobbetti f210b3b732 Garmin: Fix overcounting of steps
When going past midnight we were not resetting the number of steps,
resulting in a negative value, which would cause the next sample to
overcount.
2024-05-24 22:24:09 +02:00
Daniele Gobbetti 709afc5df7 Garmin: fix spurious protobuf messages 2024-05-24 22:24:09 +02:00
Daniele Gobbetti 2a9a01e40b Garmin: improve weather information
Add Aqi Field Definition and field to today weather and daily forecast, as both are available in WeatherSpec.
Add Feels like temperature to hourly forecast but populate with the forecasted temperature as the field is not available in Weatherspec for hourly.
Use temperature Field Definition for dew point and add it to today's weather.

Fields dew point and air quality could have been removed from the hourly weather definition but are kept in to test compatibility of these changes with watches.
2024-05-24 22:24:09 +02:00
Daniele Gobbetti ebe371de3c Garmin: Remove handling of legacy cache directory 2024-05-24 22:24:09 +02:00
Daniele Gobbetti c3a6db3309 Garmin: adjust test after adding distance field 2024-05-24 22:24:09 +02:00
José RebeloandDaniele Gobbetti 553f6171e6 Garmin: Map all supported workout types 2024-05-24 22:24:09 +02:00
José RebeloandDaniele Gobbetti 8be679d1fd Garmin: Overwrite files if local size is 0, omit date if equal to garmin epoch 2024-05-24 22:24:09 +02:00
José RebeloandDaniele Gobbetti aee42ec1be Garmin: Fallback to session for workout type 2024-05-24 22:24:08 +02:00
José RebeloandDaniele Gobbetti 4d78fdd883 Garmin: Fix overcounting of steps 2024-05-24 22:24:08 +02:00
José RebeloandDaniele Gobbetti 904c995a3e Garmin: Throttle notification updates on fit parsing 2024-05-24 22:24:08 +02:00
José RebeloandDaniele Gobbetti 6f5f944235 Garmin: Fetch fit files HRV status 2024-05-24 22:24:08 +02:00
José RebeloandDaniele Gobbetti f7bfd56d46 Garmin: Process downloaded fit files asynchronously
Fixes occasional ANR while syncing activity data.
2024-05-24 22:24:08 +02:00
José RebeloandDaniele Gobbetti a25d8eae30 Activity Summary: Draw fit file if available 2024-05-24 22:24:08 +02:00
José RebeloandDaniele Gobbetti 0b07f36817 Garmin: Persist and display activity
- Steps, hr, intensity
- Sleep stages
- Stress
- SpO2
- Workouts
2024-05-24 22:24:08 +02:00
José RebeloandDaniele Gobbetti 89046d0815 Garmin: Improve computed timestamp parsing
timestamp16 must be applied against garmin epoch.
2024-05-24 22:24:08 +02:00
José RebeloandDaniele Gobbetti bdd698b7d3 Garmin: Map more global fit messages
* Events
* Goals
* Gps Metadata
* Laps
* Record
* Respiration rate
* Sessions
* SpO2
* Time in Zone
2024-05-24 22:24:08 +02:00
José RebeloandDaniele Gobbetti 92b838f90c Garmin: Fix logging during tests 2024-05-24 22:24:08 +02:00
LolekandDaniele Gobbetti 1ecb1feb4d Initial support for Garmin Swim 2 2024-05-24 22:24:08 +02:00
hrdlandDaniele Gobbetti 165f41a08f Add AGPS for Garmin Forerunner 245 2024-05-24 22:24:08 +02:00
Daniele Gobbetti 906ad0c68f Garmin: enable AGPS update for all Instinct 2 devices 2024-05-24 22:24:08 +02:00
kuhyandDaniele Gobbetti 880e18fffc Garmin protocol: show AGPS data status in settings 2024-05-24 22:24:08 +02:00
kuhyandDaniele Gobbetti 91c2408170 Garmin protocol: add AGPS data checks 2024-05-24 22:24:08 +02:00
kuhyandDaniele Gobbetti 22fafebd91 Garmin protocol: install AGPS data as firmware 2024-05-24 22:24:08 +02:00
kuhyandDaniele Gobbetti 9f9441ba01 Garmin protocol: improve detection of successfully sent files (DataTransferHandler) 2024-05-24 22:24:08 +02:00
kuhyandDaniele Gobbetti 4152ec1570 Garmin protocol: add support for AGPS data retrieval 2024-05-24 22:24:08 +02:00
Daniele Gobbetti 457ff8b88f Fixup: Introduce device specific writable directory (MAC address)
Add logic to not fetch again files which had the previously defined name
2024-05-24 22:24:08 +02:00
Daniele Gobbetti 8c88cc992a Introduce device specific writable directory (MAC address)
Also adds temporary method to move the fetched files from the legacy path to the new one which does not include the device name.
Also moves the FileIndex to the end of the cached files to allow for easier sorting.

Cherry-picked from 525b395c01ce57449ee9a8f74af663595223279e and adapted
2024-05-24 22:24:08 +02:00