Yann Leboulanger pushed to branch xep-0319 at gajim / gajim

Commits:
2eed7a63 by Yann Leboulanger at 2017-07-27T22:02:59+02:00
send idle info even when we manually set a non-online presence.

- - - - -
22903cac by Yann Leboulanger at 2017-07-27T23:17:43+02:00
use autoaway config option instead of send_idle_time to attache idle
element to presence

- - - - -


3 changed files:

- gajim/common/connection.py
- gajim/gui_interface.py
- gajim/roster_window.py


Changes:

=====================================
gajim/common/connection.py
=====================================
--- a/gajim/common/connection.py
+++ b/gajim/common/connection.py
@@ -635,7 +635,7 @@ class CommonConnection:
             if auto:
                 global HAS_IDLE
                 if HAS_IDLE and gajim.config.get_per('accounts', self.name,
-                'send_idle_time'):
+                'autoaway'):
                     idle_sec = int(self.sleeper.getIdleSec())
                     idle_time = time.strftime('%Y-%m-%dT%H:%M:%SZ', 
time.gmtime(time.time() - idle_sec))
             gajim.nec.push_incoming_event(BeforeChangeShowEvent(None,


=====================================
gajim/gui_interface.py
=====================================
--- a/gajim/gui_interface.py
+++ b/gajim/gui_interface.py
@@ -2247,33 +2247,43 @@ class Interface:
             if account not in gajim.sleeper_state or \
             not gajim.sleeper_state[account]:
                 continue
-            if state == sleepy.STATE_AWAKE and \
-            gajim.sleeper_state[account] in ('autoaway', 'autoxa'):
-                # we go online
-                self.roster.send_status(account, 'online',
+            if state == sleepy.STATE_AWAKE:
+                if gajim.sleeper_state[account] in ('autoaway', 'autoxa'):
+                    # we go online
+                    self.roster.send_status(account, 'online',
                         gajim.status_before_autoaway[account])
-                gajim.status_before_autoaway[account] = ''
-                gajim.sleeper_state[account] = 'online'
-            elif state == sleepy.STATE_AWAY and \
-            gajim.sleeper_state[account] == 'online' and \
-            gajim.config.get('autoaway'):
+                    gajim.status_before_autoaway[account] = ''
+                    gajim.sleeper_state[account] = 'online'
+                if gajim.sleeper_state[account] == 'idle':
+                    # we go to the previous state
+                    connected = gajim.connections[account].connected
+                    self.roster.send_status(account, 
gajim.SHOW_LIST[connected],
+                        gajim.status_before_autoaway[account])
+                    gajim.status_before_autoaway[account] = ''
+                    gajim.sleeper_state[account] = 'off'
+            elif state == sleepy.STATE_AWAY and gajim.config.get('autoaway'):
                 # we save out online status
                 gajim.status_before_autoaway[account] = \
-                        gajim.connections[account].status
-                # we go away (no auto status) [we pass True to auto param]
-                auto_message = gajim.config.get('autoaway_message')
-                if not auto_message:
-                    auto_message = gajim.connections[account].status
-                else:
-                    auto_message = auto_message.replace('$S', '%(status)s')
-                    auto_message = auto_message.replace('$T', '%(time)s')
-                    auto_message = auto_message % {
+                    gajim.connections[account].status
+                if gajim.sleeper_state[account] == 'online':
+                    # we go away (no auto status) [we pass True to auto param]
+                    auto_message = gajim.config.get('autoaway_message')
+                    if not auto_message:
+                        auto_message = gajim.connections[account].status
+                    else:
+                        auto_message = auto_message.replace('$S', '%(status)s')
+                        auto_message = auto_message.replace('$T', '%(time)s')
+                        auto_message = auto_message % {
                             'status': gajim.status_before_autoaway[account],
                             'time': gajim.config.get('autoawaytime')
-                            }
-                self.roster.send_status(account, 'away', auto_message,
-                    auto=True)
-                gajim.sleeper_state[account] = 'autoaway'
+                        }
+                    self.roster.send_status(account, 'away', auto_message,
+                        auto=True)
+                if gajim.sleeper_state[account] == 'off':
+                    connected = gajim.connections[account].connected
+                    self.roster.send_status(account, 
gajim.SHOW_LIST[connected],
+                        gajim.status_before_autoaway[account], auto=True)
+                gajim.sleeper_state[account] = 'idle'
             elif state == sleepy.STATE_XA and \
             gajim.sleeper_state[account] in ('online', 'autoaway',
             'autoaway-forced') and gajim.config.get('autoxa'):


=====================================
gajim/roster_window.py
=====================================
--- a/gajim/roster_window.py
+++ b/gajim/roster_window.py
@@ -2117,9 +2117,6 @@ class RosterWindow:
     def send_status(self, account, status, txt, auto=False, to=None):
         if status != 'offline':
             if to is None:
-                if status == gajim.connections[account].get_status() and \
-                txt == gajim.connections[account].status:
-                    return
                 gajim.config.set_per('accounts', account, 'last_status', 
status)
                 gajim.config.set_per('accounts', account, 'last_status_msg',
                         helpers.to_one_line(txt))



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/compare/1ce3dcbff4c6e8327f6fbc714782e1964588952e...22903cacfa3a15272be300f6393ace5aa73bec59
_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to