summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mail/changes/bug_3662_signal_unread_when_flag_changes1
-rw-r--r--mail/src/leap/mail/imap/server.py10
2 files changed, 11 insertions, 0 deletions
diff --git a/mail/changes/bug_3662_signal_unread_when_flag_changes b/mail/changes/bug_3662_signal_unread_when_flag_changes
new file mode 100644
index 00000000..216c2a9c
--- /dev/null
+++ b/mail/changes/bug_3662_signal_unread_when_flag_changes
@@ -0,0 +1 @@
+ o Signal unread to UI when flag in message change. Closes: #3662
diff --git a/mail/src/leap/mail/imap/server.py b/mail/src/leap/mail/imap/server.py
index cfcb3d6d..ae76833b 100644
--- a/mail/src/leap/mail/imap/server.py
+++ b/mail/src/leap/mail/imap/server.py
@@ -35,6 +35,8 @@ from twisted.python import log
#import u1db
+from leap.common import events as leap_events
+from leap.common.events.events_pb2 import IMAP_UNREAD_MAIL
from leap.common.check import leap_assert, leap_assert_type
from leap.soledad.client import Soledad
@@ -1405,6 +1407,13 @@ class SoledadMailbox(WithMsgFields):
result.append((msg_id, msg))
return tuple(result)
+ def _signal_unread_to_ui(self):
+ """
+ Sends unread event to ui.
+ """
+ leap_events.signal(
+ IMAP_UNREAD_MAIL, str(self.getUnseenCount()))
+
def store(self, messages, flags, mode, uid):
"""
Sets the flags of one or more messages.
@@ -1455,6 +1464,7 @@ class SoledadMailbox(WithMsgFields):
self._update(msg.setFlags(flags))
result[msg_id] = msg.getFlags()
+ self._signal_unread_to_ui()
return result
def close(self):