move more code to onCreate
[enigma2.git] / lib / python / Screens / ChannelSelection.py
index 03182ab82526d358e9eeedd4b711efda87baaa72..93b55a8e8ff56ca512a8482612568b5972f69bcc 100644 (file)
@@ -217,8 +217,8 @@ class ChannelSelectionBase(Screen):
 
                self.service_types = self.service_types_tv
 
-               #self.bouquet_root = eServiceReference('1:7:1:0:0:0:0:0:0:0:(type == 1) FROM BOUQUET "bouquets.tv" ORDER BY bouquet')
-               self.bouquet_root = eServiceReference('%s FROM BOUQUET "userbouquet.favourites.tv" ORDER BY bouquet'%(self.service_types))
+               self.bouquet_root = eServiceReference('1:7:1:0:0:0:0:0:0:0:(type == 1) FROM BOUQUET "bouquets.tv" ORDER BY bouquet')
+               #self.bouquet_root = eServiceReference('%s FROM BOUQUET "userbouquet.favourites.tv" ORDER BY bouquet'%(self.service_types))
 
                self["key_red"] = Button("All")
                self["key_green"] = Button("Satellites")
@@ -332,8 +332,6 @@ class ChannelSelection(ChannelSelectionBase, ChannelSelectionEdit):
                #if config.tv.lastroot.value == "":
                #allways defaults to fav
                #self.servicelist.setRoot(eServiceReference('1:7:1:0:0:0:0:0:0:0:(type == 1) FROM BOUQUET "userbouquet.favourites.tv" ORDER BY bouquet'))
-               self.showFavourites()
-               self.session.nav.playService(eServiceReference(config.tv.lastservice.value))
 
                class ChannelActionMap(NumberActionMap):
                        def action(self, contexts, action):
@@ -365,10 +363,22 @@ class ChannelSelection(ChannelSelectionBase, ChannelSelectionEdit):
                        })
                self["actions"].csel = self
                self.onShown.append(self.onShow)
+               self.onLayoutFinish.append(self.onCreate)
+
+       def onCreate(self):
+               lastroot=eServiceReference(config.tv.lastroot.value)
+               if lastroot.valid():
+                       self.setRoot(lastroot)
+               else:
+                       self.showFavourites()
+               lastservice=eServiceReference(config.tv.lastservice.value)
+               if lastservice.valid():
+                       self.session.nav.playService(lastservice)
+                       self.servicelist.setCurrent(lastservice)
 
        def onShow(self):
                ref = self.session.nav.getCurrentlyPlayingServiceReference()
-               if ref.valid() and ref.getPath() == "":
+               if ref is not None and ref.valid() and ref.getPath() == "":
                        self.servicelist.setPlayableIgnoreService(ref)
                else:
                        self.servicelist.setPlayableIgnoreService(eServiceReference())