changeset 2882:0c54970d8e6e

plugin android: fixed csi_timer reset in setActive + crash on call of isActive before session initialisation
author Goffi <goffi@goffi.org>
date Fri, 05 Apr 2019 21:22:03 +0200
parents 13e0a260e7b8
children 7e8ca7c1429a
files sat/plugins/plugin_misc_android.py sat/plugins/plugin_xep_0352.py
diffstat 2 files changed, 10 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/sat/plugins/plugin_misc_android.py	Thu Mar 28 08:40:38 2019 +0100
+++ b/sat/plugins/plugin_misc_android.py	Fri Apr 05 21:22:03 2019 +0200
@@ -245,5 +245,6 @@
             return
         if self._csi_timer is not None:
             self._csi_timer.cancel()
+            self._csi_timer = None
         for client in self.host.getClients(C.PROF_KEY_ALL):
             self._csi.setActive(client)
--- a/sat/plugins/plugin_xep_0352.py	Thu Mar 28 08:40:38 2019 +0100
+++ b/sat/plugins/plugin_xep_0352.py	Fri Apr 05 21:22:03 2019 +0200
@@ -47,9 +47,16 @@
         host.registerNamespace(u"csi", NS_CSI)
 
     def isActive(self, client):
-        if not client._xep_0352_enabled:
+        try:
+            if not client._xep_0352_enabled:
+                return True
+            return client._xep_0352_active
+        except AttributeError:
+            # _xep_0352_active can not be set if isActive is called before
+            # profileConnected has been called
+            log.debug(u"isActive called when XEP-0352 plugin has not yet set the "
+                      u"attributes")
             return True
-        return client._xep_0352_active
 
     def profileConnected(self, client):
         if (NS_CSI, u'csi') in client.xmlstream.features: