Commit Graph

5937 Commits

Author SHA1 Message Date
Johannes Krude
a885e0eb93 Casio GW-B5600: Alarms 2024-08-23 14:05:11 +00:00
Johannes Krude
21bfc81b35 Casio GW-B5600: watch settings 2024-08-23 14:05:11 +00:00
Johannes Krude
b155a13d17 Casio GW-B5600: find phone 2024-08-23 14:05:11 +00:00
Johannes Krude
4a9fd49461 Casio GW-B5600: response handlers 2024-08-23 14:05:11 +00:00
Johannes Krude
b6ba421a62 Casio2C2D: refactor CasioConstants.characteristicToByte 2024-08-23 14:05:11 +00:00
Johannes Krude
ad7b50793a BATTERY_UNKNOWN icon 2024-08-23 14:05:11 +00:00
José Rebelo
2b9987d3e5 Mi Band: Migrate global preferences to device-specific 2024-08-23 14:02:28 +00:00
José Rebelo
1161fc70c5 Mi Band 8 Pro: Fix speed unit 2024-08-23 14:40:22 +01:00
José Rebelo
bc2bce3719 Mi Band 8 Pro: Fix walk workout parsing 2024-08-23 14:38:50 +01:00
José Rebelo
3ca9e59fd7 Fix pull-down to refresh for some devices 2024-08-22 23:03:05 +01:00
Daniel Dakhno
f19782ef55 Core: handle null-body notifications 2024-08-22 20:42:17 +02:00
José Rebelo
701aa99fa1 Draw body energy gauge matching device resolution 2024-08-22 18:39:58 +01:00
a0z
4ea933b53d Add nested tabs to sleep and steps + steps refactor 2024-08-22 19:31:51 +02:00
a0z
b01169a307 HRV Status - fix missing linechart datasets when gap in data 2024-08-22 18:16:28 +02:00
Severin von Wnuck-Lipinski
ef1d7171e8 Add support for Mi Smart Scale 2 2024-08-22 09:02:08 +00:00
Severin von Wnuck-Lipinski
3be6ec0007 Add weight measurement support for MiScale 2024-08-22 09:02:08 +00:00
Severin von Wnuck-Lipinski
9ef8bc0d67 Fix references to MiScale2 2024-08-22 09:02:08 +00:00
Severin von Wnuck-Lipinski
5b98ae737e Rename MiScale2 to MiCompositionScale 2024-08-22 09:02:08 +00:00
José Rebelo
aa9071e34e Zepp OS 4: Fix shortcuts 2024-08-22 00:28:48 +01:00
José Rebelo
8577c5d546 Zepp OS 4: Fix shortcut cards 2024-08-22 00:03:25 +01:00
José Rebelo
10e27c88c6 Garmin: Parse HR time in zone, sweat loss, avg and max HR 2024-08-21 15:03:30 +01:00
José Rebelo
880c85abcf Garmin Venu 2S: Initial support 2024-08-20 19:08:07 +01:00
José Rebelo
3bb969dc43 Data Management: Allow browse folders, open and share files 2024-08-20 17:18:35 +01:00
José Rebelo
09865f3943 Garmin: Store pending files for processing in the database 2024-08-20 15:34:48 +01:00
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
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
Vitaliy Tomin
2e7b7b3287 huawei: Add newer devices screen resolutions
* Added HWHD11, HWHD12 and HWHD13 screens
* Sorted resolutions list
* Add check for non existed screen strings.
2024-07-11 16:47:15 +00:00
Martin.JM
cd7c529d53 Huawei: Enable slicing by default 2024-07-11 11:13:11 +02:00
Arjan Schrijver
c9326ca447 Fossil HR: Bump watchface version after fixes 2024-07-09 09:35:44 +02:00
José Rebelo
05d3cfb01c Make all intents explicit 2024-07-08 22:16:15 +00:00
Arjan Schrijver
fad092b6f8 Bump targetSdkVersion to 34 2024-07-08 22:16:15 +00:00
José Rebelo
e77fda67c1 Garmin Vivomove Trend: Initial support 2024-07-08 21:56:07 +01:00
Martin.JM
7e0e3fa661 Add getBatteryPollingIntervalMinutes to DevicePrefs 2024-07-08 20:36:37 +00:00
Martin.JM
953d26ed71 Test device: Implement battery polling 2024-07-08 20:36:37 +00:00
Martin.JM
125e6371c3 Huawei: Implement battery polling 2024-07-08 20:36:37 +00:00
Martin.JM
bf16bf06c3 Add battery polling settings 2024-07-08 20:36:37 +00:00
Daniel Dakhno
6f7844418e Device UM25C: fixed disconnection scenario 2024-07-09 00:25:01 +02:00
José Rebelo
8672dcac3c Garmin Vivoactive 3: Initial support 2024-07-07 22:48:40 +01:00
Daniel Dakhno
fe96c75006 Device Cycling sensor: improved cycling data display 2024-07-05 02:58:25 +02:00
José Rebelo
bda9948838 Update solarpositioning to 0.1.10 2024-07-04 21:21:43 +01:00
José Rebelo
cdd2392961 Garmin Fenix 5: Initial support 2024-07-04 20:43:21 +01:00
José Rebelo
0eca157cfc Sony Headphones: Enable read aloud incoming notifications and auto-pickup 2024-07-04 20:39:14 +01:00
José Rebelo
c376034409 Enable core library desugaring 2024-07-04 20:20:00 +01:00
José Rebelo
5c5b036e20 Update android-emojify to 1.9.2
- Ignore the moshi R8 errors, since we use gson
- Add explicit rtl support, otherwise the lib removes it
- Refactor EmojiConverter to exclude fitzpatrick
2024-07-04 19:58:03 +01:00
José Rebelo
21130b7562 Update colorpicker to 1.1.0 2024-07-04 19:58:03 +01:00
José Rebelo
5e1d15e790 Garmin Fenix 6: Initial support 2024-07-04 13:43:26 +01:00
José Rebelo
906a807d15 Xiaomi: Parse freestyle workouts 2024-07-04 11:43:12 +01:00
José Rebelo
c2e57df09b Update logback-android to 3.0.0, slf4j to 2.0.13
We do not need the exclusion anymore, since
https://github.com/tony19/logback-android/issues/73 is fixed.
2024-07-02 23:59:40 +01:00
Severin von Wnuck-Lipinski
036dbee98c Fix decodeResponse for Moondrop Space Travel 2024-07-02 18:26:19 +02:00
Martin.JM
e7fb74a18f Huawei: Fix flood of PhoneInfo messages
PR #3858 resulted in a flood of PhoneInfo messages. This fixes that.
2024-07-02 13:36:25 +02:00
Martin.JM
b6f9faff80 Huawei: Add soccer and roller skating workout types
Roller skating is set as generic exercise pending #3852.

