- fix storing last used sleep timer time
[vuplus_dvbapp] / lib / python / Screens / SleepTimerEdit.py
index 6e1991b..1a4b656 100644 (file)
@@ -33,31 +33,6 @@ class SleepTimerEdit(Screen):
                if self.is_active:
                        self.time = self.session.nav.SleepTimer.getCurrentSleepTime()
                else:
-                       remaining = None
-                       ref = self.session.nav.getCurrentlyPlayingServiceReference()
-                       if ref:
-                               path = ref.getPath()
-                               if path: # Movie
-                                       service = self.session.nav.getCurrentService()
-                                       seek = service and service.seek()
-                                       if seek:
-                                               length = seek.getLength()
-                                               position = seek.getPlayPosition()
-                                               if length and position:
-                                                       remaining = length[1] - position[1]
-                                                       if remaining > 0:
-                                                               remaining = remaining / 90000
-                               else: # DVB
-                                       epg = eEPGCache.getInstance()
-                                       event = epg.lookupEventTime(ref, -1, 0)
-                                       if event:
-                                               now = int(time())
-                                               start = event.getBeginTime()
-                                               duration = event.getDuration()
-                                               end = start + duration
-                                               remaining = end - now
-                       if remaining:
-                               config.SleepTimer.defaulttime.value = (remaining / 60) + 2
                        self.time = config.SleepTimer.defaulttime.value
                self["input"] = Input(text = str(self.time), maxSize = False, type = Input.NUMBER)
                
@@ -91,7 +66,8 @@ class SleepTimerEdit(Screen):
                        "deleteBackward": self.deleteBackward,
                        "disableTimer": self.disableTimer,
                        "toggleAction": self.toggleAction,
-                       "toggleAsk": self.toggleAsk
+                       "toggleAsk": self.toggleAsk,
+                       "useServiceTime": self.useServiceTime
                }, -1)
 
        def updateColors(self):
@@ -109,7 +85,7 @@ class SleepTimerEdit(Screen):
                        self["yellow_text"].setText(_("Ask before shutdown:") + " " + _("yes"))
                else:
                        self["yellow_text"].setText(_("Ask before shutdown:") + " " + _("no"))
-               self["blue_text"].setText(_("Settings"))
+               self["blue_text"].setText(_("Use time of currently running service"))
 
        def cancel(self):
                config.SleepTimer.ask.cancel()
@@ -120,6 +96,7 @@ class SleepTimerEdit(Screen):
                if self.status:
                        time = int(self["input"].getText())
                        config.SleepTimer.defaulttime.setValue(time)
+                       config.SleepTimer.defaulttime.save()
                        self.session.nav.SleepTimer.setSleepTime(time)
                        self.session.openWithCallback(self.close, MessageBox, _("The sleep timer has been activated."), MessageBox.TYPE_INFO)
                else:
@@ -161,3 +138,31 @@ class SleepTimerEdit(Screen):
        def toggleAsk(self):
                config.SleepTimer.ask.value = not config.SleepTimer.ask.value
                self.updateColors()
+               
+       def useServiceTime(self):
+               remaining = None
+               ref = self.session.nav.getCurrentlyPlayingServiceReference()
+               if ref:
+                       path = ref.getPath()
+                       if path: # Movie
+                               service = self.session.nav.getCurrentService()
+                               seek = service and service.seek()
+                               if seek:
+                                       length = seek.getLength()
+                                       position = seek.getPlayPosition()
+                                       if length and position:
+                                               remaining = length[1] - position[1]
+                                               if remaining > 0:
+                                                       remaining = remaining / 90000
+                       else: # DVB
+                               epg = eEPGCache.getInstance()
+                               event = epg.lookupEventTime(ref, -1, 0)
+                               if event:
+                                       now = int(time())
+                                       start = event.getBeginTime()
+                                       duration = event.getDuration()
+                                       end = start + duration
+                                       remaining = end - now
+               if remaining:
+                       config.SleepTimer.defaulttime.value = (remaining / 60) + 2
+                       self["input"].setText(str((remaining / 60) + 2))