Daniele Gobbetti
34fd0ee04c
Garmin: initial plumbing for notifications' images (blind implementation)
...
This commit adds the signaling of notifications with images to the watch.
According to https://codeberg.org/Freeyourgadget/Gadgetbridge/issues/3469 the watch should followup with a protobuf request "MediaRequest".
The protobuf is documented in https://gadgetbridge.org/internals/specifics/garmin-protocol/#mediarequest
As examples and only intended to help further developments, two new methods getNotificationAttachmentPath and getNotificationAttachmentBitmap are added to GarminSupport
2024-05-25 15:24:56 +02:00
Daniele Gobbetti
1435c3a937
Add support for picture attachments in notifications
...
Also adds a local cache for pictures which is handled by the NotificationListener itself.
If the picture is hosted in a third party content provider it gets queried.
If the Bitmap is embedded in the notification, the local cache is used.
In any case the NotificationSpec just holds a String to the absolute file path
2024-05-25 15:24:56 +02: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é Rebelo
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é Rebelo
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é Rebelo
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é Rebelo
39bbd2e579
Garmin: Improve transaction logging
2024-05-24 22:24:09 +02:00
José Rebelo
d741b6ff66
Garmin: Ignore agps request if etag matches
...
Some watches reboot on http 304
2024-05-24 22:24:09 +02:00
José Rebelo
ca8d595493
Garmin: Configure contacts
2024-05-24 22:24:09 +02:00
José Rebelo
f3cc07af27
Garmin: Fix COBS encoding of long non-zero sections
2024-05-24 22:24:09 +02:00
José Rebelo
88f687496c
Garmin: Improve logging during file downloading
2024-05-24 22:24:09 +02:00
José Rebelo
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é Rebelo
2f729dbe29
Garmin: Allow agps updates for multiple URLs
2024-05-24 22:24:09 +02:00
lorddavidiii
a0943649bd
Initial support for Garmin Vivoactive 4
2024-05-24 22:24:09 +02:00
José Rebelo
6f9f49aa4a
Garmin Venu 3: Fix device name
2024-05-24 22:24:09 +02:00
José Rebelo
2ac83fbc31
Garmin: Set default icon to a round watch
2024-05-24 22:24:09 +02:00
José Rebelo
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é Rebelo
553f6171e6
Garmin: Map all supported workout types
2024-05-24 22:24:09 +02:00
José Rebelo
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é Rebelo
aee42ec1be
Garmin: Fallback to session for workout type
2024-05-24 22:24:08 +02:00
José Rebelo
4d78fdd883
Garmin: Fix overcounting of steps
2024-05-24 22:24:08 +02:00
José Rebelo
904c995a3e
Garmin: Throttle notification updates on fit parsing
2024-05-24 22:24:08 +02:00
José Rebelo
6f5f944235
Garmin: Fetch fit files HRV status
2024-05-24 22:24:08 +02:00
José Rebelo
f7bfd56d46
Garmin: Process downloaded fit files asynchronously
...
Fixes occasional ANR while syncing activity data.
2024-05-24 22:24:08 +02:00
José Rebelo
a25d8eae30
Activity Summary: Draw fit file if available
2024-05-24 22:24:08 +02:00
José Rebelo
0b07f36817
Garmin: Persist and display activity
...
- Steps, hr, intensity
- Sleep stages
- Stress
- SpO2
- Workouts
2024-05-24 22:24:08 +02:00
José Rebelo
89046d0815
Garmin: Improve computed timestamp parsing
...
timestamp16 must be applied against garmin epoch.
2024-05-24 22:24:08 +02:00
José Rebelo
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é Rebelo
92b838f90c
Garmin: Fix logging during tests
2024-05-24 22:24:08 +02:00
Lolek
1ecb1feb4d
Initial support for Garmin Swim 2
2024-05-24 22:24:08 +02:00
hrdl
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
kuhy
880e18fffc
Garmin protocol: show AGPS data status in settings
2024-05-24 22:24:08 +02:00
kuhy
91c2408170
Garmin protocol: add AGPS data checks
2024-05-24 22:24:08 +02:00
kuhy
22fafebd91
Garmin protocol: install AGPS data as firmware
2024-05-24 22:24:08 +02:00
kuhy
9f9441ba01
Garmin protocol: improve detection of successfully sent files (DataTransferHandler)
2024-05-24 22:24:08 +02:00
kuhy
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
José Rebelo
72f1d0c82c
Garmin: Make fit header crc optional
2024-05-24 22:24:08 +02:00
Daniele Gobbetti
3abf78d8c2
Garmin: enable unicode Emoji for all devices
...
This seems to be widely supported by garmin devices, hence enable it in the base coordinator. Specific devices not supporting Unicode Emojis can override this method and return false.
2024-05-24 22:24:08 +02:00
Daniele Gobbetti
f1f77abe18
Garmin: harmonize device names
...
All device name strings start with manufacturer name.
Normalized the usage of accented i.
2024-05-24 22:24:08 +02:00