Turn off notifications on refresh
authorEd Page <eopage@byu.net>
Thu, 6 Jan 2011 01:19:43 +0000 (19:19 -0600)
committerEd Page <eopage@byu.net>
Thu, 6 Jan 2011 01:19:43 +0000 (19:19 -0600)
src/dialcentral_qt.py
src/gv_views.py

index cadafe0..bb377c4 100755 (executable)
@@ -23,6 +23,30 @@ import session
 _moduleLogger = logging.getLogger(__name__)
 
 
+class LedWrapper(object):
+
+       def __init__(self):
+               self._ledHandler = None
+               self._init = False
+
+       def off(self):
+               self._lazy_init()
+               if self._ledHandler is not None:
+                       self._ledHandler.off()
+
+       def _lazy_init(self):
+               if self._init:
+                       return
+               self._init = True
+               try:
+                       import led_handler
+                       self._ledHandler = led_handler.LedHandler()
+               except Exception, e:
+                       _moduleLogger.exception('Unable to initialize LED Handling: "%s"' % str(e))
+                       self._ledHandler = None
+
+
+
 class Dialcentral(object):
 
        _DATA_PATHS = [
@@ -37,6 +61,7 @@ class Dialcentral(object):
                self._hiddenUnits = {}
                self._clipboard = QtGui.QApplication.clipboard()
                self._dataPath = None
+               self._ledHandler = LedWrapper()
                self.notifyOnMissed = False
                self.notifyOnVoicemail = False
                self.notifyOnSms = False
@@ -217,6 +242,10 @@ class Dialcentral(object):
        def alarmHandler(self):
                return self._alarmHandler
 
+       @property
+       def ledHandler(self):
+               return self._ledHandler
+
        def _walk_children(self):
                if self._mainWindow is not None:
                        return (self._mainWindow, )
index 6525f85..e6b243b 100644 (file)
@@ -343,6 +343,8 @@ class History(object):
 
        def refresh(self, force=True):
                self._session.update_history(force)
+               if self._app.notifyOnMissed:
+                       self._app.ledHandler.off()
 
        def _populate_items(self):
                self._categoryManager.prepare_for_update(self._session.get_when_history_updated())
@@ -548,6 +550,8 @@ class Messages(object):
 
        def refresh(self, force=True):
                self._session.update_messages(force)
+               if self._app.notifyOnSms or self._app.notifyOnVoicemail:
+                       self._app.ledHandler.off()
 
        def _populate_items(self):
                self._categoryManager.prepare_for_update(self._session.get_when_messages_updated())