fix bluescreen when pressing exit in alternative selection
[vuplus_dvbapp] / lib / python / Plugins / Extensions / ZappingAlternatives / plugin.py
index 7dc04d1..d3cfce2 100644 (file)
@@ -173,10 +173,11 @@ class AlternativeZapping(Screen):
                self.updateServices()
                self.updateAlternatives()
        
-       def finishedAlternativeSelection(self, args):
-               self.alternatives[self["serviceslist"].getCurrent()[1]].append(str(ServiceReference(args)))
-               addAlternative(self["serviceslist"].getCurrent()[1], str(ServiceReference(args)))
-               self.updateAlternatives()
+       def finishedAlternativeSelection(self, *args):
+               if len(args):
+                       self.alternatives[self["serviceslist"].getCurrent()[1]].append(str(ServiceReference(args)))
+                       addAlternative(self["serviceslist"].getCurrent()[1], str(ServiceReference(args)))
+                       self.updateAlternatives()
        
        def updateServices(self):
                self.serviceslist = []
@@ -216,13 +217,14 @@ class AlternativeZapping(Screen):
        def greenKey(self):
                self.session.openWithCallback(self.finishedChannelSelection, SimpleChannelSelection, _("Select reference service"))
 
-       def finishedChannelSelection(self, args):
-               serviceString = str(ServiceReference(args))
-               if not self.alternatives.has_key(serviceString):
-                       self.alternatives[serviceString] = []
-               self.updateServices()
-               self.selectService(serviceString)
-               self.updateAlternatives()
+       def finishedChannelSelection(self, *args):
+               if len(args):
+                       serviceString = str(ServiceReference(args[0]))
+                       if not self.alternatives.has_key(serviceString):
+                               self.alternatives[serviceString] = []
+                       self.updateServices()
+                       self.selectService(serviceString)
+                       self.updateAlternatives()
                
        def yellowKey(self):
                if len(self.serviceslist) > 0:
@@ -276,12 +278,12 @@ class ServiceChanged(PerServiceDisplay):
 
 servicechanged = None
 
-def playService(self, ref):
+def playService(self, ref, **kwargs):
        #print "--------------------Alternatives: trying to play service", str(ServiceReference(ref))
-       servicechanged.lastPlayAction = str(ServiceReference(ref))
+       if ref is not None:
+               servicechanged.lastPlayAction = str(ServiceReference(ref))
        servicechanged.nextPlayTry = 0
-       result = oldPlayService(ref)
-       
+       result = oldPlayService(ref, **kwargs)
        return result
 
 def sessionstart(reason, session, **kwargs):