TimerEntry.py: dont ask to select subservice when just one subservice is available
[enigma2.git] / lib / python / Screens / InfoBarGenerics.py
index 8cb2569bddc61129aba81f072092c7794484700e..8221fca7310fc47ae56651cde5a447c0747bee3a 100644 (file)
@@ -398,23 +398,36 @@ class SimpleServicelist:
                self.current = 0
 
        def selectService(self, service):
-               self.current = 0
-               while self.services[self.current].ref != service:
-                       self.current += 1
+               if not self.length:
+                       self.current = -1
+                       return False
+               else:
+                       self.current = 0
+                       while self.services[self.current].ref != service:
+                               self.current += 1
+                               if self.current >= self.length:
+                                       return False
+               return True
 
        def nextService(self):
+               if not self.length:
+                       return
                if self.current+1 < self.length:
                        self.current += 1
                else:
                        self.current = 0
 
        def prevService(self):
+               if not self.length:
+                       return
                if self.current-1 > -1:
                        self.current -= 1
                else:
                        self.current = self.length - 1
 
        def currentService(self):
+               if not self.length or self.current >= self.length:
+                       return None
                return self.services[self.current]
 
 class InfoBarEPG:
@@ -531,8 +544,10 @@ class InfoBarEPG:
                                current_path = self.servicelist.getRoot()
                                services = self.getBouquetServices(current_path)
                                self.serviceSel = SimpleServicelist(services)
-                               self.serviceSel.selectService(ref)
-                               self.session.openWithCallback(self.SingleServiceEPGClosed, EPGSelection, ref, serviceChangeCB = self.changeServiceCB)
+                               if self.serviceSel.selectService(ref):
+                                       self.session.openWithCallback(self.SingleServiceEPGClosed, EPGSelection, ref, serviceChangeCB = self.changeServiceCB)
+                               else:
+                                       self.session.openWithCallback(self.SingleServiceEPGClosed, EPGSelection, ref)
                        else:
                                self.session.open(EPGSelection, ref)
 
@@ -544,7 +559,7 @@ class InfoBarEPG:
                        self.session.openWithCallback(self.EventInfoPluginChosen, ChoiceBox, title=_("Please choose an extension..."), list = list, skin_name = "EPGExtensionsList")
                else:
                        self.openSingleServiceEPG()
-                       
+
        def runPlugin(self, plugin):
                plugin(session = self.session, servicelist = self.servicelist)