Users can retroactively set this through the reparse workout data
button in the developer settings.
2024-07-01 19:53:55 +00:00
Severin von Wnuck-Lipinski
8fbc12c868 Add support for Moondrop Space Travel
All features provided by the Moondrop Link App are supported.
This includes setting the equalizer profile and
configuring the touch actions.
2024-07-01 19:48:17 +00:00
Severin von Wnuck-Lipinski
0035c52d2a Fix config for AbstractHeadphoneDeviceSupport
Configuration changes are not passed to subclasses because
super.onSendConfiguration() is not called.
2024-07-01 19:48:17 +00:00
Martin.JM
d345325b46 Huawei: Add PhoneInfo to packet type conversion 2024-07-01 18:13:58 +02:00
José Rebelo
d7242c1f12 Make R class fields non-final 2024-06-30 20:27:12 +01:00
José Rebelo
9bff990370 Upgrade to gradle 8 2024-06-30 15:18:30 +00:00
José Rebelo
f2d935bfc1 Xiaomi Spp: Fix logging of unhandled packets 2024-06-30 09:11:45 +01:00
José Rebelo
310b95b551 Garmin Instinct: Initial support 2024-06-27 21:15:37 +01:00
José Rebelo
2a1dc9fca3 Huawei Watch Fit 3: Fix crash when opening SpO2 charts 2024-06-24 09:52:43 +01:00
CaptKentish
b0728286b5 BIKE_COMMUTE (#3846)
Adding bike commute as sub sport of cycling for garmin devices.

Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/3846
Co-authored-by: CaptKentish <captkentish@noreply.codeberg.org>
Co-committed-by: CaptKentish <captkentish@noreply.codeberg.org>
2024-06-23 13:09:55 +00:00
Eric de Boer
582c351142 Add EAN & UPC codes to supported cards 2024-06-21 19:44:16 +00:00
Martin.JM
1f1fc33e43 Huawei: Fix BR partial packets
Would crash before. See added test for example.
2024-06-20 22:02:36 +00:00
José Rebelo
5ad6d07983 Garmin Forerunner 255S: Initial support 2024-06-20 20:39:52 +01:00
José Rebelo
5824a25ebb Garmin: Do not suggest unbind before pair
Watches will connect just fine even if already paired in bluetooth
settings.
2024-06-19 21:20:33 +01:00
Arjan Schrijver
698469ae75 Test Device: Make activity data more realistic 2024-06-19 21:53:43 +02:00
Martin.JM
72dcb3250e Hauwei: Extend debug request to allow setting the sliced flag 2024-06-18 20:45:38 +00:00
José Rebelo
d946053bcb Garmin: Allow fetching unknown files 2024-06-16 22:21:46 +00:00
Arjan Schrijver
bad29bbeb8 Dashboard: Add monthly goals indicator and legend to calendar view 2024-06-16 23:36:19 +02:00
José Rebelo
afff822ab1 Garmin Instinct 2X Solar: Fix recognition of some watches 2024-06-16 17:38:42 +01:00
José Rebelo
5be0c612c6 Garmin Venu 2: Initial support 2024-06-16 17:35:00 +01:00
José Rebelo
e2d5a9e4d7 Garmin: Fix weather wind direction 2024-06-16 16:55:48 +01:00
José Rebelo
134983010a Garmin: Map more fit file types
From the device.fit of a Fenix 7S
2024-06-16 13:19:39 +01:00
enoint
c847079cd2 fix device name regex 2024-06-16 12:03:34 +00:00
enoint
2ec568bec7 add support for Hama Fit6900 watch 2024-06-16 12:03:34 +00:00
José Rebelo
7cafbc2002 Prevent some bluetooth events from starting Gadgetbridge 2024-06-15 23:26:58 +01:00
José Rebelo
69fae56a8c Fix battery icon when device connected 2024-06-15 21:31:07 +01:00
José Rebelo
d4dc686148 Fix crash when opening battery status activity 2024-06-14 20:38:07 +01:00
José Rebelo
527773d3d8 Garmin Forerunner 265: Initial support 2024-06-14 19:47:34 +01:00
Daniele Gobbetti
74fbadf553 Pebble: fix webview crash (on android 14)
Older android version also possibly impacted
2024-06-13 16:26:39 +02:00
José Rebelo
12b3ff34e2 Garmin: Send all notification types as foreground
Sending notifications for some apps is unexpected for most users, which
was generating some bug reports. For now, send all notifications as
foreground, at least until we can make what is happening more clear or
configurable.
2024-06-11 20:50:06 +01:00
José Rebelo
a574475951 Garmin Forerunner 255: Initial support 2024-06-11 19:57:56 +01:00
hrdl
14d5c79d02 Add Element, ElementX, and Molly to the recognized applications and as generic chat 2024-06-11 20:48:58 +02:00
hrdl
629f487c70 Add KDE Itinerary and KTrip as transit notifications 2024-06-11 20:44:00 +02:00
José Rebelo
8f98ea02ec Garmin Fenix 7S: Initial support 2024-06-10 16:48:06 +01:00
José Rebelo
4926f449ec Display toast on authentication failures 2024-06-10 16:29:53 +01:00
José Rebelo
76d633cde6 Make battery thresholds configurable 2024-06-10 12:55:27 +00:00
Peter Kannewitz
243c1ba039 Xiaomi: swim workout parser lane length fix (#3823)
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/3823
Co-authored-by: Peter Kannewitz <peter.kannewitz@posteo.net>
Co-committed-by: Peter Kannewitz <peter.kannewitz@posteo.net>
2024-06-10 11:15:18 +00:00
José Rebelo
f85c387edf Garmin Fenix 6 Sapphire: Fix typo in coordinator name 2024-06-09 14:40:38 +01:00
José Rebelo
241ec26170 Garmin Fenix 7 Pro: Initial support 2024-06-09 14:39:10 +01:00
José Rebelo
13cbec2a63 Garmin Venu 3S: Initial support 2024-06-09 09:13:12 +01:00
José Rebelo
0f80554a30 Garmin: Split coordinator packages by series 2024-06-09 09:12:44 +01:00
Daniele Gobbetti
fc8b959fea Garmin: only add the cache-control header when updating the AGPS file
Prevents it being stale for too long if the user forgets to fetch an updated file.
If the file has to be updated on the watch the response (http status 200) is sent and cached for 14400 seconds, for this period the watch will not request the file again.
Subsequent requests (http status 304) are very small and should not impact battery life negatively, hence they are sent without adding caching directives.
2024-06-08 16:29:52 +02:00
André Büsgen
a80054157a Bangle.js: Add Sleep as Android support (#3785)
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/3785
Co-authored-by: André Büsgen <andre.buesgen@posteo.de>
Co-committed-by: André Büsgen <andre.buesgen@posteo.de>
2024-06-08 12:46:09 +00:00
José Rebelo
b7aec071ff Garmin: Realtime settings 2024-06-07 23:39:12 +01:00
José Rebelo
0f8889498e Garmin: Send phone volume to watch 2024-06-07 22:53:17 +01:00
José Rebelo
47e3cbcb33 Garmin Fenix 6 Sapphire: Initial support 2024-06-07 21:27:37 +01:00
Ilya Nikitenkov
1007feef60
Sony LinkBuds S: Added additional capabilities 2024-06-07 00:05:47 +03:00
Martin.JM
a90e1be0ee Huawei: Generalize HR and SpO2 support 2024-06-04 11:23:49 +00:00
Martin.JM
b43d87f6bc Huawei: Weather no longer depends on weather start response 2024-06-04 11:20:10 +00:00
Gordon Williams
0c19010ca2 Bangle.js: when converting text to bitmaps, try and split up emoji so we can render just those in color.
Rendering text as well uses more memory but means text is rendered white, which doesn't work on some backgrounds
2024-06-03 15:58:05 +01:00
José Rebelo
4459b30ee6 Intent API: Add broadcast on activity sync finish 2024-06-02 22:03:12 +01:00
Martin.JM
15ba9e6c85 Improve GPS support for Huawei gadgets 2024-06-02 20:51:02 +00:00
José Rebelo
0e9c709a59 Xiaomi: Ignore activity files without timestamp and version
Some watches will send a sequence of zeroes, which would make activity
fetch become stuck, as the file does not exist.
2024-06-02 21:48:41 +01:00
José Rebelo
09bcb782da Garmin Epix Pro: Fix typo in device name 2024-06-02 21:00:25 +01:00
José Rebelo
42d28cc988 Garmin Epix Pro: Initial support 2024-06-02 20:43:05 +01:00
José Rebelo
64258248b6 Garmin: Allow install agps for sony cpe url 2024-05-31 20:15:15 +01:00
José Rebelo
5e9f5068ad Garmin: Match exacted supported device names 2024-05-30 18:51:33 +01:00
José Rebelo
15f922276b Garmin Instinct 2X Solar: Initial support 2024-05-30 18:47:28 +01:00
François Chavant
b647c7ca48 Add Garmin Instinct 2S Solar 2024-05-30 19:43:52 +02:00
Peter Kannewitz
9acdd87029 Xiaomi: add swimming workout type (#3798)
Reviewed-on: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/3798
Co-authored-by: Peter Kannewitz <peter.kannewitz@posteo.net>
Co-committed-by: Peter Kannewitz <peter.kannewitz@posteo.net>
2024-05-29 20:52:26 +00:00
José Rebelo
72162469a1 Xiaomi: Fix notification for apps in work profile 2024-05-28 22:45:57 +01:00
José Rebelo
cdf21ecdb4 Garmin: Make characteristics hex representation explicit
Avoid mixing decimal and hex representations.
2024-05-28 20:30:00 +01:00
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é 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
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