diff options
-rw-r--r-- | protocols/Teams/src/teams_endpoint.cpp | 25 | ||||
-rw-r--r-- | protocols/Teams/src/teams_utils.cpp | 13 | ||||
-rw-r--r-- | protocols/Teams/src/teams_utils.h | 1 |
3 files changed, 23 insertions, 16 deletions
diff --git a/protocols/Teams/src/teams_endpoint.cpp b/protocols/Teams/src/teams_endpoint.cpp index 1b19cf4de5..5bf46cfbb8 100644 --- a/protocols/Teams/src/teams_endpoint.cpp +++ b/protocols/Teams/src/teams_endpoint.cpp @@ -184,9 +184,30 @@ void CTeamsProto::SetServerStatus(int iStatus) { auto *pReq = new AsyncHttpRequest(REQUEST_PUT, HOST_PRESENCE, "/me/endpoints", &CTeamsProto::OnStatusChanged); + const char *pszAvailability, *pszActivity; + switch (iStatus) { + case ID_STATUS_OFFLINE: + pszAvailability = pszActivity = "Offline"; + break; + case ID_STATUS_NA: + case ID_STATUS_AWAY: + pszAvailability = pszActivity = "Away"; + break; + case ID_STATUS_DND: + pszAvailability = "DoNotDisturb"; + pszActivity = "Presenting"; + break; + case ID_STATUS_OCCUPIED: + pszAvailability = "Busy"; + pszActivity = "InACall"; + break; + default: + pszAvailability = pszActivity = "Available"; + } + JSONNode node(JSON_NODE); - node << CHAR_PARAM("id", m_szEndpoint) << CHAR_PARAM("availability", MirandaToSkypeStatus(iStatus)) - << CHAR_PARAM("activity", "Available") << CHAR_PARAM("activityReporting", "Transport") << CHAR_PARAM("deviceType", "Desktop"); + node << CHAR_PARAM("id", m_szEndpoint) << CHAR_PARAM("availability", pszAvailability) + << CHAR_PARAM("activity", pszActivity) << CHAR_PARAM("activityReporting", "Transport") << CHAR_PARAM("deviceType", "Desktop"); pReq->m_szParam = node.write().c_str(); PushRequest(pReq); diff --git a/protocols/Teams/src/teams_utils.cpp b/protocols/Teams/src/teams_utils.cpp index af6fc87219..c409419054 100644 --- a/protocols/Teams/src/teams_utils.cpp +++ b/protocols/Teams/src/teams_utils.cpp @@ -593,19 +593,6 @@ uint32_t Utf16toUtf32(const wchar_t *str) ////////////////////////////////////////////////////////////////////////////////////////// -const char* MirandaToSkypeStatus(int status) -{ - switch (status) { - case ID_STATUS_OFFLINE: return "Offline"; - case ID_STATUS_AWAY: return "Away"; - case ID_STATUS_NA: return "BeRightBack"; - case ID_STATUS_DND: return "DoNotDisturb"; - case ID_STATUS_OCCUPIED: return "Busy"; - case ID_STATUS_IDLE: return "AvailableIdle"; - } - return "Available"; -} - int SkypeToMirandaStatus(const char *status) { if (!mir_strcmpi(status, "Available")) diff --git a/protocols/Teams/src/teams_utils.h b/protocols/Teams/src/teams_utils.h index dc79d1e2b5..1fe980ef06 100644 --- a/protocols/Teams/src/teams_utils.h +++ b/protocols/Teams/src/teams_utils.h @@ -27,7 +27,6 @@ const wchar_t* GetSkypeNick(const wchar_t *szSkypeId); CMStringA ParseUrl(const char *url, const char *token); int SkypeToMirandaStatus(const char *status); -const char *MirandaToSkypeStatus(int status); bool AddBbcodes(CMStringA &str); |