José Rebelo
f746ef42f3
Dashboard: Prevent crash on draw after onSaveInstanceState ( #4007 )
2024-08-29 16:09:13 +01:00
José Rebelo
bfde77fb3a
Prevent crash on unknown activity charts tab
2024-08-29 16:09:13 +01:00
José Rebelo
f76180c4bd
Dashboard: Add new widgets, make them clickable
...
Add 3 new widget types:
- Body energy
- Stress (simple, segmented, breakdown)
- HRV
Make widgets clickable, opening the corresponding charts page.
2024-08-29 16:09:13 +01:00
Daniele Gobbetti
d4df00ccbf
Garmin: send blocks that are smaller than MaxPacketSize
...
Fixes 4047
2024-08-29 16:52:50 +02:00
Me7c7
e54fd95a8b
Huawei: Basic support for the installation of the applications
2024-08-29 17:23:42 +03:00
José Rebelo
d75ae6b54d
Bangle.js: Fix calendar sync setting
2024-08-29 12:07:02 +01:00
José Rebelo
7eb1fcdb52
DeviceInfoProfile/BtLEQueue: Improve logging and fix warnings
2024-08-29 11:46:42 +01:00
José Rebelo
49ef8c9f40
Garmin: View and share gpx files
2024-08-28 19:18:08 +01:00
José Rebelo
12ecfa0c4e
Garmin: Parse strength training workout sets
2024-08-28 13:43:12 +01:00
Me7c7
9321e470d7
Huawei: Use proper file type for sleep files
2024-08-27 22:06:01 +00:00
a0z
88c8629ec0
Steps/Sleep activties: update lines and offsets
2024-08-27 22:03:04 +00:00
José Rebelo
39707a52da
Huami: Migrate all device settings to sub-screens
2024-08-27 22:48:00 +01:00
José Rebelo
63a6f07de0
Garmin: Do not generate fake samples into the future
2024-08-27 19:38:23 +01:00
José Rebelo
8e3f010629
Add daily steps progress chart
2024-08-27 19:38:10 +01:00
José Rebelo
f487bc7876
Garmin: Re-parse workout summary when opening details page
...
Ensures that new fields and other fixes get displayed properly.
2024-08-26 10:46:46 +01:00
José Rebelo
ae1cc16a12
Garmin Fenix 5X Plus: Experimental support
2024-08-26 08:49:31 +01:00
José Rebelo
f4551e7cba
Fix step analysis for some devices
2024-08-25 23:49:52 +01:00
José Rebelo
a1170e7333
Dashboard: Fix awake sleep color
2024-08-25 23:02:12 +01:00
José Rebelo
42dfb6ad4a
Garmin: Parse workout physiological metrics
2024-08-25 22:49:47 +01:00
a0z
21de228204
Garmin: Awake time
2024-08-25 21:19:00 +00:00
José Rebelo
b6e2ce1d9c
Garmin: Awake time (WIP)
2024-08-25 21:19:00 +00:00
pacjo
cae6f5d73e
Fix crash when nearby devices (BLUETOOTH_SCAN) permission is missing
2024-08-25 21:05:34 +00:00
Severin von Wnuck-Lipinski
6bfd3dcd06
Add weight chart
2024-08-25 20:46:52 +00:00
José Rebelo
249c2bc237
Improve preference migration error logging
2024-08-25 21:29:56 +01:00
José Rebelo
2db88c63db
Reduce stutters on device changes / data fetch
2024-08-25 20:21:45 +00:00
Daniele Gobbetti
e74f9c2a3d
Pebble: migrate legacy global preferences to all pebble devices
2024-08-25 20:20:52 +00:00
Daniele Gobbetti
bea6c6a00c
Pebble: enforce numeric input for mtu_limit preference
2024-08-25 20:20:52 +00:00
Daniele Gobbetti
6b38d5b283
Pebble: split the pebble device specific settings in the existing root screens
2024-08-25 20:20:52 +00:00
Daniele Gobbetti
13be343392
Pebble: remove last global settings
...
In order to add an emulated device it is sufficient to use the "Add test device" functionality choosing pebble as device and entering IP:PORT in the mac address field.
The pebble setting to force BLE is moved to discovery_pairing_preferences.xml
Also delete the pebble_preferences file and update general preferences.
2024-08-25 20:20:52 +00:00
Daniele Gobbetti
8e876c8a92
Remove preference pebble_reconnect_attempts
...
Its usage was removed with
c2db30274f
2024-08-25 20:20:52 +00:00
Daniele Gobbetti
54cf421295
Bind sunrise/sunset alarm receiver to specific device support
...
Only register it for Pebble devices which enable the relative setting.
Also move the preference to device specific.
2024-08-25 20:20:52 +00:00
Daniele Gobbetti
795ffde0e1
Pebble: move a bunch of preferences to device specific settings
2024-08-25 20:20:52 +00:00
Daniele Gobbetti
c3d76477ec
Pebble: remove pebble_enable_pebblekit global preference.
...
Use device specific third_party_apps_set_settings preference instead.
2024-08-25 20:20:52 +00:00
Severin von Wnuck-Lipinski
96a8b9aeae
Add support for Mijia XMWSDJ04MMC
2024-08-25 19:43:55 +00:00
Vitaliy Tomin
8ded52a0d1
huawei: Add honor watch gs 3 gadget
2024-08-25 15:34:32 +00:00
José Rebelo
fbfbae808f
Charts: Add button to pick date
2024-08-24 22:04:17 +01:00
a0z
b43c109903
Stress fragment redesign
2024-08-24 17:44:18 +02:00
José Rebelo
bb50796d0a
Fix HR charts when min is set to 0
2024-08-24 12:15:15 +01:00
Arjan Schrijver
e23caa3ee6
Add support for Colmi R02/R03/R06 smart rings
2024-08-23 23:47:34 +02:00
José Rebelo
d8266b3d6b
ZeTime: Migrate global preferences to device-specific
2024-08-23 20:22:20 +01:00
Johannes Krude
141ff623c7
remove no longer needed ConfigureAlarms.createDefaultAlarm
2024-08-23 14:05:11 +00:00
Johannes Krude
7e08144e0c
CasioGWB5600DeviceCoordinator: removed empty methods
2024-08-23 14:05:11 +00:00
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
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
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
Andreas Schneider
b6468db13c
Garmin: add coordinator for Instinct Crossover
2024-05-24 22:24:08 +02:00
Daniele Gobbetti
a5dbb7fea7
Garmin: fix regression in call handling
...
Add a fictitious action to the notification to enable reply/hangup/reject from the watch.
Also fixes the behavior on sms reply, which should also reject the incoming call.
Change the log level in case some of the canned messages types are left as default to info, as this is a supported scenario.
2024-05-24 22:24:08 +02:00
Daniele Gobbetti
179f8a3a9e
Garmin: encode unknown weather codes as invalid
2024-05-24 22:24:08 +02:00
meskio
77f119c211
Initial support for Garmin Instinct Solar
2024-05-24 22:24:08 +02:00
José Rebelo
1b45d71cc7
Garmin: Improve fit parsing
...
* Remove the dependency on PredefinedLocalMessage from generic fit parsing code
* Standardize toString methods, omit types for known fields
* Return null on unknown field number or names, instead of crashing
* Map more Global FIT messages (device info, monitoring, sleep stages, sleep stats, stress level)
* Prioritize "timestamp" over "253_timestamp" if specified explicitly in the global message definition
* Introduce RecordData wrappers for each global message, allowing us to have proper types when getting data. If missing or unknown, the getter returns null. All classes are auto-generated by the FitCodeGen.
* Persist a list of RecordData, instead of a Map from RecordDefinition
* Fix parsing of compressed timestamps - keep them in computedTimestamp on each data record
* Use timestamp16 if available in Monitoring records
2024-05-24 22:24:08 +02:00
Daniele Gobbetti
9e1bf07cd2
Garmin: add coordinator for Instinct 2 Solar Tactical
...
confirmed working in https://codeberg.org/Freeyourgadget/Gadgetbridge/issues/3063#issuecomment-1787762
2024-05-24 22:24:08 +02:00
José Rebelo
3c5eada403
Garmin: Send location to watch
2024-05-24 22:24:08 +02:00
Daniele Gobbetti
e46ea03693
Garmin: calendar integration improvements
...
use the protobuf fields described in the documentation[0]
build the message according to the requested fields
[0] https://gadgetbridge.org/internals/specifics/garmin-protocol/#calendarevent
2024-05-24 22:24:08 +02:00
a0z
ed0d41aa3a
Garmin: Initial support of Instinct 2 Solar
2024-05-24 22:24:08 +02:00
Daniele Gobbetti
416b7b075c
Garmin: fix notification crashes and handle SMS correctly
...
It looks like (some) watches really don't like having an empty list of actions, hence enable the legacy "refuse" action in every case, leaving it empty and inactive.
Further display the SMS sender in the notification and enable the correct code path for the reply action to work.
2024-05-24 22:24:08 +02:00
José Rebelo
cbd2c040bb
Garmin: Auto-detect canned messages support
2024-05-24 22:24:08 +02:00
José Rebelo
9f1420e496
Garmin: Fix reply to sms
2024-05-24 22:24:08 +02:00
José Rebelo
cf02a02a48
Garmin: Add setting to disable notifications
2024-05-24 22:24:08 +02:00
José Rebelo
33eb748b64
Garmin Venu 3: Enable canned replies
2024-05-24 22:24:08 +02:00
Daniele Gobbetti
dbc270ad9f
Garmin: use developer device setting for keeping data on device
...
Make use of the previously added preference to toggle file archival (deletion) on the watch.
Default is true (keep data on device) until we are sure of the consequences.
2024-05-24 22:24:08 +02:00
José Rebelo
d73eb849e6
Garmin: Map all known files types
2024-05-24 22:24:08 +02:00
José Rebelo
d8dcc57813
Garmin: Add support for http weather requests
2024-05-24 22:24:08 +02:00
Daniele Gobbetti
01d48cde91
Garmin: Rename LocalMessage to PredefinedLocalMessage and clarify its usage
...
PredefinedLocalMessage are only useful for FIT messages and should not interfere with FIT files. The only impact of using the local message in fit files was in the textual output, but it was confusing.
Add an explicit constructor to RecordHeader if PredefinedLocalMessage should be taken into account, and use this only in fit messages leaving the default constructor for fit files.
Also adjusts the test case as textual output comparison needs to be fixed.
2024-05-24 22:24:08 +02:00
kuhy
de019fc00a
Initial support for Garmin Vivoactive 4S
2024-05-24 22:24:08 +02:00
Daniele Gobbetti
698908a589
Garmin: Add support for custom replies (notifications and calls)
...
To enable custom replies an override must be defined in the devices coordinator that actually support custom replies.
The custom preferences allow to:
- enable / disable the default message suffix (Instinct 2 appends "sent from my $vendor device" to each reply by default)
- define custom messages to reply to calls and incoming messages (leaving those lists empty will enable the default messages to be used)
Also adds a new protobuf definition file of mostly unknown values that enable toggling the message suffix on Instinct 2.
2024-05-24 22:24:08 +02:00
myxor
15916635e1
Initial support for Garmin Vivoactive 5
2024-05-24 22:24:08 +02:00
Daniele Gobbetti
45c13675e0
Garmin: Add support for replying to notifications
...
This uses the (assumed) new method of passing multiple actions, instead of the (assumed) legacy accept/decline approach.
At the moment the preset messages stored on the watch firmware are used for replying, the code supports using custom messages already but those have to be updated to the watch somehow (probably by protobuf) and this is not supported yet. Using custom messages if they are not set will just do nothing.
The NotificationActionIconPosition values have been determined on a vívomove Style and might not work properly on other watches.
The evaluation of GBDeviceEvent have been moved in GarminSupport since the notification actions handling uses device events.
Also adds a method to read null terminated strings to GarminByteBufferReader.
Also adds a warning in NotificationListener if the wrong handle is used for replying to a notification.
2024-05-24 22:24:08 +02:00
Daniele Gobbetti
54070b2652
Garmin: Add FileDownloadedDeviceEvent and (disabled) file deletion
...
Also adds (disabled) file deletion in case of already downloaded files
2024-05-24 22:24:08 +02:00
Daniele Gobbetti
2c70f1a616
Garmin: Add DST/Timezone support
2024-05-24 22:24:08 +02:00
hrdl
69934b2d7c
Add Garmin Forerunner 245
2024-05-24 22:24:07 +02:00
Daniele Gobbetti
42e44de1ac
Garmin: Support file archival (deletion) on watch
...
Also add original timestamp to local cache filename as the file identifier are reused
Also fix imports of Test class
2024-05-24 22:24:07 +02:00
José Rebelo
5c57392b85
Garmin: Fetch activity on demand
2024-05-24 22:24:07 +02:00
José Rebelo
2eb342860a
Garmin: Allow high MTU
2024-05-24 22:24:07 +02:00
José Rebelo
aaa3e086d0
Garmin protocol: Simplify FILE_TYPE
2024-05-24 22:24:07 +02:00
José Rebelo
fb06a48756
Garmin protocol: Fix linter warnings
2024-05-24 22:24:07 +02:00
José Rebelo
72de9bafe9
Garmin protocol: Introduce GarminCoordinator
2024-05-24 22:24:07 +02:00
José Rebelo
4c734e4717
Garmin protocol: fix crash when stopping find phone
2024-05-24 22:24:07 +02:00
Daniele Gobbetti
e6365638d4
Garmin protocol: basic file transfer and notification handling
...
adds synchronization of supported files from watch to external directory
adds support for Activity and Monitoring files (workouts and activity samples), but those are not integrated yet
adds upload functionality (not used ATM and not tested)
adds notification support without actions
introduces centralized processing of "messageHandlers" (protobuf, file transfer, notifications)
also properly dispose of the music timer when disconnecting
2024-05-24 22:24:07 +02:00
Daniele Gobbetti
9dee71df6f
Garmin protocol: enable media volume control from watch
2024-05-24 22:24:07 +02:00
Daniele Gobbetti
14c6ce1a3a
Garmin protocol: store max packet size from DeviceInformationMessage
...
also adds messageType to the warnifleftover log message
2024-05-24 22:24:07 +02:00
Daniele Gobbetti
6cb5184e2b
Garmin protocol: various changes
...
- add FitFile class that deals with parsing and generating outgoing files
- consider all field definitions with number 253 as Timestamps [0]
- add support for "compressed timestamps" in fit file parsing. Those are not returned among the other normal fields but are available through a method of RecordData
- adjust the test cases
[0]48b6554d8a/fitdecode/reader.py (L719)
2024-05-24 22:24:07 +02:00
Daniele Gobbetti
e814a63590
Garmin protocol: change naming and logic of several FIT classes
...
- refactor the logic of Global and Local messages
- add some Global messages with naming taken from [1]
- Global messages are not enum because there are too many
- introduce the concept of FieldDefinitionPrimitive
- add new Field Definitions
- add support for developer fields and array fields
- add test case for FIT files taken from [0]
[0] https://github.com/polyvertex/fitdecode/
[1] https://www.fitfileviewer.com/
2024-05-24 22:24:07 +02:00
Daniele Gobbetti
b2f995b736
Garmin protocol: create helper class GarminByteBufferReader
...
separate the logic specific for GFDI messages from the generally useful logic.
Also centralize the logging in case of leftover bytes while parsing GFDI messages.
2024-05-24 22:24:07 +02:00