diff options
author | George Hazan <george.hazan@gmail.com> | 2024-01-18 16:58:23 +0300 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2024-01-18 16:58:23 +0300 |
commit | 04d239322880af48b9d5fba5334e1c11de39bd22 (patch) | |
tree | cb3e4a1317a667f6a70f0074f36fafa9ae3b6792 /protocols/Telegram/src | |
parent | 91da50e59054b7d4b7678711c60cdec8dfffbff6 (diff) |
Telegram: no need to display message notifications unless we've read chat description once
Diffstat (limited to 'protocols/Telegram/src')
-rw-r--r-- | protocols/Telegram/src/proto.h | 2 | ||||
-rw-r--r-- | protocols/Telegram/src/server.cpp | 5 | ||||
-rw-r--r-- | protocols/Telegram/src/utils.cpp | 2 |
3 files changed, 7 insertions, 2 deletions
diff --git a/protocols/Telegram/src/proto.h b/protocols/Telegram/src/proto.h index 020b6d740a..99e703d02c 100644 --- a/protocols/Telegram/src/proto.h +++ b/protocols/Telegram/src/proto.h @@ -98,7 +98,7 @@ struct TG_USER : public MZeroedObject int64_t id, chatId = -1; MCONTACT hContact; - bool isGroupChat, isBot, bLoadMembers, bStartChat; + bool isGroupChat, isBot, bLoadMembers, bStartChat, bInited; CMStringA szAvatarHash; CMStringW wszNick, wszFirstName, wszLastName; time_t m_timer1 = 0, m_timer2 = 0; diff --git a/protocols/Telegram/src/server.cpp b/protocols/Telegram/src/server.cpp index ae6ad7f162..bfed68de89 100644 --- a/protocols/Telegram/src/server.cpp +++ b/protocols/Telegram/src/server.cpp @@ -536,6 +536,7 @@ void CTelegramProto::ProcessChatLastMessage(TD::updateChatLastMessage *pObj) return;
}
+ pUser->bInited = true;
if (pUser->hContact == INVALID_CONTACT_ID) {
debugLogA("Last message for a temporary contact, skipping");
return;
@@ -783,6 +784,8 @@ void CTelegramProto::ProcessMessage(const TD::message *pMessage) dbei.timestamp = pMessage->date_;
if (pMessage->is_outgoing_)
dbei.flags |= DBEF_SENT;
+ if (!pUser->bInited)
+ dbei.flags |= DBEF_READ;
if (GetGcUserId(pUser, pMessage, szUserId))
dbei.szUserId = szUserId;
if (pMessage->reply_to_message_id_) {
@@ -798,6 +801,8 @@ void CTelegramProto::ProcessMessage(const TD::message *pMessage) pre.timestamp = pMessage->date_;
if (pMessage->is_outgoing_)
pre.flags |= PREF_SENT;
+ if (!pUser->bInited)
+ pre.flags |= PREF_CREATEREAD;
if (GetGcUserId(pUser, pMessage, szUserId))
pre.szUserId = szUserId;
if (pMessage->reply_to_message_id_) {
diff --git a/protocols/Telegram/src/utils.cpp b/protocols/Telegram/src/utils.cpp index a8fc7e2b56..ddf70e97ea 100644 --- a/protocols/Telegram/src/utils.cpp +++ b/protocols/Telegram/src/utils.cpp @@ -415,7 +415,7 @@ bool CTelegramProto::GetMessageFile( pre.descr.a = caption.c_str();
if (pMsg->is_outgoing_)
pre.dwFlags |= PRFF_SENT;
- if (Contact::IsGroupChat(hContact))
+ if (Contact::IsGroupChat(hContact) || !pUser->bInited)
pre.dwFlags |= PRFF_READ;
if (pMsg->reply_to_message_id_) {
_i64toa(pMsg->reply_to_message_id_, szReplyId, 10);
|