fixes bug #380
[enigma2.git] / lib / python / Screens / ServiceStopScreen.py
1 from Screens.MessageBox import MessageBox
2
3 class ServiceStopScreen:
4         def __init__(self):
5                 try:
6                         self.session
7                 except:
8                         print "[ServiceStopScreen] ERROR: no self.session set"
9                         
10                 self.oldref = None
11                 self.onClose.append(self.__onClose)
12                 
13         def stopService(self):          
14                 self.oldref = self.session.nav.getCurrentlyPlayingServiceReference()
15                 self.session.nav.stopService()
16                 if self.session.pipshown: # try to disable pip
17                         self.session.pipshown = False
18                         del self.session.pip
19                 
20         def __onClose(self):
21                 self.session.nav.playService(self.oldref)
22                 
23         def restoreService(self, msg = _("Zap back to previously tuned service?")):
24                 if self.oldref:
25                         self.session.openWithCallback(self.restartPrevService, MessageBox, msg, MessageBox.TYPE_YESNO)
26                 else:
27                         self.restartPrevService(False)
28                 
29         def restartPrevService(self, yesno):
30                 if not yesno:
31                         self.oldref=None
32                 self.close()