diff --git a/.idea/AndroidProjectSystem.xml b/.idea/AndroidProjectSystem.xml new file mode 100644 index 0000000..4a53bee --- /dev/null +++ b/.idea/AndroidProjectSystem.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/wkim/src/main/java/com/xinbida/wukongim/db/ConversationDbManager.java b/wkim/src/main/java/com/xinbida/wukongim/db/ConversationDbManager.java index 39495ea..ea5c6ed 100644 --- a/wkim/src/main/java/com/xinbida/wukongim/db/ConversationDbManager.java +++ b/wkim/src/main/java/com/xinbida/wukongim/db/ConversationDbManager.java @@ -343,7 +343,7 @@ public class ConversationDbManager { } wkConversationMsg.channelID = msg.channelID; wkConversationMsg.channelType = msg.channelType; - wkConversationMsg.localExtraMap = msg.localExtraMap; +// wkConversationMsg.localExtraMap = msg.localExtraMap; wkConversationMsg.lastMsgTimestamp = msg.timestamp; wkConversationMsg.lastClientMsgNO = msg.clientMsgNO; wkConversationMsg.lastMsgSeq = msg.messageSeq; diff --git a/wkim/src/main/java/com/xinbida/wukongim/manager/CMDManager.java b/wkim/src/main/java/com/xinbida/wukongim/manager/CMDManager.java index ace6609..e945c07 100644 --- a/wkim/src/main/java/com/xinbida/wukongim/manager/CMDManager.java +++ b/wkim/src/main/java/com/xinbida/wukongim/manager/CMDManager.java @@ -202,6 +202,7 @@ public class CMDManager extends BaseManager { } } WKCMD wkcmd = new WKCMD(cmd, jsonObject); + WKLoggerUtils.getInstance().e("处理cmd:"+cmd); pushCMDs(wkcmd); } diff --git a/wkim/src/main/java/com/xinbida/wukongim/manager/MsgManager.java b/wkim/src/main/java/com/xinbida/wukongim/manager/MsgManager.java index 688249d..aad6aee 100644 --- a/wkim/src/main/java/com/xinbida/wukongim/manager/MsgManager.java +++ b/wkim/src/main/java/com/xinbida/wukongim/manager/MsgManager.java @@ -410,7 +410,7 @@ public class MsgManager extends BaseManager { } } } - WKIM.getInstance().getConversationManager().setOnRefreshMsg(uiMsgList,"deleteWithClientMsgNOList"); + WKIM.getInstance().getConversationManager().setOnRefreshMsg(uiMsgList, "deleteWithClientMsgNOList"); } public List getExpireMessages(int limit) { @@ -755,10 +755,25 @@ public class MsgManager extends BaseManager { } - public boolean updateContentAndRefresh(String clientMsgNo, WKMessageContent messageContent, boolean isRefreshUI) { - return MsgDbManager.getInstance().updateFieldWithClientMsgNo(clientMsgNo, WKDBColumns.WKMessageColumns.content, messageContent.encodeMsg().toString(), isRefreshUI); + public boolean updateContentAndRefresh(String clientMsgNo, String content, boolean isRefreshUI) { + return MsgDbManager.getInstance().updateFieldWithClientMsgNo(clientMsgNo, WKDBColumns.WKMessageColumns.content, content, isRefreshUI); } + + public boolean updateContentAndRefresh(String clientMsgNo, WKMessageContent model, boolean isRefreshUI) { + JSONObject jsonObject = model.encodeMsg(); + try { + if (jsonObject == null) { + jsonObject = new JSONObject(); + } + jsonObject.put("type", model.type); + } catch (JSONException e) { + throw new RuntimeException(e); + } + return updateContentAndRefresh(clientMsgNo, jsonObject.toString(), isRefreshUI); + } + + public void updateViewedAt(int viewed, long viewedAt, String clientMsgNo) { MsgDbManager.getInstance().updateViewedAt(viewed, viewedAt, clientMsgNo); } diff --git a/wkim/src/main/java/com/xinbida/wukongim/message/WKConnection.java b/wkim/src/main/java/com/xinbida/wukongim/message/WKConnection.java index 23df1ae..ea6d3a6 100644 --- a/wkim/src/main/java/com/xinbida/wukongim/message/WKConnection.java +++ b/wkim/src/main/java/com/xinbida/wukongim/message/WKConnection.java @@ -168,13 +168,13 @@ public class WKConnection { connectionClient = new ConnectionClient(iNonBlockingConnection -> { connCount = 0; if (iNonBlockingConnection == null || connection == null || !connection.getId().equals(iNonBlockingConnection.getId())) { - WKLoggerUtils.getInstance().e(TAG,"重复连接"); + WKLoggerUtils.getInstance().e(TAG, "重复连接"); forcedReconnection(); return; } Object att = iNonBlockingConnection.getAttachment(); if (att == null || !att.equals(socketSingleID)) { - WKLoggerUtils.getInstance().e(TAG,"不属于当前连接"); + WKLoggerUtils.getInstance().e(TAG, "不属于当前连接"); forcedReconnection(); return; } @@ -458,8 +458,13 @@ public class WKConnection { } } if (hasAttached) { - msg.content = msg.baseContentMsgModel.encodeMsg().toString(); - WKIM.getInstance().getMsgManager().updateContentAndRefresh(msg.clientMsgNO, msg.baseContentMsgModel, false); + JSONObject jsonObject = WKProto.getInstance().getSendPayload(msg); + if (jsonObject != null) { + msg.content = jsonObject.toString(); + } else { + msg.content = msg.baseContentMsgModel.encodeMsg().toString(); + } + WKIM.getInstance().getMsgManager().updateContentAndRefresh(msg.clientMsgNO, msg.content, false); } } //获取发送者信息 @@ -476,7 +481,13 @@ public class WKConnection { WKIM.getInstance().getMsgManager().setUploadAttachment(msg, (isSuccess, messageContent) -> { if (isSuccess) { msg.baseContentMsgModel = messageContent; - WKIM.getInstance().getMsgManager().updateContentAndRefresh(msg.clientMsgNO, msg.baseContentMsgModel, false); + JSONObject jsonObject = WKProto.getInstance().getSendPayload(msg); + if (jsonObject != null) { + msg.content = jsonObject.toString(); + } else { + msg.content = msg.baseContentMsgModel.encodeMsg().toString(); + } + WKIM.getInstance().getMsgManager().updateContentAndRefresh(msg.clientMsgNO, msg.content, false); if (!sendingMsgHashMap.containsKey((int) msg.clientSeq)) { WKSendMsg base1 = WKProto.getInstance().getSendBaseMsg(msg); addSendingMsg(base1);