better fix for previous commit
[enigma2.git] / lib / python / Screens / InfoBarGenerics.py
index 62cc5f3b0bcfa8be5555990297a3e98c98badbc2..f1141923b543cc437f58ba1ecede5990e60024de 100644 (file)
@@ -70,7 +70,8 @@ class InfoBarShowHide:
 
                self.__event_tracker = ServiceEventTracker(screen=self, eventmap=
                        {
-                               iPlayableService.evStart: self.__serviceStarted
+                               iPlayableService.evStart: self.__serviceStarted,
+                               iPlayableService.evUpdatedEventInfo: self.__eventInfoChanged
                        })
 
                self.__state = self.STATE_SHOWN
@@ -82,10 +83,24 @@ class InfoBarShowHide:
                
                self.onShow.append(self.__onShow)
                self.onHide.append(self.__onHide)
+               self.current_begin_time=0
+
+       def __eventInfoChanged(self):
+               if self.execing:
+                       service = self.session.nav.getCurrentService()
+                       old_begin_time = self.current_begin_time
+                       info = service and service.info()
+                       ptr = info and info.getEvent(0)
+                       self.current_begin_time = ptr and ptr.getBeginTime() or 0
+                       if config.usage.show_infobar_on_event_change.value:
+                               if old_begin_time and old_begin_time != self.current_begin_time:
+                                       self.doShow()
 
        def __serviceStarted(self):
-               if config.usage.show_infobar_on_zap.value:
-                       self.doShow()
+               if self.execing:
+                       self.current_begin_time=0
+                       if config.usage.show_infobar_on_zap.value:
+                               self.doShow()
 
        def __onShow(self):
                self.__state = self.STATE_SHOWN