1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-07-04 20:12:27 +02:00

amazfit bip s: Fix incoming call notification

This commit is contained in:
Zhong Jianxin 2020-05-10 23:00:47 +08:00 committed by Gitea
parent e844f81056
commit f06c9fb8e7

View File

@ -19,13 +19,23 @@ package nodomain.freeyourgadget.gadgetbridge.service.devices.huami.amazfitbip;
import android.content.Context;
import android.net.Uri;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiFWHelper;
import nodomain.freeyourgadget.gadgetbridge.model.CallSpec;
import nodomain.freeyourgadget.gadgetbridge.model.NotificationSpec;
import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder;
import nodomain.freeyourgadget.gadgetbridge.util.NotificationUtils;
public class AmazfitBipSSupport extends AmazfitBipSupport {
private static final Logger LOG = LoggerFactory.getLogger(AmazfitBipSSupport.class);
@Override
public byte getCryptFlags() {
return (byte) 0x80;
@ -41,6 +51,34 @@ public class AmazfitBipSSupport extends AmazfitBipSupport {
return 0x00;
}
@Override
public void onSetCallState(CallSpec callSpec) {
if (callSpec.command == CallSpec.CALL_INCOMING) {
byte[] message = NotificationUtils.getPreferredTextFor(callSpec).getBytes();
int length = 10 + message.length;
ByteBuffer buf = ByteBuffer.allocate(length);
buf.order(ByteOrder.LITTLE_ENDIAN);
buf.put(new byte[]{3, 0, 0, 0, 0, 0});
buf.put(message);
buf.put(new byte[]{0, 0, 0, 2});
try {
TransactionBuilder builder = performInitialized("incoming call");
writeToChunked(builder, 0, buf.array());
builder.queue(getQueue());
} catch (IOException e) {
LOG.error("Unable to send incoming call");
}
} else if ((callSpec.command == CallSpec.CALL_START) || (callSpec.command == CallSpec.CALL_END)) {
try {
TransactionBuilder builder = performInitialized("end call");
writeToChunked(builder, 0, new byte[]{3, 3, 0, 0, 0, 0});
builder.queue(getQueue());
} catch (IOException e) {
LOG.error("Unable to send end call");
}
}
}
@Override
public HuamiFWHelper createFWHelper(Uri uri, Context context) throws IOException {
return null;