CaptKentish
8a72bf8895
Adding activity kind snorkeling to garmin devices ( #4002 )
...
Co-authored-by: CaptKentish <captkentish@noreply.codeberg.org>
Co-committed-by: CaptKentish <captkentish@noreply.codeberg.org>
2024-08-18 10:26:03 +00:00
Martin.JM
10403a375b
Huawei: Implement new activity types
2024-08-18 11:06:43 +02:00
José Rebelo
f0825d1ab6
Garmin: Enable fit re-processing in non-debug builds
...
- Make workout summary persisting idempotent
- Do not delete any data from the database during re-processing, since
the entire process is idempotent now
- Improve feedback during re-processing using toasts
- Prevent re-processing from being started multiple times in parallel
2024-08-17 20:57:11 +01:00
José Rebelo
94fae05b02
Mark getActivitySamples as deprecated and disable tests
...
Test regression introduced by the refactor in 34378a4a1
The function is not used a lot, and it's currently misleading alongside
getAllActivitySamples, so it could eventually be removed and the logic
simplified.
2024-08-17 19:56:17 +01:00
José Rebelo
b9940c510b
Garmin: Fix crash on decoding null gps coordinates
2024-08-17 19:47:34 +01:00
José Rebelo
0e985d5461
Garmin: Fix crash on large gpx import
2024-08-17 14:41:30 +01:00
José Rebelo
79c2fc21a4
Garmin: Enable flashing
2024-08-17 12:13:08 +01:00
José Rebelo
90e36e0065
Push implicit callback modify and write request response to subclasses
...
Push the legacy values as overrides to all subclasses, ensuring that new
devices start with the expected correct behavior.
Overrides can be removed from the subclasses if devices are confirmed to
work without them / not rely on the erroneous behavior.
2024-08-17 10:12:57 +01:00
Vitaliy Tomin
1940db7204
huawei: Handle some watchface install errors
...
* handle too many watchface installed
* handle insufficient space
* sort related code while at it
2024-08-17 08:30:46 +00:00
Daniele Gobbetti
0a51598204
Fixup: Garmin: fix major issue with field encoding/decoding
...
Temperature offset must have its sign flipped.
2024-08-17 08:00:26 +02:00
Martin.JM
75047ecdea
Huawei: Send OK when starting GPS
...
I hope this will solve #3990 .
2024-08-16 23:26:48 +02:00
Daniele Gobbetti
cd46e24819
Garmin: Mimic auth negotiation requested byte and flags.
...
The previous attempt to send all zeroes (in 7fa5cd1be5
) didn't yield actionable progress, hence we try sending back what the watch sent to us.
Blindly implemented based on the legacy vivomoveHR code, not tested against real devices.
2024-08-16 19:26:44 +02:00
Daniele Gobbetti
3f8eeebc5a
Garmin: simplify handling canned replies and only send error if no reply is set at all
2024-08-16 19:18:50 +02:00
Daniele Gobbetti
29787d0c9b
Garmin: add gpx import functionality for models that support it
...
Add a Field definition for GPS coordinates and remove the corresponding method from GarminUtils.
Add a new message COURSE and some fields to other known messages.
Also centralize some utility methods in GpxParser and GpxTrack, adapting ZeppOsGpxRouteFile.
Be aware that the capability used to identify the supported watches might be the wrong one.
2024-08-16 18:52:13 +02:00
Daniele Gobbetti
f2f6536ea8
Garmin: fix major issue with field encoding/decoding
...
Our implementation of scale and offset was backwards: we were adding offset and then dividing by scale when decoding fields, but the publicly available protocol description dictates otherwise ( http://web.archive.org/web/20240519102659/https://developer.garmin.com/fit/protocol/#scaleoffset ): "the binary quantity is divided by the scale factor and then the offset is subtracted".
For this reason the sign of GARMIN_TIME_EPOCH in Timestamp field definition must be flipped as well.
2024-08-16 13:57:00 +02:00
José Rebelo
404e432adf
Map activity kinds for Garmin, CMF and Zepp OS
2024-08-15 16:36:07 +01:00
José Rebelo
9354765d34
Garmin: Fix typo on TRAINING subtype code
2024-08-14 23:19:01 +01:00
José Rebelo
34378a4a11
Refactor ActivityKind into an enum
2024-08-14 23:13:12 +01:00
CaptKentish
8c7cc98d36
Garmin : map more activities ( #3848 )
...
Co-authored-by: CaptKentish <captkentish@noreply.codeberg.org>
Co-committed-by: CaptKentish <captkentish@noreply.codeberg.org>
2024-08-14 22:11:31 +00:00
José Rebelo
7c9016b5a4
Fossil: Fix exception when support class is terminated
2024-08-14 21:58:39 +02:00
Daniele Gobbetti
7fa5cd1be5
Garmin: further work for auth negotiation
...
Add status message parsing and change the reply logic for watch-initiated Auth (in attempt to fix #3986 ): before this changeset the phone would reply with a generic ACK and then send a request to the watch for setting the auth (with all zeroes);
after this changeset the phone replies with a specific auth ack/status message but it ignores what the watch requested and acknowledges back all zeroes.
Blindly implemented based on the legacy vivomoveHR code, not tested against real devices.
2024-08-14 10:04:32 +02:00
Severin von Wnuck-Lipinski
d1b4e013d3
Add defaults and fix NPE for Soundcore Motion 300
2024-08-12 22:55:26 +02:00
José Rebelo
9ca561a30a
Garmin: Fix weather temperature and speed units
2024-08-10 20:00:56 +01:00
a0z
82657febf8
Garmin body energy level ( #3964 )
...
Co-authored-by: a0z <a0z@tutamail.com>
Co-committed-by: a0z <a0z@tutamail.com>
2024-08-09 21:35:47 +00:00
Severin von Wnuck-Lipinski
69441a6a79
Use SoundcorePacket for Liberty 3 Pro
2024-08-09 18:18:47 +00:00
José Rebelo
c06e22b85e
Huawei: Fix NPE when notification has no body
2024-08-08 23:30:52 +01:00
Severin von Wnuck-Lipinski
be3f8375f9
Add support for Soundcore Motion 300
2024-08-07 20:44:34 +00:00
Severin von Wnuck-Lipinski
1885b05168
Fix Soundcore Liberty package name
2024-08-07 20:44:34 +00:00
Severin von Wnuck-Lipinski
1a0ca0ce52
Move Soundcore Liberty code into subfolder
2024-08-07 20:44:34 +00:00
José Rebelo
2636dd85f1
Remove dynamic shortcut when deleting device
2024-08-07 20:48:43 +01:00
Daniele Gobbetti
1d4c85b732
Garmin: implement (some kind of) auth negotiation message
...
Blindly implemented based on the legacy vivomoveHR code, not tested against real devices.
2024-08-07 14:58:26 +02:00
José Rebelo
14478f89ac
Fix typo in GLONASS
2024-08-06 20:54:53 +01:00
José Rebelo
a96432a8a3
Garmin Fenix 5 Plus: Experimental support
2024-08-06 19:36:37 +01:00
Martin.JM
f15f60542d
Huawei: Fix for Huawei Band 9
...
Linked to #3784 .
2024-08-06 18:28:09 +00:00
José Rebelo
dd93133168
Garmin Forerunner 965: Initial support
2024-08-05 23:25:56 +01:00
José Rebelo
7efeb14ca4
Test Device: Add HRV and body energy
2024-08-05 21:10:01 +01:00
José Rebelo
2ed6247658
Improve HR Y axis in sleep chart
2024-08-05 20:31:31 +01:00
José Rebelo
61e2411081
Garmin: Parse and persist body energy
2024-08-04 22:59:29 +01:00
José Rebelo
e19325fce9
Update HRV labels, use enum for status
2024-08-04 22:36:02 +01:00
a0z
f3b1a06d47
HRV Status ( #3953 )
...
Co-authored-by: a0z <a0z@tutamail.com>
Co-committed-by: a0z <a0z@tutamail.com>
2024-08-04 21:35:19 +00:00
José Rebelo
996d176cc2
Fix stress colors
2024-08-04 18:34:15 +01:00
a0z
a3e6d446d7
Sleep tabs refactor
2024-08-04 17:33:49 +00:00
José Rebelo
2f21c4bd9d
Garmin: Fix sleep data if there is a gap in activity samples
2024-08-04 18:04:37 +01:00
José Rebelo
60d5a2ae70
Display warning on find phone without companion pairing
2024-08-04 14:10:11 +01:00
Vitaliy Tomin
bf6d0d0f83
[Huawei] Add Huawei Watch GT Runner gadget
...
* created new gadget classes
* make tag 0x01 in TimeRequest response optional. There is no
such tag on GT Runner, at least on HarmonyOS 2 firmware.
2024-08-03 14:49:05 +00:00
José Rebelo
b616cc8ff1
Garmin: Allow HRV summary status to be null
...
We may have the averages, but not the status.
2024-08-02 22:51:02 +01:00
José Rebelo
b33ab0b1c8
Garmin: Parse and persist HRV_STATUS
2024-08-02 21:43:54 +01:00
Me7c7
532c545093
Huawei: Correct processing of set time command during the pairing process.
2024-08-02 19:51:39 +03:00
José Rebelo
d6d956b748
Xiaomi: Dump fetched files to storage
2024-08-01 22:54:45 +01:00
José Rebelo
29f57758fa
Huami/Xiaomi: Log session keys
...
It's otherwise impossible to troubleshoot issues from the logs, since
the communication is encrypted.
2024-08-01 22:54:45 +01:00
Martin.JM
b242ad1ec5
Huawei: Expand capabilities fix
2024-08-01 21:06:13 +02:00
Martin.JM
6f83fc815f
Huawei: Simple TruSleep support
...
Only supports start and end time of sleep periods.
2024-07-30 22:34:05 +02:00
Martin.JM
fbe727644e
Huawei: Add UV index support
...
Also adds "0.0 to 15.0" comment to the weatherSpec uvIndex.
2024-07-30 14:19:11 +02:00
Marc
af9eec3189
initial support for Garmin Forerunner 255 Music
2024-07-29 19:42:54 +00:00
José Rebelo
1c5e485bfe
Prevent crash when pairing with BondAction
2024-07-29 20:33:39 +01:00
Peter Kannewitz
00d90f4b8b
Garmin Forerunner 255S Music: Initial support ( #3932 )
...
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/3932
Co-authored-by: Peter Kannewitz <peter.kannewitz@posteo.net>
Co-committed-by: Peter Kannewitz <peter.kannewitz@posteo.net>
2024-07-28 21:01:53 +00:00
Martin.JM
2dbf70cb77
Huawei: Fix for weather
...
- Also the sunrise/set cannot be zero
- We could send a single forecast more when exactly 7 are provided
- It seems like the watches may require exactly 8 days to be sent for
the forecast - one of which is for today
2024-07-28 20:33:31 +02:00
José Rebelo
ecda7b9f78
CMF Watch Pro: Log outbound commands
2024-07-27 19:46:27 +01:00
José Rebelo
9d3632d505
Xiaomi Protobuf: Fix logging of found service
...
getSupportedServices is actually set by us, so it will include all known
services, not the ones that the device supports.
2024-07-27 15:12:42 +01:00
Vitaliy Tomin
c380cf98bb
Huawei: Fix Watch 3 music control
...
* it using integer button fields
* it has button code 100 means exit from music
control screen, no need to poll music info on this code
2024-07-27 11:48:33 +00:00
José Rebelo
da74ad036a
Xiaomi Protobuf: Fix deleting first screen
2024-07-26 23:22:00 +01:00
Martin.JM
82d12e5fbe
Huawei: Fix for weather
...
If there is no moon rise/setting on a day, it should not be zero. It
should not be set at all. Some bands/watches don't care, but some might.
2024-07-26 21:03:27 +02:00
José Rebelo
0188820048
Xiaomi: Fix off-by-one workout summary error ( #3916 )
2024-07-26 16:09:53 +01:00
José Rebelo
7712ea773a
Use ActivitySummaryData on CMF, Huami, Xiaomi, Zepp OS
2024-07-26 15:55:18 +01:00
José Rebelo
42de2fadd4
CMF Watch Pro: Do not send sunrise / sunset
...
Weather breaks since the watch does not support it.
Aditionally, only send up to 30 bytes for the location.
2024-07-26 10:54:26 +01:00
José Rebelo
d66f0cdd22
Vivitar HR & BP Monitor Activity Tracker: Initial support
2024-07-26 10:16:46 +01:00
José Rebelo
0aec5e0ad5
CMF Buds Pro 2: Initial support
2024-07-26 10:05:26 +01:00
José Rebelo
c72420281a
Fix crash on manual heart rate
2024-07-25 22:42:25 +01:00
Vitaliy Tomin
5a6a39d059
Huawei: Fix notification constraints for Watch 3
...
* Watch 3 reports some values as integer, while internal buffer
now uses short values. Actually all values here fits in short
so just cut leading zeros now. Addin exception for case cutted
values was non zeros
2024-07-25 21:43:34 +08:00
Vitaliy Tomin
a994603389
[Huawei] Add hichainlite related parsing code
2024-07-25 21:43:25 +08:00
Vitaliy Tomin
676678defb
[huawei] Hacks for HiChainLite (Watch 3)
...
* use authMode instead of deviceSupportType
* set authMode to 4 for hichain 3 and set 2 for any other hichain
* use full HuaweiCrypto() constructor
2024-07-25 21:42:14 +08:00
Vitaliy Tomin
ae1cb4e893
[Huawei] Add Huawei Watch 3 gadget
2024-07-25 21:25:52 +08:00
Vitaliy Tomin
f4322eee7f
Huawei: FileUpload refactoring, fixes Watch 3/4
...
* replaced fileType with fileId which recived on incoming data
in 28 03 FileHashSend.Response
* width/height in WatchfaceDeviceParams could be int or short
(int is present on Watch 3, short is all other tested devices)
* use in 27 05 WatchfaceConfirm.Request data recieved in previous
WatchfaceConfirm.Response
2024-07-24 19:03:41 +00:00
Vitaliy Tomin
5c5c0a48d4
Huawei: Improve watchface install support
...
* there are newer watchface files, which need to unpack inner
com.huawei.watchface as zip file and install watchface.bin
* also some description.xml has BOM which cause issue parsing as xml
2024-07-24 19:03:41 +00:00
Martin.JM
b8a2fc0076
Huawei: fix race condition in BtBR
...
Should be a fix for #3914 .
2024-07-22 20:27:06 +02:00
José Rebelo
20f4248e1c
Allow configuration of notification times
2024-07-22 12:40:55 +00:00
José Rebelo
dc0b044977
CMF Watch Pro 2: Add sunrise/sunset
2024-07-22 13:39:57 +01:00
Martin.JM
80256e9114
Huawei: Call dispose on SupportProvider
...
Now properly stops the battery runner when the device disconnects.
2024-07-22 11:55:00 +02:00
José Rebelo
9b668c784c
Huawei BLE: Improve reconnection
2024-07-21 21:20:50 +00:00
José Rebelo
7115b1e9f1
CMF Watch Pro: Send gps location to the watch
2024-07-21 12:22:25 +01:00
José Rebelo
89a3fcc920
CMF Watch Pro: Fix serial number truncating last 2 digits
2024-07-21 11:53:05 +01:00
José Rebelo
9b168f2ab3
CMF Watch Pro: Fix weather when aqi is not available
2024-07-20 20:21:21 +01:00
José Rebelo
d2c6712a87
Update changelog
2024-07-20 17:43:24 +01:00
José Rebelo
ab05b566bd
Zepp OS 3: Fix file transfer (notification icons, gpx upload)
2024-07-20 17:21:21 +01:00
José Rebelo
78b2c796bf
CMF Watch Pro 2: Add new workout types
2024-07-20 15:13:55 +01:00
José Rebelo
02c2fe43de
CMF Watch Pro: Fix chunked packet handling
2024-07-20 12:16:04 +01:00
José Rebelo
99e843606c
CMF Watch Pro 2: Fix workout gps recognition
2024-07-20 08:58:20 +01:00
José Rebelo
2e491d91a4
CMF Watch Pro 2: Fix workout summary parsing
2024-07-19 20:22:40 +01:00
Severin von Wnuck-Lipinski
b13c1b52be
Use default system TTS language
...
Calling TextToSpeech.setLanguage overrides the TTS language
set by the user in the system settings.
2024-07-19 19:12:55 +00:00
José Rebelo
650b3ec7dd
CMF Watch Pro 2: Experimental support
2024-07-18 22:15:36 +01:00
José Rebelo
68d8a46b65
Bangle.js: Fix crash on connection
2024-07-16 22:16:33 +01:00
José Rebelo
b36f6b5ecc
Connect back to device when waiting for scan
2024-07-16 20:52:08 +01:00
Arjan Schrijver
00298cc5a0
Remove wrongly added return statement
2024-07-15 22:18:37 +02:00
José Rebelo
6e2f7e01fc
Xiaomi: Parse HIIT workout summary
2024-07-15 20:09:12 +01:00
José Rebelo
8a6171962b
Skip long notification text if blank
2024-07-15 19:27:37 +01:00
Arjan Schrijver
a89b6f0006
Fix emojis converted to ASCII in case of multiple devices
...
The original code modified the incoming intent in case a device without
unicode emoji support is encountered or a transliterator is enabled for
that device. When multiple devices are connected, this causes later
devices that do support unicode emojis to also receive the
transliterated text instead of the original text.
2024-07-15 11:15:14 +02:00
Clemens Zagler
6811caf8a6
Initial support for Garmin Vivosport
2024-07-14 12:18:52 +02:00
José Rebelo
124b1953aa
Xiaomi: Add battery polling settings
2024-07-13 15:23:38 +01:00
Martin.JM
d7490639af
Huawei: Event alarms fix
...
Should fix event alarms for the Huawei MagicWatch 2 (#3877 ).
2024-07-11 23:21:53 +02:00
José Rebelo
9f2d525c0d
Fix crash when finding phone and configuring QHybrid buttons
2024-07-11 17:56:43 +01:00