fix showing of infobar on servicechange via servicelist
[enigma2.git] / lib / python / Screens / ChannelSelection.py
index 26ca436102c542b754f4338393051ed5ad85f594..eb6f90593775dc7ae2a693856e50de7c7ea28acc 100644 (file)
@@ -854,27 +854,27 @@ class ChannelSelectionBase(Screen):
                                                                break
                                                        orbpos = service.getUnsignedData(4) >> 16
                                                        if service.getPath().find("FROM PROVIDER") != -1:
-                                                               service_name = _("Providers")
+                                                               service_type = _("Providers")
                                                        elif service.getPath().find("flags == %d" %(FLAG_SERVICE_NEW_FOUND)) != -1:
-                                                               service_name = _("New")
+                                                               service_type = _("New")
                                                        else:
-                                                               service_name = _("Services")
+                                                               service_type = _("Services")
                                                        try:
-                                                               service_name += str(' - %s'%(nimmanager.getSatDescription(orbpos)))
-                                                               service.setName(service_name) # why we need this cast?
+                                                               # why we need this cast?
+                                                               service_name = str(nimmanager.getSatDescription(orbpos))
                                                        except:
                                                                if orbpos == 0xFFFF: #Cable
-                                                                       n = ("%s (%s)") % (service_name, _("Cable"))
+                                                                       service_name = _("Cable")
                                                                elif orbpos == 0xEEEE: #Terrestrial
-                                                                       n = ("%s (%s)") % (service_name, _("Terrestrial"))
+                                                                       service_name = _("Terrestrial")
                                                                else:
                                                                        if orbpos > 1800: # west
                                                                                orbpos = 3600 - orbpos
                                                                                h = _("W")
                                                                        else:
                                                                                h = _("E")
-                                                                       n = ("%s (%d.%d" + h + ")") % (service_name, orbpos / 10, orbpos % 10)
-                                                               service.setName(n)
+                                                                       service_name = ("%d.%d" + h) % (orbpos / 10, orbpos % 10)
+                                                       service.setName("%s - %s" % (service_name, service_type))
                                                        self.servicelist.addService(service)
                                                self.servicelist.finishFill()
                                                if prev is not None:
@@ -910,7 +910,9 @@ class ChannelSelectionBase(Screen):
                                self.enterPath(ref)
 
        def inBouquet(self):
-               return self.isBasePathEqual(self.bouquet_root)
+               if len(self.servicePath) > 0 and self.servicePath[0] == self.bouquet_root:
+                       return True
+               return False
 
        def atBegin(self):
                return self.servicelist.atBegin()
@@ -1052,6 +1054,7 @@ class ChannelSelection(ChannelSelectionBase, ChannelSelectionEdit, ChannelSelect
                self.lastroot = config.tv.lastroot
                self.revertMode = None
                config.usage.multibouquet.addNotifier(self.multibouquet_config_changed)
+               self.new_service_played = False
 
        def multibouquet_config_changed(self, val):
                self.recallBouquetMode()
@@ -1127,12 +1130,18 @@ class ChannelSelection(ChannelSelectionBase, ChannelSelectionEdit, ChannelSelect
                ref = self.session.nav.getCurrentlyPlayingServiceReference()
                nref = self.getCurrentSelection()
                if ref is None or ref != nref:
+                       self.new_service_played = True
                        self.session.nav.playService(nref)
                        self.saveRoot()
                        self.saveChannel(nref)
                        config.servicelist.lastmode.save()
                        self.addToHistory(nref)
 
+       def newServicePlayed(self):
+               ret = self.new_service_played
+               self.new_service_played = False
+               return ret
+
        def addToHistory(self, ref):
                if self.servicePath is not None:
                        tmp=self.servicePath[:]