diff options
author | George Hazan <george.hazan@gmail.com> | 2025-04-14 17:52:39 +0300 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2025-04-14 17:52:39 +0300 |
commit | 4d1681dbd44a551bc40b920ec558e7dfbabf6110 (patch) | |
tree | aa0a0bbf476293ece32678d9521058ef917e56b5 | |
parent | 34569ef81b0182e390d4533425d162193f06e069 (diff) |
Teams: more statuses from documentation
-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); |