Commit Graph

140 Commits

Author SHA1 Message Date
José Rebelo
b595a1ad96 Huawei Watch Fit 3: Enable emoji 2024-10-13 22:20:02 +01:00
José Rebelo
1f4987ab98 Huawei: Enable emoji for HarmonyOS watches 2024-10-13 19:01:14 +00:00
Me7c7
af64ff3a79 Huawei: fix workouts pace 2024-10-13 19:01:03 +00:00
Me7c7
cf7fa3adde Huawei: Initial ephemeris update support 2024-10-05 13:51:10 +00:00
Vitaliy Tomin
feb7b36b3e Huawei: Add Huawei Watch GT Cyber gadget 2024-10-04 19:02:54 +00:00
Me7c7
1e732efb04 Huawei: Fix altitude in the GPS parser 2024-10-04 19:00:23 +00:00
Martin.JM
159ebfd891 Huawei: Workout GPS synchronization 2024-09-30 19:45:56 +02:00
Me7c7
f3aaeb5216 Huawei: Initial P2P service support, Calendar sync support. 2024-09-27 22:40:30 +00:00
Vitaliy Tomin
3c6f1191b5 huawei: Add gadget variant Huawei Watch GT3 SE
* added to GT3Coordinator
2024-09-24 14:06:41 +08:00
Martin.JM
8d24dfa7e4 Huawei: Weather improvements
Potential fix for #4071.
2024-09-23 18:47:33 +02:00
Vitaliy Tomin
820a5b9800 huawei: Add non pro version of Watch 4
* it was missing in current watch4pro coordinator
2024-09-23 15:32:24 +00:00
Vitaliy Tomin
ff1d0293fd huawei: Add new gadget Huawei Watch GT5 (Pro) 2024-09-23 15:30:50 +00:00
Me7c7
028ff619b7 Huawei: DeviceReportThreshold command added 2024-09-21 13:07:06 +00:00
Me7c7
ee1b71a240 Huawei: fixed PhoneInfo command 2024-09-21 13:07:06 +00:00
Me7c7
17b530c989 Huawei: simple run pace config added 2024-09-21 13:07:06 +00:00
Me7c7
113f9b87c6 Huawei: SetMediumToStrengthThresholdRequest v2 implemented 2024-09-21 13:07:06 +00:00
Martin.JM
43262b3f29 Huawei: Fix workout reparsing
Fixes #4138
2024-09-20 21:48:49 +00:00
BrunoWallner
9f566fb7d9 Fix normal activity samples being inserted into workout samples in HuaweiSampleProvider (#4126)
Co-authored-by: BrunoWallner <b.lucab1211@gmail.com>
Co-committed-by: BrunoWallner <b.lucab1211@gmail.com>
2024-09-20 17:45:45 +00:00
Me7c7
e469ecd463 Huawei: Optional tag for watchface params
Related to this crash on Huawei Watch GT:

nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiPacket$MissingTagException: Missing tag: 6
	at nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiTLV.getBytes(HuaweiTLV.java:219)
	at nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiTLV.getString(HuaweiTLV.java:239)
	at nodomain.freeyourgadget.gadgetbridge.devices.huawei.packets.Watchface$WatchfaceParams$Response.parseTlv(Watchface.java:125)
	at nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.requests.Request.handleResponse(Request.java:243)
	at nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.ResponseManager.handleData(ResponseManager.java:131)
	at nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.HuaweiSupportProvider.onCharacteristicChanged(HuaweiSupportProvider.java:875)
	at nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.HuaweiLESupport.onCharacteristicChanged(HuaweiLESupport.java:80)
	at nodomain.freeyourgadget.gadgetbridge.service.btle.BtLEQueue$InternalGattCallback.onCharacteristicChanged(BtLEQueue.java:679)
	at android.bluetooth.BluetoothGattCallback.onCharacteristicChanged(BluetoothGattCallback.java:194)
	at android.bluetooth.BluetoothGatt$1$8.run(BluetoothGatt.java:581)
	at android.bluetooth.BluetoothGatt.runOrQueueCallback(BluetoothGatt.java:948)
	at android.bluetooth.BluetoothGatt.-$$Nest$mrunOrQueueCallback(Unknown Source:0)
	at android.bluetooth.BluetoothGatt$1.onNotify(BluetoothGatt.java:575)
	at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:329)
	at android.os.Binder.execTransactInternal(Binder.java:1299)
	at android.os.Binder.execTransact(Binder.java:1253)
2024-09-13 10:05:38 +03:00
Vitaliy Tomin
4e7b83bebf huawei: Make more tags optional for app managemnet
* solves this crash on Honmor GS Pro:

