package nodomain.freeyourgadget.gadgetbridge.devices.huawei.packets; import java.util.ArrayList; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiPacket; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiTLV; import nodomain.freeyourgadget.gadgetbridge.model.Contact; public class Contacts { public static final byte id = 0x03; public static class ContactsSet { public static final byte id = 0x01; public static class Request extends HuaweiPacket { public Request(ParamsProvider paramsProvider, ArrayList contacts, int maxCount) { super(paramsProvider); this.serviceId = Contacts.id; this.commandId = id; HuaweiTLV contacts_tlv = new HuaweiTLV(); for(int i = 0; i < maxCount; i++) { HuaweiTLV contact= new HuaweiTLV() .put(0x03, (byte) (i + 1)); if(i < contacts.size()) { contact.put(0x4, contacts.get(i).getName()) .put(0x85, new HuaweiTLV().put(0x86, new HuaweiTLV().put(0x7, "Mobile").put(0x8, contacts.get(i).getNumber()))); } contacts_tlv.put(0x82, contact); } this.tlv = new HuaweiTLV() .put(0x81, contacts_tlv); this.complete = true; this.isEncrypted = true; } } public static class Response extends HuaweiPacket { public boolean isOk; public Response(ParamsProvider paramsProvider) { super(paramsProvider); this.serviceId = Contacts.id; this.commandId = id; } @Override public void parseTlv() throws ParseException { isOk = this.tlv.getInteger(0x7f) == 0x000186A0; } } } public static class ContactsCount { public static final byte id = 0x02; public static class Request extends HuaweiPacket { public Request(ParamsProvider paramsProvider) { super(paramsProvider); this.serviceId = Contacts.id; this.commandId = id; this.tlv = new HuaweiTLV() .put(0x1) .put(0x2); this.complete = true; this.isEncrypted = true; } } public static class Response extends HuaweiPacket { public int maxCount; public Response(ParamsProvider paramsProvider) { super(paramsProvider); this.serviceId = Contacts.id; this.commandId = id; } @Override public void parseTlv() throws ParseException { maxCount = this.tlv.getByte(0x01); } } } }