summaryrefslogtreecommitdiff
path: root/protocols/SkypeWeb/src/skype_proto.cpp
diff options
context:
space:
mode:
authorAlexander Lantsev <aunsane@gmail.com>2015-03-24 19:38:19 +0000
committerAlexander Lantsev <aunsane@gmail.com>2015-03-24 19:38:19 +0000
commit2902d463ea9a35f7dd9b7ee5c887e10ed11f8542 (patch)
treecc526321622b2f397f1521a75195fd46b1fb2fd3 /protocols/SkypeWeb/src/skype_proto.cpp
parent2f1b8c756066316c59be907bcd94a73cae5e3a7b (diff)
SkypeWeb: status improvements
git-svn-id: http://svn.miranda-ng.org/main/trunk@12493 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/SkypeWeb/src/skype_proto.cpp')
-rw-r--r--protocols/SkypeWeb/src/skype_proto.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/protocols/SkypeWeb/src/skype_proto.cpp b/protocols/SkypeWeb/src/skype_proto.cpp
index 4f3adf6462..14e520c239 100644
--- a/protocols/SkypeWeb/src/skype_proto.cpp
+++ b/protocols/SkypeWeb/src/skype_proto.cpp
@@ -33,9 +33,9 @@ DWORD_PTR CSkypeProto::GetCaps(int type, MCONTACT)
case PFLAGNUM_1:
return PF1_AUTHREQ;
case PFLAGNUM_2:
- return PF2_ONLINE | PF2_INVISIBLE;
+ return PF2_ONLINE | PF2_INVISIBLE | PF2_SHORTAWAY;
case PFLAGNUM_3:
- return PF2_ONLINE | PF2_INVISIBLE;
+ return PF2_ONLINE | PF2_INVISIBLE | PF2_SHORTAWAY;
case PFLAGNUM_4:
return PF4_FORCEADDED | PF4_NOAUTHDENYREASON;
case PFLAG_UNIQUEIDTEXT:
@@ -152,7 +152,12 @@ int CSkypeProto::SetStatus(int iNewStatus)
else if (iNewStatus == ID_STATUS_INVISIBLE)
{
PushRequest(new GetEndpointRequest(ptrA(getStringA("RegistrationToken")), endpointURL));
- PushRequest(new SetStatusRequest(ptrA(getStringA("RegistrationToken")), false), &CSkypeProto::OnSetStatus);
+ PushRequest(new SetStatusRequest(ptrA(getStringA("RegistrationToken")), ID_STATUS_INVISIBLE), &CSkypeProto::OnSetStatus);
+ }
+ else if (iNewStatus == ID_STATUS_AWAY)
+ {
+ PushRequest(new GetEndpointRequest(ptrA(getStringA("RegistrationToken")), endpointURL));
+ PushRequest(new SetStatusRequest(ptrA(getStringA("RegistrationToken")), ID_STATUS_AWAY), &CSkypeProto::OnSetStatus);
}
else
{
@@ -161,10 +166,10 @@ int CSkypeProto::SetStatus(int iNewStatus)
return 0;
}
- if (m_iStatus == ID_STATUS_INVISIBLE)
+ if (m_iStatus == ID_STATUS_INVISIBLE || m_iStatus == ID_STATUS_AWAY)
{
PushRequest(new GetEndpointRequest(ptrA(getStringA("RegistrationToken")), endpointURL));
- PushRequest(new SetStatusRequest(ptrA(getStringA("RegistrationToken")), true), &CSkypeProto::OnSetStatus);
+ PushRequest(new SetStatusRequest(ptrA(getStringA("RegistrationToken")), ID_STATUS_ONLINE), &CSkypeProto::OnSetStatus);
}
else if (old_status == ID_STATUS_OFFLINE && m_iStatus == ID_STATUS_OFFLINE)
{