X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/29038fe91712cd61b9908279733d89abcef73ada..70fd2a3aed8a3b057d86615ea270ef6749989490:/lib/python/Plugins/Extensions/FritzCall/plugin.py?ds=sidebyside diff --git a/lib/python/Plugins/Extensions/FritzCall/plugin.py b/lib/python/Plugins/Extensions/FritzCall/plugin.py index 56e04dce..339f2dd1 100644 --- a/lib/python/Plugins/Extensions/FritzCall/plugin.py +++ b/lib/python/Plugins/Extensions/FritzCall/plugin.py @@ -1,6 +1,6 @@ from Screens.Screen import Screen from Screens.MessageBox import MessageBox -from Components.ActionMap import NumberActionMap +from Components.ActionMap import ActionMap from Components.Label import Label from Plugins.Plugin import PluginDescriptor from Tools import Notifications @@ -16,9 +16,9 @@ my_global_session = None from Components.config import config, ConfigSubsection, ConfigIP, ConfigEnableDisable, getConfigListEntry from Components.ConfigList import ConfigList, ConfigListScreen -config.FritzCall = ConfigSubsection() -config.FritzCall.hostname = ConfigIP(default = [192,168,178,254]) -config.FritzCall.enable = ConfigEnableDisable(default = False) +config.plugins.FritzCall = ConfigSubsection() +config.plugins.FritzCall.hostname = ConfigIP(default = [192,168,178,254]) +config.plugins.FritzCall.enable = ConfigEnableDisable(default = False) class FritzCallSetup(ConfigListScreen, Screen): skin = """ @@ -35,17 +35,18 @@ class FritzCallSetup(ConfigListScreen, Screen): # nun erzeugen wir eine liste von elementen fuer die menu liste. self.list = [ ] - self.list.append(getConfigListEntry(_("Call monitoring"), config.FritzCall.enable)) - self.list.append(getConfigListEntry(_("Fritz!Box FON IP address"), config.FritzCall.hostname)) + self.list.append(getConfigListEntry(_("Call monitoring"), config.plugins.FritzCall.enable)) + self.list.append(getConfigListEntry(_("Fritz!Box FON IP address"), config.plugins.FritzCall.hostname)) ConfigListScreen.__init__(self, self.list) - # DO NOT ASK. - self["setupActions"] = NumberActionMap(["SetupActions"], + # DO NOT ASK. + self["setupActions"] = ActionMap(["SetupActions"], { "save": self.save, "cancel": self.cancel, "ok": self.save, - }, -1) + }, -2) + def abort(self): print "aborting" @@ -73,16 +74,20 @@ class FritzProtocol(LineReceiver): a = line.split(';') (date, event) = a[0:2] + line = a[2] if event == "RING": phone = a[4] number = a[3] text = _("incoming call!\n%s calls on %s!") % (number, phone) timeout = 10 + elif event == "DISCONNECT": + Notifications.RemovePopup("FritzCall_%s" % line) + return else: return - Notifications.AddNotification(MessageBox, text, type=MessageBox.TYPE_INFO, timeout=timeout) + Notifications.AddPopup(text=text, type=MessageBox.TYPE_INFO, timeout=timeout, id="FritzCall_%s" % line) class FritzClientFactory(ReconnectingClientFactory): @@ -93,20 +98,20 @@ class FritzClientFactory(ReconnectingClientFactory): self.hangup_ok = False def startedConnecting(self, connector): - Notifications.AddNotification(MessageBox, _("Connecting to Fritz!Box..."), type=MessageBox.TYPE_INFO, timeout=2) - + Notifications.AddPopup(text=_("Connecting to Fritz!Box..."), type=MessageBox.TYPE_INFO, timeout=2, id="FritzCallConnect") + def buildProtocol(self, addr): - Notifications.AddNotification(MessageBox, _("Connected to Fritz!Box!"), type=MessageBox.TYPE_INFO, timeout=2) + Notifications.AddPopup(text=_("Connected to Fritz!Box!"), type=MessageBox.TYPE_INFO, timeout=2, id="FritzCallConnect") self.resetDelay() return FritzProtocol() - + def clientConnectionLost(self, connector, reason): if not self.hangup_ok: - Notifications.AddNotification(MessageBox, _("Disconnected from\nFritz!Box! (%s)\nretrying...") % reason.getErrorMessage(), type=MessageBox.TYPE_INFO, timeout=4) + Notifications.AddPopup(text=_("Disconnected from\nFritz!Box! (%s)\nretrying...") % reason.getErrorMessage(), type=MessageBox.TYPE_INFO, timeout=4, id="FritzCallConnect") ReconnectingClientFactory.clientConnectionLost(self, connector, reason) - + def clientConnectionFailed(self, connector, reason): - Notifications.AddNotification(MessageBox, _("Connection to Fritz!Box\nfailed! (%s)\nretrying...") % reason.getErrorMessage(), type=MessageBox.TYPE_INFO, timeout=4) + Notifications.AddPopup(text=_("Connection to Fritz!Box\nfailed! (%s)\nretrying...") % reason.getErrorMessage(), type=MessageBox.TYPE_INFO, timeout=4, id="FritzCallConnect") ReconnectingClientFactory.clientConnectionFailed(self, connector, reason) class FritzCall: @@ -117,9 +122,9 @@ class FritzCall: def connect(self): self.abort() - if config.FritzCall.enable.value: + if config.plugins.FritzCall.enable.value: f = FritzClientFactory() - self.d = (f, reactor.connectTCP("%d.%d.%d.%d" % tuple(config.FritzCall.hostname.value), 1012, f)) + self.d = (f, reactor.connectTCP("%d.%d.%d.%d" % tuple(config.plugins.FritzCall.hostname.value), 1012, f)) def shutdown(self): self.abort()