|
@@ -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;
|
|
|
}
|