Huawei: UTF-16 encoding support for reply.

This commit is contained in:
Me7c7 2025-01-06 14:06:57 +02:00
parent b1cccae3ac
commit 1a21f01071

View File

@ -19,6 +19,8 @@ package nodomain.freeyourgadget.gadgetbridge.devices.huawei.packets;
import android.text.TextUtils; import android.text.TextUtils;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiPacket; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiPacket;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiTLV; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiTLV;
@ -376,13 +378,12 @@ public class Notifications {
public int type = 0; public int type = 0;
public int encoding = 0; // 3 - "utf-16" public int encoding = 0; // 3 - "utf-16"
public int subId = 0; public int subId = 0;
public String sender;
public String key; public String key;
public String addData;
public String text; public String text;
public ReplyResponse(ParamsProvider paramsProvider) { public ReplyResponse(ParamsProvider paramsProvider) {
super(paramsProvider); super(paramsProvider);
this.serviceId = Notifications.id; this.serviceId = Notifications.id;
this.commandId = id; this.commandId = id;
} }
@ -398,9 +399,14 @@ public class Notifications {
if (this.tlv.contains(0x04)) if (this.tlv.contains(0x04))
this.key = this.tlv.getString(0x04); this.key = this.tlv.getString(0x04);
if (this.tlv.contains(0x05)) if (this.tlv.contains(0x05))
this.sender = this.tlv.getString(0x05); this.addData = this.tlv.getString(0x05);
if (this.tlv.contains(0x06)) if (this.tlv.contains(0x06)) {
this.text = this.tlv.getString(0x06); if(this.encoding == 3) {
this.text = new String(this.tlv.getBytes(0x06), StandardCharsets.UTF_16);
} else {
this.text = this.tlv.getString(0x06);
}
}
} }
} }