1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-12-29 20:15:50 +01:00
Commit Graph

11601 Commits

Author SHA1 Message Date
Daniele Gobbetti
d0b525f420 Garmin: minor fixes to some messages.
Prevent sending double status messages / ACKs if the actual outgoing message is also a status message.
Prevent sending ACKs for incoming ACK messages.
2024-08-20 15:59:32 +02:00
José Rebelo
f95d85d7e8 Redmi Smart Band Pro: Fix crash on connection
Requesting alarms crashes the device - #3766
2024-08-20 13:10:57 +01:00
José Rebelo
d3957ddf9a Redmi Smart Band Pro: Ignore MAC during decryption
https://codeberg.org/Freeyourgadget/Gadgetbridge/issues/3766#issuecomment-2182676
2024-08-20 13:10:51 +01:00
José Rebelo
2fe53ee563 Dashboard: Draw widgets matching device resolution 2024-08-19 23:58:15 +01:00
José Rebelo
cc5eadbc62 CMF Watch Pro 2: Negotiate authentication key 2024-08-19 10:15:13 +01:00
José Rebelo
7514b50d19 Garmin: Avoid NPE if parts of HRV data are missing 2024-08-18 23:42:36 +01:00
Daniele Gobbetti
1d496b5ce5 Merge branch 'refs/heads/dg-garmin-fit-fixes' 2024-08-18 22:18:35 +02:00
Daniele Gobbetti
fd1e81ff66 Garmin: fix basetype handling and truncation
Numeric BaseTypes now return fractional part if a scale is set, the return type for numeric values is unboxed from Number class so that existing comparisons and checks keep working, but values are not truncated at nearest integer value.

The codegen class has been updated and some of the messages are re-generated with the new code, with the exception of Hrv* messages, since updating those needs updating the related sample types.

Test cases expected values have been adjusted to keep into account the fractional part of some fields.

Garmin: Fix HRV value and summary types
2024-08-18 22:15:06 +02:00
José Rebelo
2277c62cd2 Garmin Venu: Initial support 2024-08-18 18:21:55 +01:00
Daniele Gobbetti
51a0745b06 Garmin: add GENERIC activity and use it for imported GPX files 2024-08-18 12:40:16 +02:00
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
efc6144a28 Prevent overlap of connection status for big font sizes 2024-08-17 11:37:37 +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
dependency-bot
cea51e6ef8 Update dependency org.slf4j:slf4j-api to v2.0.16 2024-08-17 08:29:27 +00:00
dependency-bot
20149e3265 Update dependency gradle to v8.10 2024-08-17 08:28:53 +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
4fe24f28d0 Add .idea project icon 2024-08-12 19:39:52 +01:00
José Rebelo
333fe9f805 GBDaoGenerator: Fix some build warnings 2024-08-10 23:28:08 +01:00
José Rebelo
9ca561a30a Garmin: Fix weather temperature and speed units 2024-08-10 20:00:56 +01:00
José Rebelo
190a2b1108 Update commons-lang3 to 3.16.0 2024-08-10 12:16:36 +01:00
dependency-bot
effeba805a Update dependency com.android.tools.build:gradle to v8.5.2 2024-08-10 01:09:03 +00: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