1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-06-02 03:16:07 +02:00
Gadgetbridge/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/packets/Calls.java
2024-01-07 23:18:08 +01:00

66 lines
2.1 KiB
Java

/* Copyright (C) 2022 Gaignon Damien
Copyright (C) 2022 MartinJM
This file is part of Gadgetbridge.
Gadgetbridge is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Gadgetbridge is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.devices.huawei.packets;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.HuaweiPacket;
public class Calls {
// This doesn't include the initial calling notification, as that is handled
// by the Notifications class.
public static final byte id = 0x04;
// TODO: tests
public static class AnswerCallResponse extends HuaweiPacket {
public static final byte id = 0x01;
public enum Action {
CALL_ACCEPT,
CALL_REJECT,
UNKNOWN
}
public Action action = Action.UNKNOWN;
public AnswerCallResponse(ParamsProvider paramsProvider) {
super(paramsProvider);
this.serviceId = Calls.id;
this.commandId = id;
this.isEncrypted = false;
}
@Override
public void parseTlv() throws MissingTagException {
if (this.tlv.contains(0x01)) {
if (this.tlv.getByte(0x01) == 0x01) {
this.action = Action.CALL_REJECT;
} else if (this.tlv.getByte(0x01) == 0x02) {
this.action = Action.CALL_ACCEPT;
}
// TODO: find more values, if there are any
} else {
throw new MissingTagException(0x01);
}
}
}
}