def CheckUpdate(self): global LauncherLoc self._Screen._MsgBox.SetText("CheckingUpdate") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() try: r = requests.get(config.UPDATE_URL, verify=False, timeout=8) except: print("requests get error") return else: if r.status_code == requests.codes.ok: try: json_ = r.json() if "version" in json_ and "updatepath" in json_ and "md5sum" in json_: if config.VERSION != json_["version"]: self._ConfirmPage._URL = json_["updatepath"] self._ConfirmPage._MD5 = json_["md5sum"] self._ConfirmPage._GIT = False self._Screen.PushPage(self._ConfirmPage) self._Screen.Draw() self._ConfirmPage.SnapMsg(MyLangManager.Tr("ConfirmUpdateToFQ") % json_["version"] ) self._Screen.SwapAndShow() elif "gitversion" in json_: ### just use git to run update cur_dir = os.getcwd() os.chdir(LauncherLoc) current_git_version = get_git_revision_short_hash() current_git_version = current_git_version.strip("\n") current_git_version = current_git_version.strip("\t") os.chdir(cur_dir) if current_git_version != json_["gitversion"]: self._ConfirmPage._URL = None self._ConfirmPage._MD5 = None self._ConfirmPage._GIT = True self._ConfirmPage._Version = json_["gitversion"] self._Screen.PushPage(self._ConfirmPage) self._Screen.Draw() self._ConfirmPage.SnapMsg(MyLangManager.Tr("UpdateToFQ") % json_["gitversion"] ) self._Screen.SwapAndShow() else: self._Screen.Draw() self._Screen._MsgBox.SetText("LauncherIsUpToDate") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() pygame.time.delay(765) return True except Exception, e: print("r.json() error %s" % str(e)) else:
def GenList(self): time1 = {} time1["key"] = "time1" if self._Time1 == 0: time1["value"] = MyLangManager.Tr("Never") else: time1["value"] = "%d secs" % self._Time1 time1["label"] = "Screen dimming" time2 = {} time2["key"] = "time2" if self._Time2 == 0: time2["value"] = MyLangManager.Tr("Never") else: time2["value"] = "%d secs" % self._Time2 time2["label"] = "Screen OFF" time3 = {} time3["key"] = "time3" if self._Time3 == 0: time3["value"] = MyLangManager.Tr("Never") else: time3["value"] = "%d secs" % self._Time3 time3["label"] = "Power OFF" self._AList["time1"] = time1 self._AList["time2"] = time2 self._AList["time3"] = time3 self._MyList = [] start_x = 0 start_y = 0 for i, v in enumerate(self._AList): #print(v) li = PageListItem() li._Parent = self li._PosX = start_x li._PosY = start_y + i * PageListItem._Height li._Width = Width li._Fonts["normal"] = self._ListFontObj li._Fonts["small"] = MyLangManager.TrFont("varela12") if self._AList[v]["label"] != "": li.Init(self._AList[v]["label"]) else: li.Init(self._AList[v]["key"]) li._Flag = self._AList[v]["key"] li.SetSmallText(self._AList[v]["value"]) self._MyList.append(li)
class WifiDisconnectConfirmPage(ConfirmPage): _ConfirmText = MyLangManager.Tr("ConfirmDisconnectQ") def KeyDown(self,event): if IsKeyMenuOrB(event.key): self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() if IsKeyStartOrA(event.key): self.SnapMsg(MyLangManager.Tr("Disconnecting")) self._Screen.Draw() self._Screen.SwapAndShow() self._Parent._Daemon.Disconnect() pygame.time.delay(400) self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() def Draw(self): #self.ClearCanvas() self.DrawBG() for i in self._MyList: i.Draw() self.Reset()
def TryConnect(self): global bus if self._PsIndex >= len(self._MyList): return cur_li = self._MyList[self._PsIndex] print(cur_li._Path) if "Connected" in cur_li._Atts: if cur_li._Atts["Connected"] == 1: return proxy_obj = bus.get_object("org.bluez", cur_li._Path) dev = dbus.Interface(proxy_obj, "org.bluez.Device1") self._Screen._FootBar.UpdateNavText("Connecting") self.ShowBox(MyLangManager.Tr("Connecting")) self._Leader._MyAgent.device_obj = dev self._Leader._MyAgent.dev_path = cur_li._Path try: dev.Pair(reply_handler=self._Leader._MyAgent.pair_reply, error_handler=self._Leader._MyAgent.pair_error, timeout=60000) except Exception, e: print(str(e))
def Rescan(self): if self._Screen._CurrentPage != self: return self._Scanning = True self.ShowBox(MyLangManager.Tr("BluetoothScanning")) self._Screen._FootBar.UpdateNavText("Scanning") proxy_obj = self._Dbus.get_object("org.bluez", "/org/bluez/" + self._ADAPTER_DEV) adapter_props = dbus.Interface(proxy_obj, "org.freedesktop.DBus.Properties") discoverying = adapter_props.Get("org.bluez.Adapter1", "Discovering") print("discoverying", discoverying) if self._Adapter != None: try: self._Adapter.StopDiscovery() except Exception, e: print(str(e)) try: self._Adapter.StartDiscovery() except Exception, e: err_name = e.get_dbus_name() if err_name == "org.freedesktop.DBus.Error.NoReply": print("start discovery timeout") else: print("start discovery unknown err: ", str(e))
def ConfigWireless(self, password): netid = self._PsIndex print(netid, " ", password) """ self._Wireless.SetWirelessProperty(netid,"dhcphostname","GameShell") self._Wireless.SetWirelessProperty(netid,"ip","None") self._Wireless.SetWirelessProperty(netid,"dns_domain","None") self._Wireless.SetWirelessProperty(netid,"gateway","None") self._Wireless.SetWirelessProperty(netid,"use_global_dns",0) self._Wireless.SetWirelessProperty(netid,"netmask","None") self._Wireless.SetWirelessProperty(netid,"usedhcphostname",0) ## set 1 to use hostname above self._Wireless.SetWirelessProperty(netid,"bitrate","auto") self._Wireless.SetWirelessProperty(netid,"allow_lower_bitrates",0) self._Wireless.SetWirelessProperty(netid,"dns3","None") self._Wireless.SetWirelessProperty(netid,"dns2","None") self._Wireless.SetWirelessProperty(netid,"dns1","None") self._Wireless.SetWirelessProperty(netid,"use_settings_globally",0) self._Wireless.SetWirelessProperty(netid,"use_static_dns",0) self._Wireless.SetWirelessProperty(netid,"search_domain","None") """ self._Wireless.SetWirelessProperty(netid, "enctype", "wpa-psk") self._Wireless.SetWirelessProperty(netid, "apsk", password) self._Wireless.SetWirelessProperty(netid, "automatic", 1) self.ShowBox(MyLangManager.Tr("Connecting")) self._WirelessList[netid].Connect() print("after Connect") self.UpdateStatus()
def KeyDown(self, event): if IsKeyMenuOrB(event.key): self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() if IsKeyStartOrA(event.key): if self.CheckBattery() < 5: self.SnapMsg(MyLangManager.Tr("BATOver5Pct")) else: if self._MyDownloadPage == None: self._MyDownloadPage = DownloadProcessPage() self._MyDownloadPage._Screen = self._Screen self._MyDownloadPage._Name = "Downloading" self._MyDownloadPage.Init() self._Screen.PushPage(self._MyDownloadPage) self._Screen.Draw() self._Screen.SwapAndShow() if config.CurKeySet == "PC": so_url = self._Parent._Emulator[ "SO_URL"] ## [rom/fav]_list_page is _Parent so_url = so_url.replace("armhf", "x86_64") print(so_url) self._MyDownloadPage.StartDownload( so_url, os.path.dirname(self._Parent._Emulator["ROM_SO"])) else: self._MyDownloadPage.StartDownload( self._Parent._Emulator["SO_URL"], os.path.dirname(self._Parent._Emulator["ROM_SO"]))
def KeyDown(self, event): if IsKeyMenuOrB(event.key): if self._Offline == True: self.AbortedAndReturnToUpLevel() return if self._Adapter != None: try: self._Adapter.StopDiscovery() except Exception, e: print(str(e)) _connecting = self.CheckIfBluetoothConnecting() if _connecting: self.ShutDownConnecting() self.ShowBox(MyLangManager.Tr("ShutDownConnecting")) self.AbortedAndReturnToUpLevel() else: self.AbortedAndReturnToUpLevel() else: self.HideBox() self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() self._Screen._FootBar.ResetNavText()
class PowerOffConfirmPage(ConfirmPage): _ConfirmText = MyLangManager.Tr("Awaiting Input") _FootMsg = ["Nav", "", "Reboot", "Cancel", "Shutdown"] def CheckBattery(self): return BatteryAbstraction.AsPercentage() def KeyDown(self, event): if IsKeyMenuOrB(event.key): self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() if IsKeyStartOrA(event.key): if self.CheckBattery() < 20: cmdpath = "feh --bg-center gameshell/wallpaper/gameover.png;" else: cmdpath = "feh --bg-center gameshell/wallpaper/seeyou.png;" cmdpath += "sleep 3;" #cmdpath += "echo 'halt -p' > /tmp/halt_cmd" cmdpath += "sudo shutdown -h -t 0" pygame.event.post(pygame.event.Event(RUNSYS, message=cmdpath)) if event.key == CurKeys["X"]: cmdpath = "feh --bg-center gameshell/wallpaper/seeyou.png;" cmdpath += "sleep 3;" cmdpath += "sudo reboot" pygame.event.post(pygame.event.Event(RUNSYS, message=cmdpath))
class DeleteCoreConfirmPage(ConfirmPage): _ConfirmText = MyLangManager.Tr("Awaiting Input") _FootMsg = ["Nav","","","Cancel","OK"] CallbackA = None def KeyDown(self,event): if IsKeyMenuOrB(event.key): self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() if IsKeyStartOrA(event.key): self._Screen._MsgBox.SetText("Applying") self._Screen._MsgBox.Draw() self._Screen.SwapAndShow() pygame.time.delay(638) self.CallbackA() self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow()
class BleForgetConfirmPage(ConfirmPage): _ConfirmText = MyLangManager.Tr("ConfirmForgetQ") def KeyDown(self, event): if IsKeyMenuOrB(event.key): self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() if IsKeyStartOrA(event.key): self.SnapMsg(MyLangManager.Tr("Deleting")) self._Screen.Draw() self._Screen.SwapAndShow() try: #self._Parent._Adapter.RemoveDevice() print("try to RemoveDevice") except Exception, e: print(str(e)) pygame.time.delay(400) self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow()
def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width self._Height = self._Screen._Height self._CanvasHWND = self._Screen._CanvasHWND ps = ListPageSelector() ps._Parent = self self._Ps = ps self._PsIndex = 0 self.SyncList() gobject.timeout_add(850, self.GObjectInterval) self._BGpng = IconItem() self._BGpng._ImgSurf = MyIconPool._Icons["heart"] self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self self._BGpng.AddLabel(MyLangManager.Tr("my favorite music"), MyLangManager.TrFont("varela18")) self._BGpng.SetLableColor(MySkinManager.GiveColor('Disabled')) self._BGpng.Adjust(0, 0, self._BGwidth, self._BGheight, 0) self._Scroller = ListScroller() self._Scroller._Parent = self self._Scroller._PosX = self._Width - 10 self._Scroller._PosY = 2 self._Scroller.Init()
class PowerOffConfirmPage(ConfirmPage): _ConfirmText = MyLangManager.Tr("Confirm Power OFF?") def CheckBattery(self): return BatteryAbstraction.AsPercentage() def KeyDown(self, event): if IsKeyMenuOrB(event.key): self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() if IsKeyStartOrA(event.key): if self.CheckBattery() < 20: cmdpath = "feh --bg-center gameshell/wallpaper/gameover.png;" else: cmdpath = "feh --bg-center gameshell/wallpaper/seeyou.png;" cmdpath += "sleep 3;" #cmdpath += "echo 'halt -p' > /tmp/halt_cmd" cmdpath += "shutdown -h -t 0" pygame.event.post(pygame.event.Event(RUNSYS, message=cmdpath))
def KeyDown(self, event): if IsKeyMenuOrB(event.key): self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() if IsKeyStartOrA(event.key): try: #self._FileName stats = os.stat(self._FileName) os.chown( self._FileName, stats.st_uid, stats.st_uid) ## normally uid and gid should be the same except: print("error in FavDeleteConfirmPage chown ") self.SnapMsg(MyLangManager.Tr("Deleteing")) self._Screen.Draw() self._Screen.SwapAndShow() self.Reset() pygame.time.delay(300) self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() print(self._FileName)
def Init(self, text): l = Label() l._PosX = 10 l.SetCanvasHWND(self._Parent._CanvasHWND) text = MyLangManager.Tr(text) l.Init(text, self._Fonts["normal"]) self._Labels["Text"] = l
def DbusScanStarted(self): if self._Screen._CurrentPage !=self: return self._Scanning = True self.ShowBox(MyLangManager.Tr("Wifi scanning")) self._BlockingUI = True print("dbus says start scan...")
def ConvertSecToMin(self, secs): sec_str = "" min_str = "" if secs > 60: m = int(secs / 60) s = secs % 60 if m > 1: min_str = ("%d " + MyLangManager.Tr("minutes") + " ") % m else: min_str = ("%d " + MyLangManager.Tr("minute") + " ") % m if s == 1: sec_str = ("%d " + MyLangManager.Tr("second")) % s elif s > 1: sec_str = ("%d " + MyLangManager.Tr("seconds")) % s elif secs > 0: if secs > 1: sec_str = ("%d " + MyLangManager.Tr("seconds")) % secs else: sec_str = ("%d " + MyLangManager.Tr("second")) % secs elif secs == 0: sec_str = MyLangManager.Tr("Never") return min_str + sec_str
class PowerOffConfirmPage(ConfirmPage): _ConfirmText = MyLangManager.Tr("Awaiting Input") _FootMsg = ["Nav", "", "Reboot", "Cancel", "Shutdown"] def CheckBattery(self): try: f = open(config.Battery) except IOError: print("PowerOFF open %s failed" % config.Battery) return 0 else: with f: bat_uevent = {} content = f.readlines() content = [x.strip() for x in content] for i in content: pis = i.split("=") if len(pis) > 1: bat_uevent[pis[0]] = pis[1] if "POWER_SUPPLY_CAPACITY" in bat_uevent: cur_cap = int(bat_uevent["POWER_SUPPLY_CAPACITY"]) else: cur_cap = 0 return cur_cap return 0 def KeyDown(self, event): if IsKeyMenuOrB(event.key): self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() if IsKeyStartOrA(event.key): if self.CheckBattery() < 20: cmdpath = "feh --bg-center gameshell/wallpaper/gameover.png;" else: cmdpath = "feh --bg-center gameshell/wallpaper/seeyou.png;" cmdpath += "sleep 3;" #cmdpath += "echo 'halt -p' > /tmp/halt_cmd" cmdpath += "sudo halt -p" pygame.event.post(pygame.event.Event(RUNSYS, message=cmdpath)) if event.key == CurKeys["X"]: cmdpath = "feh --bg-center gameshell/wallpaper/seeyou.png;" cmdpath += "sleep 3;" cmdpath += "sudo reboot" pygame.event.post(pygame.event.Event(RUNSYS, message=cmdpath))
def OnKbdReturnBackCb(self): password_inputed = "".join(myvars.PasswordPage._Textarea._MyWords) if is_wifi_connected_now() == False: self.ConfigWireless(password_inputed) else: for i in range(0,10): if is_wifi_connected_now() == True: self.ShowBox(MyLangManager.Tr("Launching")) self._Daemon.Disconnect() self._Daemon.SetForcedDisconnect(True) self._Connecting = False else: break pygame.time.delay(100) if is_wifi_connected_now() == False: self.ConfigWireless(password_inputed) else: self.ShowBox(MyLangManager.Tr("Disconnect first"))
def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width self._Height = self._Screen._Height #self._CanvasHWND = pygame.Surface((self._Width,self._Height)) self._CanvasHWND = self._Screen._CanvasHWND ps = WifiListSelector() ps._Parent = self ps._Width = Width - 12 self._Ps = ps self._PsIndex = 0 msgbox = WifiListMessageBox() msgbox._CanvasHWND = self._CanvasHWND msgbox.Init(" ",MyLangManager.TrFont("veramono12")) msgbox._Parent = self self._MsgBox = msgbox self._EncMethods = misc.LoadEncryptionMethods() # load predefined templates from /etc/wicd/... """ { 'fields': [], 'name': 'WPA 1/2 (Passphrase)', 'optional': [], 'protected': [ ['apsk', 'Preshared_Key'], ], 'required': [ ['apsk', 'Preshared_Key'], ], 'type': 'wpa-psk', }, """ self.UpdateNetList(force_check=True,firstrun=True) self._Scroller = ListScroller() self._Scroller._Parent = self self._Scroller._PosX = 2 self._Scroller._PosY = 2 self._Scroller.Init() self._InfoPage = WifiInfoPage() self._InfoPage._Screen = self._Screen self._InfoPage._Name = MyLangManager.Tr("Wifi info") self._InfoPage.Init()
class PowerOffConfirmPage(ConfirmPage): _ConfirmText = MyLangManager.Tr("Confirm Power OFF?") def CheckBattery(self): try: f = open(config.Battery) except IOError: print("PowerOFF open %s failed" % config.Battery) return 0 else: with f: bat_uevent = {} content = f.readlines() content = [x.strip() for x in content] for i in content: pis = i.split("=") if len(pis) > 1: bat_uevent[pis[0]] = pis[1] if "POWER_SUPPLY_CAPACITY" in bat_uevent: cur_cap = int(bat_uevent["POWER_SUPPLY_CAPACITY"]) else: cur_cap = 0 return cur_cap return 0 def KeyDown(self, event): if IsKeyMenuOrB(event.key): self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() if IsKeyStartOrA(event.key): if self.CheckBattery() < 20: cmdpath = "feh --bg-center %s;" % MySkinManager.GiveWallpaper( "gameover.png") else: cmdpath = "feh --bg-center %s;" % MySkinManager.GiveWallpaper( "seeyou.png") cmdpath += "sleep 3;" #cmdpath += "echo 'halt -p' > /tmp/halt_cmd" cmdpath += "sudo halt -p" pygame.event.post(pygame.event.Event(RUNSYS, message=cmdpath))
def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width self._Height = self._Screen._Height self._CanvasHWND = self._Screen._CanvasHWND ps = ListPageSelector() ps._Parent = self self._Ps = ps self._PsIndex = 0 self.SyncList(self._Emulator["ROM"]) self._MyStack._Emulator = self._Emulator icon_for_list = MultiIconItem() icon_for_list._ImgSurf = self._Parent._Icons["sys"] icon_for_list._MyType = ICON_TYPES["STAT"] icon_for_list._Parent = self icon_for_list.Adjust(0, 0, 18, 18, 0) self._Icons["sys"] = icon_for_list bgpng = IconItem() bgpng._ImgSurf = MyIconPool._Icons["star"] bgpng._MyType = ICON_TYPES["STAT"] bgpng._Parent = self bgpng.AddLabel(MyLangManager.Tr("MyFavGames"), MyLangManager.TrFont("varela18")) bgpng.SetLableColor(MySkinManager.GiveColor('Disabled')) bgpng.Adjust(0, 0, self._BGwidth, self._BGheight, 0) self._Icons["bg"] = bgpng self._Scroller = ListScroller() self._Scroller._Parent = self self._Scroller._PosX = self._Width - 10 self._Scroller._PosY = 2 self._Scroller.Init() rom_so_confirm_page = RomSoConfirmPage() rom_so_confirm_page._Screen = self._Screen rom_so_confirm_page._Name = "Download Confirm" rom_so_confirm_page._Parent = self rom_so_confirm_page.Init() self._RomSoConfirmDownloadPage = rom_so_confirm_page
def KeyDown(self,event): if event.key == CurKeys["Menu"] or event.key == CurKeys["A"]: self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() if event.key == CurKeys["B"]: self.SnapMsg(MyLangManager.Tr("Disconnecting")) self._Screen.Draw() self._Screen.SwapAndShow() self._Parent._Daemon.Disconnect() pygame.time.delay(400) self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow()
def KeyDown(self,event): if IsKeyMenuOrB(event.key): self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() if IsKeyStartOrA(event.key): self.SnapMsg(MyLangManager.Tr("Disconnecting")) self._Screen.Draw() self._Screen.SwapAndShow() self._Parent._Daemon.Disconnect() pygame.time.delay(400) self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow()
def KeyDown(self, event): if event.key == CurKeys["Menu"] or event.key == CurKeys["A"]: self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() if event.key == CurKeys["B"]: self.SnapMsg(MyLangManager.Tr("Deleting")) self._Screen.Draw() self._Screen.SwapAndShow() try: #self._Parent._Adapter.RemoveDevice() print("try to RemoveDevice") except Exception, e: print(str(e)) pygame.time.delay(400) self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow()
def TryConnect(self): global bus if self._PsIndex >= len(self._WirelessList): return cur_li = self._WirelessList[self._PsIndex] print(cur_li._Path) if "Connected" in cur_li._Atts: if cur_li._Atts["Connected"] == 1: return proxy_obj = bus.get_object("org.bluez", cur_li._Path) dev = dbus.Interface(proxy_obj, "org.bluez.Device1") self._Screen._FootBar.UpdateNavText("Connecting") self.ShowBox(MyLangManager.Tr("Connecting")) try: dev.Connect() except Exception, e: print(str(e))
def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width self._Height = self._Screen._Height self._CanvasHWND = self._Screen._CanvasHWND ps = ListPageSelector() ps._Parent = self self._Ps = ps self._PsIndex = 0 self.SyncList("/") icon_for_list = MultiIconItem() icon_for_list._ImgSurf = MyIconPool._Icons["sys"] icon_for_list._MyType = ICON_TYPES["STAT"] icon_for_list._Parent = self icon_for_list.Adjust(0, 0, 18, 18, 0) self._Icons["sys"] = icon_for_list self._BGpng = IconItem() self._BGpng._ImgSurf = MyIconPool._Icons["empty"] self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self self._BGpng.AddLabel(MyLangManager.Tr("Please upload data over Wi-Fi"), MyLangManager.TrFont("varela22")) self._BGpng.SetLableColor(MySkinManager.GiveColor('Disabled')) self._BGpng.Adjust(0, 0, self._BGwidth, self._BGheight, 0) self._Scroller = ListScroller() self._Scroller._Parent = self self._Scroller._PosX = self._Width - 10 self._Scroller._PosY = 2 self._Scroller.Init()
def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width self._Height = self._Screen._Height self._CanvasHWND = self._Screen._CanvasHWND ps = ListPageSelector() ps._Parent = self self._Ps = ps self._PsIndex = 0 self.SyncList(self._Emulator["ROM"]) ### will also mkdir of the ***ROM self try: os.makedirs(self._Emulator["ROM"] + "/.Trash") except OSError: if not os.path.isdir(self._Emulator["ROM"] + "/.Trash"): raise try: os.makedirs(self._Emulator["ROM"] + "/.Fav") except OSError: if not os.path.isdir(self._Emulator["ROM"] + "/.Fav"): raise self._MyStack._Emulator = self._Emulator icon_for_list = MultiIconItem() icon_for_list._ImgSurf = self._Parent._Icons["sys"] icon_for_list._MyType = ICON_TYPES["STAT"] icon_for_list._Parent = self icon_for_list.Adjust(0, 0, 18, 18, 0) self._Icons["sys"] = icon_for_list bgpng = IconItem() bgpng._ImgSurf = MyIconPool._Icons["empty"] bgpng._MyType = ICON_TYPES["STAT"] bgpng._Parent = self bgpng.AddLabel(MyLangManager.Tr("Please upload data over Wi-Fi"), MyLangManager.TrFont("varela22")) bgpng.SetLableColor(MySkinManager.GiveColor('Disabled')) bgpng.Adjust(0, 0, self._BGwidth, self._BGheight, 0) self._Icons["bg"] = bgpng self._Scroller = ListScroller() self._Scroller._Parent = self self._Scroller._PosX = self._Width - 10 self._Scroller._PosY = 2 self._Scroller.Init() rom_so_confirm_page = RomSoConfirmPage() rom_so_confirm_page._Screen = self._Screen rom_so_confirm_page._Name = "Download Confirm" rom_so_confirm_page._Parent = self rom_so_confirm_page.Init() self._RomSoConfirmDownloadPage = rom_so_confirm_page
def KeyDown(self,event): # if self._BlockingUI == True: # print("UI blocking ...") # return if IsKeyMenuOrB(event.key): if self._Wireless != None: wireless_connecting = self._Wireless.CheckIfWirelessConnecting() if wireless_connecting: self.ShutDownConnecting() self.ShowBox(MyLangManager.Tr("ShutDownConnecting")) self._BlockingUI=True self._BlockCb = self.AbortedAndReturnToUpLevel else: self.AbortedAndReturnToUpLevel() else: self.HideBox() self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() if event.key == CurKeys["Up"]: self.ScrollUp() self._Screen.Draw() self._Screen.SwapAndShow() if event.key == CurKeys["Down"]: self.ScrollDown() self._Screen.Draw() self._Screen.SwapAndShow() if IsKeyStartOrA(event.key): ## enter to set password,enter is B on GM if len(self._MyList) == 0: return self._CurBssid = self._MyList[self._PsIndex]._Bssid wicd_wirelss_encrypt_pwd = self.GetWirelessEncrypt(self._PsIndex) if self._MyList[self._PsIndex]._IsActive: self.ShowBox( self._Wireless.GetWirelessIP('') ) else: self._Screen.PushCurPage() self._Screen.SetCurPage( myvars.PasswordPage ) thepass = "" for i in wicd_wirelss_encrypt_pwd: if "preshared_key" in i: if i["preshared_key"] != None: if len(str(i["preshared_key"])) > 0: thepass = str(i["preshared_key"]) break myvars.PasswordPage.SetPassword(thepass) self._Screen.Draw() self._Screen.SwapAndShow() """ try: self._Screen.Draw() self._Screen.SwapAndShow() except Exception as e: print(e) exit(-1) """ if event.key == CurKeys["X"]: self.Rescan(False) if event.key == CurKeys["Y"]: if len(self._MyList) == 0: return self._InfoPage._NetworkId = self._PsIndex self._InfoPage._Wireless = self._Wireless self._InfoPage._Daemon = self._Daemon self._Screen.PushPage(self._InfoPage) self._Screen.Draw() self._Screen.SwapAndShow()
class PowerOffConfirmPage(ConfirmPage): _ConfirmText = MyLangManager.Tr("Awaiting Input") #_FootMsg = ["Nav","Suspend","Reboot","Cancel","Shutdown"] _FootMsg = ["Nav","","Reboot","Cancel","Shutdown"] # uname -r st = subprocess.check_output(["uname","-r"]) st = st.strip("\n") st = st.strip("\t") if "5.7" in st: _FootMsg[1] = "Sleep" def CheckBattery(self): try: f = open(config.Battery) except IOError: print( "PowerOFF open %s failed" % config.Battery) return 0 else: with f: bat_uevent = {} content = f.readlines() content = [x.strip() for x in content] for i in content: pis = i.split("=") if len(pis) > 1: bat_uevent[pis[0]] = pis[1] if "POWER_SUPPLY_CAPACITY" in bat_uevent: cur_cap = int(bat_uevent["POWER_SUPPLY_CAPACITY"]) else: cur_cap = 0 return cur_cap return 0 def KeyDown(self,event): if IsKeyMenuOrB(event.key): self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() if IsKeyStartOrA(event.key): if self.CheckBattery() < 20: cmdpath = "feh --bg-center %s;" % MySkinManager.GiveWallpaper("gameover.png") else: cmdpath = "feh --bg-center %s;" % MySkinManager.GiveWallpaper("seeyou.png") cmdpath += "sleep 3;" #cmdpath += "echo 'halt -p' > /tmp/halt_cmd" cmdpath += "sudo halt -p" pygame.event.post( pygame.event.Event(RUNSYS, message=cmdpath)) if event.key == CurKeys["X"]: cmdpath = "feh --bg-center %s;" % MySkinManager.GiveWallpaper("seeyou.png") cmdpath += "sleep 3;" cmdpath += "sudo reboot" pygame.event.post( pygame.event.Event(RUNSYS, message=cmdpath)) if event.key == CurKeys["Y"]: if self._FootMsg[1] != "": cmdpath = "feh --bg-center %s;" % MySkinManager.GiveWallpaper("seeyou.png") cmdpath += "sleep 3;" cmdpath += "sudo pm-suspend" pygame.event.post( pygame.event.Event(RUNSYS, message=cmdpath))