+class InfoBarExtensions:
+ def __init__(self):
+ self.pipshown = False
+
+ self["InstantExtensionsActions"] = HelpableActionMap(self, "InfobarExtensions",
+ {
+ "extensions": (self.extensions, "Extensions..."),
+ })
+
+ def extensions(self):
+ list = []
+ if self.pipshown == False:
+ list.append((_("Activate Picture in Picture"), "pipon"))
+ elif self.pipshown == True:
+ list.append((_("Disable Picture in Picture"), "pipoff"))
+ self.session.openWithCallback(self.extensionCallback, ChoiceBox, title=_("Please choose an extension..."), list = list)
+
+ def extensionCallback(self, answer):
+ if answer[1] == "pipon":
+ self.session.nav.stopService()
+ self.pip = self.session.instantiateDialog(PictureInPicture)
+ #self.pip.show()
+
+ newservice = str(ServiceReference(self.session.nav.getCurrentlyPlayingServiceReference())) + "s"
+ self.pipservice = eServiceCenter.getInstance().play(eServiceReference(newservice))
+ self.pipservice.start()
+ self.pipshown = True
+ elif answer[1] == "pipoff":
+ #self.pip.hide()
+ del self.pip
+ self.pipshown = False
+