diff options
| author | George Hazan <ghazan@miranda.im> | 2020-02-29 21:32:45 +0300 |
|---|---|---|
| committer | George Hazan <ghazan@miranda.im> | 2020-02-29 21:32:45 +0300 |
| commit | f0173fd8343e7f1469b40ea8372f6b951846f63b (patch) | |
| tree | 05a775d2c18d8eb43d7172bd4e13203d75e83e0a /protocols | |
| parent | 5792d59c3ed577096556b744a51bb375e59c325f (diff) | |
MessageState: rewritten from scratch to work
Diffstat (limited to 'protocols')
| -rw-r--r-- | protocols/ICQ-WIM/src/poll.cpp | 3 | ||||
| -rwxr-xr-x | protocols/JabberG/src/jabber_thread.cpp | 9 | ||||
| -rw-r--r-- | protocols/VKontakte/src/vk_history.cpp | 6 | ||||
| -rw-r--r-- | protocols/VKontakte/src/vk_messages.cpp | 7 | ||||
| -rw-r--r-- | protocols/VKontakte/src/vk_pollserver.cpp | 13 |
5 files changed, 15 insertions, 23 deletions
diff --git a/protocols/ICQ-WIM/src/poll.cpp b/protocols/ICQ-WIM/src/poll.cpp index 4331ebe8c9..2fa3e7571c 100644 --- a/protocols/ICQ-WIM/src/poll.cpp +++ b/protocols/ICQ-WIM/src/poll.cpp @@ -217,8 +217,7 @@ void CIcqProto::ProcessHistData(const JSONNode &ev) if (srvRemoteRead > lastRemoteRead) { setId(hContact, DB_KEY_REMOTEREAD, srvRemoteRead); - MessageReadData data(time(0), MRD_TYPE_READTIME); - CallService(MS_MESSAGESTATE_UPDATE, hContact, (LPARAM)&data); + CallService(MS_MESSAGESTATE_UPDATE, hContact, MRD_TYPE_READ); } } } diff --git a/protocols/JabberG/src/jabber_thread.cpp b/protocols/JabberG/src/jabber_thread.cpp index 51ef853e94..432510910c 100755 --- a/protocols/JabberG/src/jabber_thread.cpp +++ b/protocols/JabberG/src/jabber_thread.cpp @@ -1198,13 +1198,14 @@ void CJabberProto::OnProcessMessage(const TiXmlElement *node, ThreadData *info) nPacketId = JabberGetPacketID(node);
if (nPacketId != -1)
ProtoBroadcastAck(hContact, ACKTYPE_MESSAGE, ACKRESULT_SUCCESS, (HANDLE)nPacketId);
+
+ if (g_plugin.bMessageState)
+ CallService(MS_MESSAGESTATE_UPDATE, hContact, MRD_TYPE_DELIVERED);
}
if (auto *n = XmlGetChildByTag(node, "displayed", "xmlns", JABBER_FEAT_CHAT_MARKERS))
- if (g_plugin.bMessageState) {
- MessageReadData readData(time(0), MRD_TYPE_READTIME);
- CallService(MS_MESSAGESTATE_UPDATE, hContact, (LPARAM)&readData);
- }
+ if (g_plugin.bMessageState)
+ CallService(MS_MESSAGESTATE_UPDATE, hContact, MRD_TYPE_READ);
JabberReadXep203delay(node, msgTime);
diff --git a/protocols/VKontakte/src/vk_history.cpp b/protocols/VKontakte/src/vk_history.cpp index 47283a5e18..aa5286312b 100644 --- a/protocols/VKontakte/src/vk_history.cpp +++ b/protocols/VKontakte/src/vk_history.cpp @@ -315,10 +315,8 @@ void CVkProto::OnReceiveHistoryMessages(NETLIBHTTPREQUEST *reply, AsyncHttpReque setDword(param->hContact, "lastmsgid", iLastMsgId);
- if (g_bMessageState) {
- MessageReadData data(tLastReadMessageTime, MRD_TYPE_MESSAGETIME);
- CallService(MS_MESSAGESTATE_UPDATE, param->hContact, (LPARAM)&data);
- }
+ if (g_bMessageState)
+ CallService(MS_MESSAGESTATE_UPDATE, param->hContact, MRD_TYPE_DELIVERED);
int once = jnResponse["once"].as_int();
int iRCount = jnResponse["rcount"].as_int();
diff --git a/protocols/VKontakte/src/vk_messages.cpp b/protocols/VKontakte/src/vk_messages.cpp index bfdcf3003d..ce7cbe2736 100644 --- a/protocols/VKontakte/src/vk_messages.cpp +++ b/protocols/VKontakte/src/vk_messages.cpp @@ -438,14 +438,11 @@ void CVkProto::OnReceiveDlgs(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pReq) szGroupIds.AppendFormat(szGroupIds.IsEmpty() ? "%d" : ",%d", -1 * uid);
if (g_bMessageState) {
- time_t tLastReadMessageTime = jnDlg["date"].as_int();
bool isOut = jnDlg["out"].as_bool();
bool isRead = jnDlg["read_state"].as_bool();
- if (isRead && isOut) {
- MessageReadData data(tLastReadMessageTime, MRD_TYPE_MESSAGETIME);
- CallService(MS_MESSAGESTATE_UPDATE, hContact, (LPARAM)&data);
- }
+ if (isRead && isOut)
+ CallService(MS_MESSAGESTATE_UPDATE, hContact, MRD_TYPE_DELIVERED);
}
}
diff --git a/protocols/VKontakte/src/vk_pollserver.cpp b/protocols/VKontakte/src/vk_pollserver.cpp index 1e872b2c5e..aaee82e5fa 100644 --- a/protocols/VKontakte/src/vk_pollserver.cpp +++ b/protocols/VKontakte/src/vk_pollserver.cpp @@ -102,12 +102,11 @@ void CVkProto::PollUpdates(const JSONNode &jnUpdates) if (hContact != 0 && (flags & VKFLAG_MSGUNREAD) && !IsMessageExist(msgid, vkIN)) {
setDword(hContact, "LastMsgReadTime", time(0));
- if (g_bMessageState) {
- MessageReadData data(time(0), MRD_TYPE_READTIME);
- CallService(MS_MESSAGESTATE_UPDATE, hContact, (LPARAM)&data);
- }
+ if (g_bMessageState)
+ CallService(MS_MESSAGESTATE_UPDATE, hContact, MRD_TYPE_READ);
else
SetSrmmReadStatus(hContact);
+
if (m_vkOptions.bUserForceInvisibleOnActivity)
SetInvisible(hContact);
if (m_vkOptions.bSyncReadMessageStatusFromServer)
@@ -176,10 +175,8 @@ void CVkProto::PollUpdates(const JSONNode &jnUpdates) hContact = FindUser(uid);
if (hContact != 0) {
setDword(hContact, "LastMsgReadTime", time(0));
- if (g_bMessageState) {
- MessageReadData data(time(0), MRD_TYPE_READTIME);
- CallService(MS_MESSAGESTATE_UPDATE, hContact, (LPARAM)&data);
- }
+ if (g_bMessageState)
+ CallService(MS_MESSAGESTATE_UPDATE, hContact, MRD_TYPE_READ);
else
SetSrmmReadStatus(hContact);
|
