From b323e3e248ab7d3ece9d8eb3a95ecf031f68df08 Mon Sep 17 00:00:00 2001 From: xuqm Date: Wed, 31 May 2023 11:03:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E9=80=81=E6=96=87=E6=9C=AC=E6=B6=88?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../android/lib/im/im/manager/ImManager.java | 17 +++++++++++------ .../android/lib/im/im/msg/SendAckMessage.java | 12 ++++++++++++ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/manager/ImManager.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/manager/ImManager.java index 67abd53..5157da8 100644 --- a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/manager/ImManager.java +++ b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/manager/ImManager.java @@ -164,7 +164,7 @@ public class ImManager implements IMInterface { SendAckMessage sendAckMessage = GsonImplHelp.get().toObject(msg, SendAckMessage.class); Message m = new Message(); - m.obj = sendAckMessage.getAckId(); + m.obj = sendAckMessage; m.what = 10002; handler.sendMessage(m); @@ -319,9 +319,9 @@ public class ImManager implements IMInterface { @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); - String msgId = (String) msg.obj; switch (msg.what) { case 10001: + String msgId = (String) msg.obj; IMSDKCallback callback = msgListenerMap.get(msgId); if (null != callback) { callback.failed(207, "发送超时"); @@ -333,13 +333,18 @@ public class ImManager implements IMInterface { } break; case 10002: - IMSDKCallback callback1 = msgListenerMap.get(msgId); + SendAckMessage sendAckMessage = (SendAckMessage) msg.obj; + String msgId1 = sendAckMessage.getAckId(); + IMSDKCallback callback1 = msgListenerMap.get(msgId1); if (null != callback1) { for (MsgListener listener : msgListeners) { - listener.statusChange(msgId, 0); + if (sendAckMessage.getAckStatus() == 0) + listener.statusChange(msgId1, 0); + else listener.statusChange(msgId1, -1); } - callback1.success(); - msgListenerMap.remove(msgId); + if (sendAckMessage.getAckStatus() == 0) callback1.success(); + else callback1.failed(208, "服务端转发失败"); + msgListenerMap.remove(msgId1); } break; } diff --git a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/msg/SendAckMessage.java b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/msg/SendAckMessage.java index 65f2667..a9ff07e 100644 --- a/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/msg/SendAckMessage.java +++ b/SzyxImSdk/src/main/java/cn/org/bjca/trust/android/lib/im/im/msg/SendAckMessage.java @@ -9,6 +9,10 @@ public class SendAckMessage extends PacketMessage { super(PacketType.SEND_ACK); } private String ackId; + /** + * 0-成功;-1-失败; + */ + private int ackStatus; public String getAckId() { return ackId; @@ -17,4 +21,12 @@ public class SendAckMessage extends PacketMessage { public void setAckId(String ackId) { this.ackId = ackId; } + + public int getAckStatus() { + return ackStatus; + } + + public void setAckStatus(int ackStatus) { + this.ackStatus = ackStatus; + } }