From 7a3139fce027ee892114addb343b03e549d92351 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Sat, 21 Oct 2023 21:14:25 +0200 Subject: [PATCH] Xiaomi: remove call notification if call has been taken on the phone or rejected, ended. For in-call notification if those exist, it would not work. --- .../services/XiaomiNotificationService.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/services/XiaomiNotificationService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/services/XiaomiNotificationService.java index eec15b80a..a5524525b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/services/XiaomiNotificationService.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/xiaomi/services/XiaomiNotificationService.java @@ -44,6 +44,7 @@ public class XiaomiNotificationService extends AbstractXiaomiService { public static final int COMMAND_TYPE = 7; public static final int CMD_NOTIFICATION_SEND = 0; + public static final int CMD_NOTIFICATION_DISMISS = 1; public static final int CMD_CALL_REJECT = 2; public static final int CMD_CALL_IGNORE = 5; public static final int CMD_CANNED_MESSAGES_GET = 9; @@ -142,12 +143,31 @@ public class XiaomiNotificationService extends AbstractXiaomiService { public void onSetCallState(final CallSpec callSpec) { // TODO handle callSpec.command + if (callSpec.command == CallSpec.CALL_OUTGOING) { + return; + } + if (callSpec.command != CallSpec.CALL_INCOMING) { + final XiaomiProto.NotificationDismiss.Builder notification4 = XiaomiProto.NotificationDismiss.newBuilder() + .setNotificationId(XiaomiProto.NotificationId.newBuilder().setId(0).setPackage("phone")); + + final XiaomiProto.Notification notification = XiaomiProto.Notification.newBuilder() + .setNotification4(notification4) + .build(); + + getSupport().sendCommand( + "send call end", + XiaomiProto.Command.newBuilder() + .setType(COMMAND_TYPE) + .setSubtype(CMD_NOTIFICATION_DISMISS) + .setNotification(notification) + .build() + ); return; } final XiaomiProto.Notification3.Builder notification3 = XiaomiProto.Notification3.newBuilder() - .setId(12345) // ? + .setId(0) // ? .setUnknown4("") // ? .setIsCall(true) .setRepliesAllowed(canSendSms())