09:45:29.115 [Read Thread for HONOR Watch GS Pro-BD1] DEBUG n.f.g.s.b.BtBRQueue - Received 26 bytes: 5A0015002A068110820E0301260404000000030503322E302B86
09:45:29.118 [Read Thread for HONOR Watch GS Pro-BD1] DEBUG n.f.g.d.h.HuaweiTLV - Parsed TLV: {tag: 81 - Value: 820E0301260404000000030503322E30}
09:45:29.120 [Read Thread for HONOR Watch GS Pro-BD1] DEBUG n.f.g.s.d.h.ResponseManager - Service: 2a, command: 6, handled by: class nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.requests.GetAppInfoParams
09:45:29.122 [Read Thread for HONOR Watch GS Pro-BD1] DEBUG n.f.g.d.h.HuaweiTLV - Parsed TLV: {tag: 82 - Value: 0301260404000000030503322E30}
09:45:29.124 [Read Thread for HONOR Watch GS Pro-BD1] DEBUG n.f.g.d.h.HuaweiTLV - Parsed TLV: {tag: 3 - Value: 26} - {tag: 4 - Value: 00000003} - {tag: 5 - Value: 322E30}
09:45:29.126 [Read Thread for HONOR Watch GS Pro-BD1] ERROR n.f.g.s.d.h.r.Request - Parse TLV exception
nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiPacket$MissingTagException: Missing tag: 6
	at nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiTLV.getBytes(HuaweiTLV.java:219)
	at nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiTLV.getString(HuaweiTLV.java:239)
	at nodomain.freeyourgadget.gadgetbridge.devices.huawei.packets.App$AppInfoParams$Response.parseTlv(App.java:129)
	at nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.requests.Request.handleResponse(Request.java:243)
	at nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.ResponseManager.handleData(ResponseManager.java:131)
	at nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.HuaweiSupportProvider.onSocketRead(HuaweiSupportProvider.java:880)
	at nodomain.freeyourgadget.gadgetbridge.service.devices.huawei.HuaweiBRSupport.onSocketRead(HuaweiBRSupport.java:74)
	at nodomain.freeyourgadget.gadgetbridge.service.btbr.BtBRQueue$1.run(BtBRQueue.java:87)
2024-09-12 22:49:11 +00:00
José Rebelo
183bf8725f Huawei: Re-parse workout details when opening details 2024-09-12 22:47:13 +00:00
Vitaliy Tomin
02286d2c2c huawei: Add honor watch gs pro gadget 2024-09-12 12:36:11 +08:00
Me7c7
0745a374a5 Huawei: Continuous skin temperature measurement switch 2024-09-08 20:24:15 +00:00
Martin.JM
1315931ff8 Huawei: Chain initialize dynamic services requests
Also includes a bit of cleanup.

Thanks to José Rebelo for cleaning my code.
2024-09-08 01:05:16 +02:00
Me7c7
fc450882cb Huawei: Contacts uploading support 2024-09-07 11:31:15 +00:00
Me7c7
1f5e9b52b8 Huawei: Quick fix issue with concatenated packets. 2024-09-06 20:12:56 +00:00
Patrick Rudolph
cde10a6dce Huawei: GetHiChainRequest: Add error handling
Parse the error code and throw an exception instead of doing strange
things due to invalid step ID being used.

To investigate issue #4061.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2024-09-06 20:06:34 +00:00
Me7c7
1c19283192 Huawei: Improved error handling for bin file parsing. 2024-08-30 19:26:12 +00:00
Me7c7
2aafad46eb Huawei: Check TLVs before access. Not present in some watches 2024-08-30 19:26:12 +00:00
Me7c7
4989334ff4 Huawei: Instalattion of apps fixed. Correct bin files support 2024-08-30 19:26:12 +00:00
Me7c7
e54fd95a8b Huawei: Basic support for the installation of the applications 2024-08-29 17:23:42 +03:00
Me7c7
9321e470d7 Huawei: Use proper file type for sleep files 2024-08-27 22:06:01 +00:00
Vitaliy Tomin
8ded52a0d1 huawei: Add honor watch gs 3 gadget 2024-08-25 15:34:32 +00:00
José Rebelo
d8266b3d6b ZeTime: Migrate global preferences to device-specific 2024-08-23 20:22:20 +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
Martin.JM
75047ecdea Huawei: Send OK when starting GPS
I hope this will solve #3990.
2024-08-16 23:26:48 +02:00
José Rebelo
34378a4a11 Refactor ActivityKind into an enum 2024-08-14 23:13:12 +01:00
Martin.JM
f15f60542d Huawei: Fix for Huawei Band 9
Linked to #3784.
2024-08-06 18:28:09 +00: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
Me7c7
532c545093 Huawei: Correct processing of set time command during the pairing process. 2024-08-02 19:51:39 +03: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
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
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
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
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