From b2f86045d3b3dc2a454f127f186429b60e493072 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 6 Feb 2015 23:36:02 +0000 Subject: merge from branch git-svn-id: http://svn.miranda-ng.org/main/trunk@12029 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/WhatsApp/src/proto.cpp | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) (limited to 'protocols/WhatsApp/src/proto.cpp') diff --git a/protocols/WhatsApp/src/proto.cpp b/protocols/WhatsApp/src/proto.cpp index 42ec1990eb..ca412a77e8 100644 --- a/protocols/WhatsApp/src/proto.cpp +++ b/protocols/WhatsApp/src/proto.cpp @@ -17,9 +17,10 @@ WhatsAppProto::WhatsAppProto(const char* proto_name, const TCHAR* username) : { update_loop_lock_ = CreateEvent(NULL, false, false, NULL); + db_set_resident(m_szModuleName, "Status"); + db_set_resident(m_szModuleName, "StatusMsg"); + CreateProtoService(PS_CREATEACCMGRUI, &WhatsAppProto::SvcCreateAccMgrUI); - CreateProtoService(PS_JOINCHAT, &WhatsAppProto::OnJoinChat); - CreateProtoService(PS_LEAVECHAT, &WhatsAppProto::OnLeaveChat); CreateProtoService(PS_GETAVATARINFOT, &WhatsAppProto::GetAvatarInfo); CreateProtoService(PS_GETAVATARCAPS, &WhatsAppProto::GetAvatarCaps); @@ -27,11 +28,8 @@ WhatsAppProto::WhatsAppProto(const char* proto_name, const TCHAR* username) : CreateProtoService(PS_SETMYAVATART, &WhatsAppProto::SetMyAvatar); HookProtoEvent(ME_OPT_INITIALISE, &WhatsAppProto::OnOptionsInit); - HookProtoEvent(ME_SYSTEM_MODULESLOADED, &WhatsAppProto::OnModulesLoaded); HookProtoEvent(ME_CLIST_PREBUILDSTATUSMENU, &WhatsAppProto::OnBuildStatusMenu); - this->InitContactMenus(); - // Create standard network connection TCHAR descr[512]; mir_sntprintf(descr, SIZEOF(descr), TranslateT("%s server connection"), m_tszUserName); @@ -59,16 +57,19 @@ WhatsAppProto::~WhatsAppProto() CloseHandle(update_loop_lock_); } -int WhatsAppProto::OnModulesLoaded(WPARAM wParam, LPARAM lParam) +int WhatsAppProto::OnEvent(PROTOEVENTTYPE evType, WPARAM wParam, LPARAM lParam) { - // Register group chat - GCREGISTER gcr = { sizeof(gcr) }; - gcr.dwFlags = GC_TYPNOTIF | GC_CHANMGR; - gcr.ptszDispName = m_tszUserName; - gcr.pszModule = m_szModuleName; - CallServiceSync(MS_GC_REGISTER, 0, (LPARAM)&gcr); - - HookProtoEvent(ME_GC_EVENT, &WhatsAppProto::OnChatOutgoing); + if (evType == EV_PROTO_ONLOAD) { + // Register group chat + GCREGISTER gcr = { sizeof(gcr) }; + gcr.dwFlags = GC_TYPNOTIF | GC_CHANMGR; + gcr.ptszDispName = m_tszUserName; + gcr.pszModule = m_szModuleName; + CallServiceSync(MS_GC_REGISTER, 0, (LPARAM)&gcr); + + HookProtoEvent(ME_GC_EVENT, &WhatsAppProto::onGroupChatEvent); + HookProtoEvent(ME_GC_BUILDMENU, &WhatsAppProto::OnChatMenu); + } return 0; } @@ -165,7 +166,7 @@ MCONTACT WhatsAppProto::AddToList(int flags, PROTOSEARCHRESULT* psr) std::string phone(ptrA(mir_utf8encodeT(psr->id))); std::string jid(phone + "@s.whatsapp.net"); - MCONTACT hContact = AddToContactList(jid, 0, false, phone.c_str()); + MCONTACT hContact = AddToContactList(jid, phone.c_str()); if (!(flags & PALF_TEMPORARY)) db_unset(hContact, "CList", "NotOnList"); -- cgit v1.2.3