XEP-0352: Client State Indication

XEP-0352 support added to Auto Away Mode
This commit is contained in:
thierrytiti 2015-05-20 12:12:08 +02:00
parent e35c5a4fa3
commit a660f853c1
2 changed files with 20 additions and 2 deletions

View File

@ -354,17 +354,29 @@
// Module-level functions // Module-level functions
// ---------------------- // ----------------------
this.autoAwayReset=function(){ this.autoAwayReset=function(){
if (converse._idleCounter > 0) { if (converse._idleCounter > 0) {
converse._idleCounter = 0; converse._idleCounter = 0;
if (converse._autoAway>0) { if (converse._autoAway>0) {
converse._autoAway=0; converse._autoAway=0;
if (converse.HAS_CSI) {
converse.connection.send($build("active", {xmlns: 'urn:xmpp:csi:0'}));
}
converse.xmppstatus.setStatus('online'); converse.xmppstatus.setStatus('online');
} }
} }
}; };
this.registerAutoAwayHandler = function (){ this.registerAutoAwayHandler = function (){
if (converse.auto_away>0 || converse.auto_xa>0){ if (converse.auto_away>0 || converse.auto_xa>0){
if (converse.features.findWhere({'var': 'urn:xmpp:csi'})) {
// The server supports XEP-0352 Client State Indication
converse.HAS_CSI=true;
}else {
converse.HAS_CSI=false;
}
if (converse.auto_xa>0 && converse.auto_xa<converse.auto_away) converse.auto_xa=converse.auto_away; if (converse.auto_xa>0 && converse.auto_xa<converse.auto_away) converse.auto_xa=converse.auto_away;
converse._idleCounter=0; converse._idleCounter=0;
converse._autoAway=0; converse._autoAway=0;
@ -381,10 +393,16 @@
converse._idleCounter++; converse._idleCounter++;
} }
if (converse.auto_away>0 && converse._autoAway!=1 && converse._idleCounter > converse.auto_away && converse._idleCounter <= converse.auto_xa){ if (converse.auto_away>0 && converse._autoAway!=1 && converse._idleCounter > converse.auto_away && converse._idleCounter <= converse.auto_xa){
if (converse.HAS_CSI) {
converse.connection.send($build("inactive", {xmlns: 'urn:xmpp:csi:0'}));
}
converse._autoAway=1; converse._autoAway=1;
converse.xmppstatus.setStatus('away'); converse.xmppstatus.setStatus('away');
} }
else if (converse.auto_xa>0 && converse._autoAway!=2 && converse._idleCounter > converse.auto_xa){ else if (converse.auto_xa>0 && converse._autoAway!=2 && converse._idleCounter > converse.auto_xa){
if (converse.HAS_CSI) {
converse.connection.send($build("inactive", {xmlns: 'urn:xmpp:csi:0'}));
}
converse._autoAway=2; converse._autoAway=2;
converse.xmppstatus.setStatus('xa'); converse.xmppstatus.setStatus('xa');
} }

View File

@ -8,7 +8,7 @@ Changelog
* Bugfix. Manual login doesn't work when only websocket_url is set and not bosh_service_url. [jcbrand] * Bugfix. Manual login doesn't work when only websocket_url is set and not bosh_service_url. [jcbrand]
* Bugfix. clearSessions during unload event would throw an error when not logged in. [gbonvehi] * Bugfix. clearSessions during unload event would throw an error when not logged in. [gbonvehi]
* #389 Allow login panel placeholders and roster item 'Name' translations. [gbonvehi] * #389 Allow login panel placeholders and roster item 'Name' translations. [gbonvehi]
* Add automatic Away mode [thierrytiti] * Add automatic Away mode and XEP-0352 support [thierrytiti]
0.9.3 (2015-05-01) 0.9.3 (2015-05-01)
------------------ ------------------