From 62bbbc0581526fb4f8cc474f0ea326841a93137a Mon Sep 17 00:00:00 2001 From: SL Date: Tue, 12 Nov 2024 17:37:46 +0800 Subject: [PATCH] fix:update demo --- .../java/com/xinbida/wukongdemo/HttpUtil.java | 21 +++++++++++++------ .../com/xinbida/wukongdemo/MainActivity.java | 17 ++++++++++++++- .../xinbida/wukongdemo/MessageAdapter.java | 4 ++-- 3 files changed, 33 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/xinbida/wukongdemo/HttpUtil.java b/app/src/main/java/com/xinbida/wukongdemo/HttpUtil.java index ab0b546..7091cba 100644 --- a/app/src/main/java/com/xinbida/wukongdemo/HttpUtil.java +++ b/app/src/main/java/com/xinbida/wukongdemo/HttpUtil.java @@ -222,6 +222,7 @@ public class HttpUtil { } public WKSyncRecent getWKSyncRecent(JSONObject msgJson) { + Log.e("消息数据:", msgJson.toString()); String from_uid = msgJson.optString("from_uid"); String client_msg_no = msgJson.optString("client_msg_no"); String channel_id = msgJson.optString("channel_id"); @@ -235,6 +236,7 @@ public class HttpUtil { recent.from_uid = from_uid; recent.message_id = msgJson.optString("message_id"); recent.message_seq = msgJson.optInt("message_seq"); + recent.is_deleted = msgJson.optInt("is_deleted"); recent.client_msg_no = client_msg_no; recent.channel_id = channel_id; recent.channel_type = channel_type; @@ -258,11 +260,17 @@ public class HttpUtil { } WKSyncExtraMsg extraMsg = new WKSyncExtraMsg(); extraMsg.message_id_str = extraJson.optString("message_id_str"); - extraMsg.revoke = extraJson.optInt("revoke"); - extraMsg.revoker = extraJson.optString("revoker"); - extraMsg.readed = extraJson.optInt("readed"); - extraMsg.readed_count = extraJson.optInt("readed_count"); - extraMsg.is_mutual_deleted = extraJson.optInt("is_mutual_deleted"); + extraMsg.message_id = extraJson.optString("message_id_str"); + if (extraJson.has("revoke")) + extraMsg.revoke = extraJson.optInt("revoke"); + if (extraJson.has("revoker")) + extraMsg.revoker = extraJson.optString("revoker"); + if (extraJson.has("readed")) + extraMsg.readed = extraJson.optInt("readed"); + if (extraJson.has("readed_count")) + extraMsg.readed_count = extraJson.optInt("readed_count"); + if (extraJson.has("is_mutual_deleted")) + extraMsg.is_mutual_deleted = extraJson.optInt("is_mutual_deleted"); recent.message_extra = extraMsg; } return recent; @@ -423,7 +431,7 @@ public class HttpUtil { new Thread(() -> post("/message/revoke", json, (code, data) -> { if (code == 200) { - Log.e("撤回成功","--->"); + Log.e("撤回成功", "--->"); } })).start(); } @@ -442,6 +450,7 @@ public class HttpUtil { new Thread(() -> delete("/message", json, (code, data) -> { if (code == 200) { + Log.e("删除消息成功", "-->"); WKIM.getInstance().getMsgManager().deleteWithClientMsgNO(clientMsgNo); } })).start(); diff --git a/app/src/main/java/com/xinbida/wukongdemo/MainActivity.java b/app/src/main/java/com/xinbida/wukongdemo/MainActivity.java index 7e9710f..439a0a2 100644 --- a/app/src/main/java/com/xinbida/wukongdemo/MainActivity.java +++ b/app/src/main/java/com/xinbida/wukongdemo/MainActivity.java @@ -20,6 +20,7 @@ import com.xinbida.wukongim.entity.WKChannel; import com.xinbida.wukongim.entity.WKChannelType; import com.xinbida.wukongim.entity.WKMsg; import com.xinbida.wukongim.interfaces.IClearMsgListener; +import com.xinbida.wukongim.interfaces.IDeleteMsgListener; import com.xinbida.wukongim.interfaces.IGetOrSyncHistoryMsgBack; import com.xinbida.wukongim.interfaces.IRefreshMsg; import com.xinbida.wukongim.msgmodel.WKTextContent; @@ -176,7 +177,7 @@ public class MainActivity extends AppCompatActivity { if (adapter.getData().get(i).msg.clientSeq == msg.clientSeq) { adapter.getData().get(i).msg.status = msg.status; adapter.getData().get(i).msg.messageID = msg.messageID; - adapter.getData().get(i).msg.messageSeq= msg.messageSeq; + adapter.getData().get(i).msg.messageSeq = msg.messageSeq; adapter.notifyItemChanged(i); break; } @@ -220,6 +221,19 @@ public class MainActivity extends AppCompatActivity { } } }); + + // 监听删除消息 + WKIM.getInstance().getMsgManager().addOnDeleteMsgListener(channelID, msg -> { + if (msg == null) { + return; + } + for (int i = 0; i < adapter.getData().size(); i++) { + if (msg.clientMsgNO.equals(adapter.getData().get(i).msg.clientMsgNO)) { + adapter.removeAt(i); + break; + } + } + }); } @Override @@ -296,6 +310,7 @@ public class MainActivity extends AppCompatActivity { WKIM.getInstance().getMsgManager().removeSendMsgAckListener(channelID); WKIM.getInstance().getMsgManager().removeRefreshMsgListener(channelID); WKIM.getInstance().getMsgManager().removeClearMsg(channelID); + WKIM.getInstance().getMsgManager().removeDeleteMsgListener(channelID); } } \ No newline at end of file diff --git a/app/src/main/java/com/xinbida/wukongdemo/MessageAdapter.java b/app/src/main/java/com/xinbida/wukongdemo/MessageAdapter.java index 7bac8a1..49e295f 100644 --- a/app/src/main/java/com/xinbida/wukongdemo/MessageAdapter.java +++ b/app/src/main/java/com/xinbida/wukongdemo/MessageAdapter.java @@ -81,13 +81,13 @@ class MessageAdapter extends BaseMultiItemQuickAdapter { if (position == 0) { if (uiMessageEntity.msg.messageSeq > 0) { - HttpUtil.getInstance().deleteMsg(uiMessageEntity.msg.channelID, uiMessageEntity.msg.channelType, uiMessageEntity.msg.messageSeq, uiMessageEntity.msg.messageID, uiMessageEntity.msg.messageID); + HttpUtil.getInstance().deleteMsg(uiMessageEntity.msg.channelID, uiMessageEntity.msg.channelType, uiMessageEntity.msg.messageSeq, uiMessageEntity.msg.messageID, uiMessageEntity.msg.clientMsgNO); } else { WKIM.getInstance().getMsgManager().deleteWithClientMsgNO(uiMessageEntity.msg.clientMsgNO); } } else { if (uiMessageEntity.msg.messageSeq > 0) { - HttpUtil.getInstance().revokeMsg(uiMessageEntity.msg.channelID, uiMessageEntity.msg.channelType, uiMessageEntity.msg.messageID, uiMessageEntity.msg.messageID); + HttpUtil.getInstance().revokeMsg(uiMessageEntity.msg.channelID, uiMessageEntity.msg.channelType, uiMessageEntity.msg.messageID, uiMessageEntity.msg.clientMsgNO); } } })