Commit Graph

124 Commits

Author SHA1 Message Date
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
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
d7490639af Huawei: Event alarms fix
Should fix event alarms for the Huawei MagicWatch 2 (#3877).
2024-07-11 23:21:53 +02:00
Martin.JM
cd7c529d53 Huawei: Enable slicing by default 2024-07-11 11:13:11 +02:00
Martin.JM
125e6371c3 Huawei: Implement battery polling 2024-07-08 20:36:37 +00: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
d345325b46 Huawei: Add PhoneInfo to packet type conversion 2024-07-01 18:13:58 +02:00
José Rebelo
2a1dc9fca3 Huawei Watch Fit 3: Fix crash when opening SpO2 charts 2024-06-24 09:52:43 +01:00
Martin.JM
72dcb3250e Hauwei: Extend debug request to allow setting the sliced flag 2024-06-18 20:45:38 +00:00
Martin.JM
a90e1be0ee Huawei: Generalize HR and SpO2 support 2024-06-04 11:23:49 +00:00
Vitaliy Tomin
8946eff8fa Huawei: Set user info to device
* height
* weight
* age
* year of birth
* gender
2024-05-16 17:52:51 +00:00
Martin.JM
9ba96231c3 [Huawei] Implement remote camera shutter 2024-05-13 21:28:43 +00:00
José Rebelo
b909e123a4 Huawei Band 9: Fix device name 2024-05-08 22:49:57 +01:00
Damien 'Psolyca' Gaignon
39ea1774a4 [Huawei] Add Huawei Band 9 gadget 2024-05-08 21:49:12 +00:00
Damien 'Psolyca' Gaignon
f2c360ae8a [Huawei] Add Huawei Watch Fit 3 gadget 2024-05-08 21:49:12 +00:00
Damien 'Psolyca' Gaignon
690d01dcac
[Huawei] Remove unneeded data 2024-05-08 22:48:47 +02:00