diff options
Diffstat (limited to 'protocols/WhatsApp/src/utils.cpp')
-rw-r--r-- | protocols/WhatsApp/src/utils.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/protocols/WhatsApp/src/utils.cpp b/protocols/WhatsApp/src/utils.cpp index 880b0e9469..a28deda31d 100644 --- a/protocols/WhatsApp/src/utils.cpp +++ b/protocols/WhatsApp/src/utils.cpp @@ -105,7 +105,7 @@ WAUser* WhatsAppProto::FindUser(const char *szId) return m_arUsers.find(tmp); } -WAUser* WhatsAppProto::AddUser(const char *szId, bool bTemporary, bool isChat) +WAUser* WhatsAppProto::AddUser(const char *szId, bool bTemporary) { auto *pUser = FindUser(szId); if (pUser != nullptr) @@ -114,9 +114,14 @@ WAUser* WhatsAppProto::AddUser(const char *szId, bool bTemporary, bool isChat) MCONTACT hContact = db_add_contact(); Proto_AddToContact(hContact, m_szModuleName); - if (isChat) { + pUser = new WAUser(hContact, mir_strdup(szId)); + pUser->bIsGroupChat = WAJid(szId).isGroup(); + + if (pUser->bIsGroupChat) { setByte(hContact, "ChatRoom", 1); setString(hContact, "ChatRoomID", szId); + + GC_Init(pUser); } else { setString(hContact, DBKEY_ID, szId); @@ -127,9 +132,6 @@ WAUser* WhatsAppProto::AddUser(const char *szId, bool bTemporary, bool isChat) if (bTemporary) Contact::RemoveFromList(hContact); - pUser = new WAUser(hContact, mir_strdup(szId)); - pUser->bIsGroupChat = isChat; - mir_cslock lck(m_csUsers); m_arUsers.insert(pUser); return pUser; |