2
0
Эх сурвалжийг харах

XEP-0352: Client State Indication

XEP-0352 support added to Auto Away Mode
thierrytiti 10 жил өмнө
parent
commit
a660f853c1
2 өөрчлөгдсөн 20 нэмэгдсэн , 2 устгасан
  1. 19 1
      converse.js
  2. 1 1
      docs/CHANGES.rst

+ 19 - 1
converse.js

@@ -354,17 +354,29 @@
         // Module-level functions
         // ----------------------
 		
-	this.autoAwayReset=function(){
+        this.autoAwayReset=function(){
             if (converse._idleCounter > 0) {
                 converse._idleCounter = 0;
                 if (converse._autoAway>0) {
                     converse._autoAway=0;
+                    if (converse.HAS_CSI) {
+                        converse.connection.send($build("active", {xmlns: 'urn:xmpp:csi:0'}));
+                    }
                     converse.xmppstatus.setStatus('online');
                 }
             }
         };
         this.registerAutoAwayHandler = function (){
+		
+
             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;
                 converse._idleCounter=0;
                 converse._autoAway=0;
@@ -381,10 +393,16 @@
                         converse._idleCounter++;
                     }
                     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.xmppstatus.setStatus('away');
                     }
                     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.xmppstatus.setStatus('xa');
                     }

+ 1 - 1
docs/CHANGES.rst

@@ -8,7 +8,7 @@ Changelog
 * 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]
 * #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)
 ------------------