From: Kyle Fuller Date: Sat, 18 Jul 2020 17:39:03 +0000 (+0100) Subject: fix: clear badgge when Palaver device connects X-Git-Tag: 1.2.1 X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=825cb6814d64006ca0f85fec23fa0a8a3a2d14ca;p=znc-palaver.git fix: clear badgge when Palaver device connects --- diff --git a/CHANGELOG.md b/CHANGELOG.md index 3319bbe..e61288f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog for Palaver ZNC Module +## 1.2.1 (18/07/2020) + +### Bug Fixes + +- Fixes a case where the unread badge on send push notifications would not get + reset when reconnecting the same Palaver device. + ## 1.2.0 ### Enhancements diff --git a/palaver.cpp b/palaver.cpp index 37d72d3..7a88d9d 100644 --- a/palaver.cpp +++ b/palaver.cpp @@ -7,7 +7,7 @@ #define REQUIRESSL -#define ZNC_PALAVER_VERSION "1.2.0" +#define ZNC_PALAVER_VERSION "1.2.1" #include #include @@ -761,21 +761,23 @@ public: module.AddSocket(pSocket); } - void ClearBadges(CModule& module) { + void ClearBadges(CModule& module, bool bInformAPI) { if (m_uiBadge != 0) { - MCString mcsHeaders; + if (bInformAPI) { + MCString mcsHeaders; - CString token = GetPushToken(); - if (token.empty()) { - token = GetIdentifier(); - } - mcsHeaders["Authorization"] = CString("Bearer " + token); - mcsHeaders["Content-Type"] = "application/json"; + CString token = GetPushToken(); + if (token.empty()) { + token = GetIdentifier(); + } + mcsHeaders["Authorization"] = CString("Bearer " + token); + mcsHeaders["Content-Type"] = "application/json"; - CString sJSON = "{\"badge\": 0}"; + CString sJSON = "{\"badge\": 0}"; - PLVHTTPSocket *pSocket = new PLVHTTPNotificationSocket(&module, token, "POST", GetPushEndpoint(), mcsHeaders, sJSON); - module.AddSocket(pSocket); + PLVHTTPSocket *pSocket = new PLVHTTPNotificationSocket(&module, token, "POST", GetPushEndpoint(), mcsHeaders, sJSON); + module.AddSocket(pSocket); + } m_uiBadge = 0; } @@ -965,8 +967,8 @@ public: it != m_vDevices.end(); ++it) { CDevice& device = **it; - if (device.HasClient(*m_pClient) == false && device.HasNetwork(*pNetwork)) { - device.ClearBadges(*this); + if (device.HasNetwork(*pNetwork)) { + device.ClearBadges(*this, !device.HasClient(*m_pClient)); } } }