From f098e6aad95d08ffba3b995dd5c28e588bb09bf1 Mon Sep 17 00:00:00 2001 From: AsamK Date: Fri, 28 Aug 2015 01:21:55 +0200 Subject: [PATCH] Implement history for distant chat Uses the same history config as private chat --- src/chat/distantchat.cc | 4 ++-- src/pqi/p3historymgr.cc | 20 ++++++++++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/chat/distantchat.cc b/src/chat/distantchat.cc index 399baf20a..e69e9aad8 100644 --- a/src/chat/distantchat.cc +++ b/src/chat/distantchat.cc @@ -1019,8 +1019,8 @@ bool DistantChatService::getDistantChatStatus(const RsGxsId& gxs_id,uint32_t& st { status = it->second.status ; - if(from_gxs_id != NULL) - *from_gxs_id = it->second.own_gxs_id ; + if(from_gxs_id != NULL) + *from_gxs_id = it->second.own_gxs_id ; return true ; } diff --git a/src/pqi/p3historymgr.cc b/src/pqi/p3historymgr.cc index ee720160a..60f279bd2 100644 --- a/src/pqi/p3historymgr.cc +++ b/src/pqi/p3historymgr.cc @@ -99,7 +99,17 @@ void p3HistoryMgr::addMessage(const ChatMessage& cm) enabled = true; } - // not handled: private distant chat + if (cm.chat_id.isGxsId() && mPrivateEnable == true) { + if (cm.incoming) { + peerName = cm.chat_id.toGxsId().toStdString(); + } else { + uint32_t status; + RsGxsId from_gxs_id; + if (rsMsgs->getDistantChatStatus(cm.chat_id.toGxsId(), status, &from_gxs_id)) + peerName = from_gxs_id.toStdString(); + } + enabled = true; + } if(enabled == false) return; @@ -387,7 +397,10 @@ bool p3HistoryMgr::chatIdToVirtualPeerId(ChatId chat_id, RsPeerId &peer_id) return true; } - // not handled: private distant chat + if (chat_id.isGxsId()) { + peer_id = RsPeerId(chat_id.toGxsId()); + return true; + } return false; } @@ -423,6 +436,9 @@ bool p3HistoryMgr::getMessages(const ChatId &chatId, std::list &msgs if (chatId.isLobbyId() && mLobbyEnable == true) { enabled = true; } + if (chatId.isGxsId() && mPrivateEnable == true) { + enabled = true; + } if(enabled == false) return false;