From 2d11df8c37f7ab6e30c87dd5730614126b2ef7ba Mon Sep 17 00:00:00 2001 From: cuu Date: Sun, 1 Jul 2018 21:23:22 +0800 Subject: [PATCH] Toggle AirPlane Mode --- .../{HelloWorld => Airplane}/__init__.py | 113 ++++++++-------- Menu/GameShell/10_Settings/list_page.py | 6 +- .../Music Player/mpd_spectrum_page.py | 122 +----------------- .../sys.py/gameshell/titlebar_icons/wifi.png | Bin 1918 -> 1465 bytes sys.py/UI/main_screen.py | 33 +++-- sys.py/config.py | 2 +- 6 files changed, 81 insertions(+), 195 deletions(-) rename Menu/GameShell/10_Settings/{HelloWorld => Airplane}/__init__.py (74%) diff --git a/Menu/GameShell/10_Settings/HelloWorld/__init__.py b/Menu/GameShell/10_Settings/Airplane/__init__.py similarity index 74% rename from Menu/GameShell/10_Settings/HelloWorld/__init__.py rename to Menu/GameShell/10_Settings/Airplane/__init__.py index 17f7f90..5a04717 100644 --- a/Menu/GameShell/10_Settings/HelloWorld/__init__.py +++ b/Menu/GameShell/10_Settings/Airplane/__init__.py @@ -2,7 +2,7 @@ import pygame #import math -import subprocess +import commands #from beeprint import pp from libs.roundrects import aa_round_rect @@ -74,8 +74,8 @@ class InfoPageListItem(object): -class HelloWorldPage(Page): - _FootMsg = ["Nav.","","","Back",""] +class AirplanePage(Page): + _FootMsg = ["Nav.","","","Back","Toggle"] _MyList = [] _ListFontObj = fonts["varela13"] @@ -88,53 +88,18 @@ class HelloWorldPage(Page): _DrawOnce = False _Scroller = None + + _InAirPlaneMode = False def __init__(self): Page.__init__(self) self._Icons = {} - def HelloWorld(self): - - hello = {} - hello["key"] = "helloworld" - hello["label"] = "HelloWorld " - hello["value"] = "GameShell" - self._AList["hello"] = hello - def GenList(self): self._MyList = [] - start_x = 0 - start_y = 10 - last_height = 0 - - for i,u in enumerate( ["hello"] ): - if u not in self._AList: - continue - - v = self._AList[u] - - li = InfoPageListItem() - li._Parent = self - li._PosX = start_x - li._PosY = start_y + last_height - li._Width = Width - li._Fonts["normal"] = self._ListFontObj - li._Fonts["small"] = fonts["varela12"] - - if self._AList[u]["label"] != "": - li.Init( self._AList[u]["label"] ) - else: - li.Init( self._AList[u]["key"] ) - - li._Flag = self._AList[u]["key"] - - li.SetSmallText( self._AList[u]["value"] ) - - last_height += li._Height - - self._MyList.append(li) + def Init(self): if self._Screen != None: @@ -155,7 +120,6 @@ class HelloWorldPage(Page): self._Icons["bg"] = bgpng """ - self.HelloWorld() self.GenList() @@ -178,12 +142,35 @@ class HelloWorldPage(Page): self._PosY += dis self._Scrolled += dis + def ToggleMode(self): + print("ToggleMode") + out = commands.getstatusoutput('rfkill list | grep yes | cut -d " " -f3') + print out + if out[1] == "yes": + self._InAirPlaneMode = True + + self._Screen._MsgBox.SetText("Turning On") + self._Screen._MsgBox.Draw() + commands.getstatusoutput("rfkill unblock all") + + else: + self._InAirPlaneMode = False + self._Screen._MsgBox.SetText("Turning Off") + self._Screen._MsgBox.Draw() + commands.getstatusoutput("rfkill block all") + def OnLoadCb(self): self._Scrolled = 0 self._PosY = 0 self._DrawOnce = False - + out = commands.getstatusoutput('rfkill list | grep yes | cut -d " " -f3') + if out[1] == "yes": + self._InAirPlaneMode = True + else: + self._InAirPlaneMode = False + + def OnReturnBackCb(self): self.ReturnToUpLevelPage() self._Screen.Draw() @@ -194,7 +181,17 @@ class HelloWorldPage(Page): self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() - + + if event.key == CurKeys["B"]: + self.ToggleMode() + self._Screen.SwapAndShow() + + pygame.time.delay(1000) + + self._Screen.Draw() + self._Screen.SwapAndShow() + + """ if event.key == CurKeys["Up"]: self.ScrollUp() self._Screen.Draw() @@ -203,29 +200,23 @@ class HelloWorldPage(Page): self.ScrollDown() self._Screen.Draw() self._Screen.SwapAndShow() - + """ def Draw(self): - - if self._DrawOnce == False: - self.ClearCanvas() - #self._Ps.Draw() - if "bg" in self._Icons: - self._Icons["bg"].NewCoord(self._Width/2,self._Height/2 + (self._BGheight - Height)/2 + self._Screen._TitleBar._Height) - self._Icons["bg"].Draw() - - for i in self._MyList: - i.Draw() - - self._DrawOnce = True + self.ClearCanvas() + + if "bg" in self._Icons: + self._Icons["bg"].NewCoord(self._Width/2,self._Height/2 + (self._BGheight - Height)/2 + self._Screen._TitleBar._Height) + self._Icons["bg"].Draw() + if self._HWND != None: self._HWND.fill((255,255,255)) self._HWND.blit(self._CanvasHWND,(self._PosX,self._PosY,self._Width, self._Height ) ) - self._Scroller.UpdateSize(self._BGheight,abs(self._Scrolled)*3) - self._Scroller.Draw() +# self._Scroller.UpdateSize(self._BGheight,abs(self._Scrolled)*3) +# self._Scroller.Draw() @@ -236,9 +227,9 @@ class APIOBJ(object): def __init__(self): pass def Init(self,main_screen): - self._Page = HelloWorldPage() + self._Page = AirplanePage() self._Page._Screen = main_screen - self._Page._Name ="HelloWorld" + self._Page._Name ="Airplane Mode" self._Page.Init() def API(self,main_screen): diff --git a/Menu/GameShell/10_Settings/list_page.py b/Menu/GameShell/10_Settings/list_page.py index 5f13d9f..df9722a 100644 --- a/Menu/GameShell/10_Settings/list_page.py +++ b/Menu/GameShell/10_Settings/list_page.py @@ -76,14 +76,14 @@ class ListPage(Page): self._PsIndex = 0 # "" pkgname, label - alist = [["","Wifi","Wi-Fi"], + alist = [["","Airplane","Airplane Mode"], + ["","Wifi","Wi-Fi"], ["","Sound","Sound Volume"], ["","Brightness","BackLight Brightness"], ["","Storage",""], ["","Update", ""], ["","About", "About"], - ["","PowerOFF","Power off"], - ["","HelloWorld","HelloWorld"],] + ["","PowerOFF","Power off"],] start_x = 0 start_y = 0 diff --git a/Menu/GameShell/Music Player/mpd_spectrum_page.py b/Menu/GameShell/Music Player/mpd_spectrum_page.py index e86f403..d12bccf 100644 --- a/Menu/GameShell/Music Player/mpd_spectrum_page.py +++ b/Menu/GameShell/Music Player/mpd_spectrum_page.py @@ -201,7 +201,7 @@ class MPDSpectrumPage(Page): self._CanvasHWND = self._Screen._CanvasHWND - + """ self._BGpng = IconItem() self._BGpng._ImgSurf = MyIconPool._Icons["sheep_bg"] self._BGpng._MyType = ICON_TYPES["STAT"] @@ -219,7 +219,7 @@ class MPDSpectrumPage(Page): self._SheepBody._MyType = ICON_TYPES["STAT"] self._SheepBody._Parent = self self._SheepBody.Adjust(0,0,self._SheepBodyW,self._SheepBodyH,0) - + """ self.Start() self._GobjectIntervalId = gobject.timeout_add(50,self.Playing) @@ -308,123 +308,7 @@ class MPDSpectrumPage(Page): if event.key == CurKeys["Enter"]: pass - - def Draw(self): - self.ClearCanvas() - self._BGpng.NewCoord(self._Width/2,self._Height/2) - self._BGpng.Draw() - -# print(self._Neighbor._CurSongTime) - - phrase1 = False - phrase2 = False - parts = self._Neighbor._CurSongTime.split(":") - if len(parts) > 1: - cur = float(parts[0]) - end = float(parts[1]) - pros = int((cur/end)*100.0) - - if pros > 30 and pros < 55: - phrase1 = True - if pros > 55 and pros < 100: - phrase2 = True - - - try: - spects = self._Queue.get_nowait() ## last element is rms - #print("get_nowait: " , spects) - except Empty: - return - else: # got line - if len(spects) == 0: - return - - rms = spects[-1] - ratio = float(rms)/float(self._Height) - # 139,62 - dx = 0 - if ratio < 0.5: - dx = 5 - else: - dx = 16 - self._freq_count+=1 ## like frames - - sheepbody_xy = (181,92) - sheephead_xy = (139,62) - sheepeye_xy = (129,60) ## eye2 ==> 129+20 - - eye_dx = sheephead_xy[0] - sheepeye_xy[0] - eye_dy = sheephead_xy[1] - sheepeye_xy[1] - - self._SheepBody.NewCoord(sheepbody_xy[0],sheepbody_xy[1]) - leg_dx = 2 - if self._freq_count % 2 == 0: - self._SheepHead.NewCoord(sheephead_xy[0]+dx, sheephead_xy[1]) - - elif self._freq_count % 3 == 0: - self._SheepHead.NewCoord(sheephead_xy[0]-dx, sheephead_xy[1]) - elif self._freq_count % 4 == 0: - self._SheepHead.NewCoord(sheephead_xy[0],sheephead_xy[1]+dx*2) - - elif self._freq_count % 5 == 0: - self._SheepBody.NewCoord(sheepbody_xy[0],sheepbody_xy[1]-dx*3) - self._SheepHead.NewCoord(sheephead_xy[0],sheephead_xy[1]-dx*3) - - elif self._freq_count % 7 == 0: - leg_dx = 0 - self._SheepBody.NewCoord(sheepbody_xy[0],sheepbody_xy[1]) - - - self._SheepBody.Draw() - self._SheepHead.Draw() - - ## eyes - pygame.draw.circle(self._CanvasHWND,(255,255,255),(self._SheepHead._PosX-eye_dx,self._SheepHead._PosY-eye_dy),8,0) - pygame.draw.circle(self._CanvasHWND,(0,0,0),(self._SheepHead._PosX-eye_dx,self._SheepHead._PosY-eye_dy),8,2) - - pygame.draw.circle(self._CanvasHWND,(0,0,0),(self._SheepHead._PosX-eye_dx,self._SheepHead._PosY-eye_dy),2,0) - - pygame.draw.circle(self._CanvasHWND,(255,255,255),(self._SheepHead._PosX-eye_dx+20,self._SheepHead._PosY-eye_dy),8,0) - pygame.draw.circle(self._CanvasHWND,(0,0,0),(self._SheepHead._PosX-eye_dx+20,self._SheepHead._PosY-eye_dy),8,2) - - pygame.draw.circle(self._CanvasHWND,(0,0,0),(self._SheepHead._PosX-eye_dx+20,self._SheepHead._PosY-eye_dy),2,0) - - ##legs - legs1_xy = (self._SheepBody._PosX+13,self._SheepBody._PosY+38) - legs1_xy_end = (legs1_xy[0],legs1_xy[1]+16) - - legs1_1_xy = (legs1_xy_end[0]-leg_dx,legs1_xy_end[1]) - legs1_1_xy_end = (legs1_1_xy[0],legs1_1_xy[1]+14) - - legs2_xy = (self._SheepBody._PosX+23,self._SheepBody._PosY+36) - legs2_xy_end = (legs2_xy[0],legs2_xy[1]+16) - - - legs3_xy = (self._SheepBody._PosX-23,self._SheepBody._PosY+38) - legs3_xy_end = (legs3_xy[0],legs3_xy[1]+16) - - legs4_xy = (self._SheepBody._PosX-33,self._SheepBody._PosY+26) - legs4_xy_end = (legs4_xy[0],legs4_xy[1]+22) - - legs4_1_xy = (legs4_xy_end[0]-leg_dx,legs4_xy_end[1]) - legs4_1_xy_end = (legs4_1_xy[0],legs4_1_xy[1]+14) - - - pygame.draw.line(self._CanvasHWND,(0,0,0), legs1_xy,legs1_xy_end,4) - pygame.draw.line(self._CanvasHWND,(0,0,0), legs2_xy,legs2_xy_end,4) - - pygame.draw.line(self._CanvasHWND,(0,0,0), legs3_xy,legs3_xy_end,4) - pygame.draw.line(self._CanvasHWND,(0,0,0), legs4_xy,legs4_xy_end,4) - - pygame.draw.line(self._CanvasHWND,(0,0,0), legs1_1_xy,legs1_1_xy_end,4) - - pygame.draw.line(self._CanvasHWND,(0,0,0), legs4_1_xy,legs4_1_xy_end,4) - - - - -""" def Draw(self): self.ClearCanvas() @@ -443,6 +327,6 @@ class MPDSpectrumPage(Page): for i,v in enumerate(spects[0:-1]): pygame.draw.rect(self._CanvasHWND,self._Color,(i*w+left_margin,self._Height-v,bw,v),0) -""" + diff --git a/skin/default/sys.py/gameshell/titlebar_icons/wifi.png b/skin/default/sys.py/gameshell/titlebar_icons/wifi.png index 7384a71bb7acab31b870fa7b4edc7a4b63b73c68..bc1e2c6f54366eae1d79e77575d20c5ac36da5b7 100644 GIT binary patch delta 1309 zcmV+&1>*Yt4!H}E7Yb|$1^@s6XXfJOks&^R00v@9M??Vs0RI60puMM)00009a7bBm z000fw000fw0YWI7cmMzZ2XskIMF-*q85JHIHee9s00009c5p#w0000I0000I03$eV zN&o-^Zb?KzR9M69*=vZEMI6WR&+MKw(~`j0GRf4n@=dyuZb*jFohT9^DXl0fiwG@$ z&~B7bQFbvas>OEg1{q;tETK@DQFPJP6-y*9iKHf>dBOD(=}s@6=h*Rhp4Hv;h1U7O zyg1Ly{GOTr{GabL=NXPQg%a0J#KpJ>eQ;WOeKR)TYkY&hvP{pxEbKx&OliSP^e;5% zf!DDwqtooPl&bq1FXJTm{4jSPm6o=D+I$9su;U1(lT~)&{QUGrqqPH5YsHx2U_a4; zsXdXE3Lmz^=o3_Ar9cn-bOc5#(6g{(v11Fa!xq`vnzq^D2y|(hBgNC%hpUgopiq-a z7)@%gNnZ5@Chv9B1iIpTG@)B(jG%W~{;vx4b#EqXLY|icMVAW3pcW^mwY#x@Nc6Gb zbF3=tmn$$m5BK9P0a3GHKK7>dT}1-~ucg0dNuaizyisrq-avQJvzUt?58Sa(Q4Ova zJTABy_oAT!Pvc$DVo`6wBREmeC|D*~la^(IPjRYXs^|>S0!h+N&xvw^>4GVuA^1|z zKaI%`_*N3d3o$}44;wLFa1EY+5p~Pqp>)W13+k{A<3t|`PLRBk;6>42f@?8D@SSL) z;9>F@i3m=^98o{f0>L!V&sdAKqUD0=>B?2(13|BR9CHOhd@2q6c+5br)cCpdR#)Hw z+%A|bx~Xst4n<`&9KVYC3&slG7Q7=EC+d?fcWv=II@F#&tk|kT&?>5b5j=>i((7M{ zrU{zT0kjsTM=5yc8;rzQ37dOLUOShhb*;snD*IHODMO0{yK#B?`!P(*YMj%yUPzZe zCrRA0js=wod8`n!VP^e7guG+IotcEpr6vam*-%%1LpuCvqU#0crft?V%&c$3bE4`y z?zwYzAt4XtQ6V9tIhZehPsrd#Y{z6#Lt(e0M#xeanIr*M4L(pv$b?5DOAVk*$g+-x zjuS$*wzkgQxMAauTmRe&Dsz=`l{pm^!P))$)pY67h}x;u)zx))OHhwNIZ-Z((>MHowtmW@?-vi*zJ1%5 zWD|1tp561lTCi~A>Xoa<54~XMHC3lqJtOKC?!Ik;)vH!%+1XM^$jK%4kiQ?ahh%_g zV)q{1U+sH#U%91An)8v*?;$e@DL6n#!E8aVT`jw;SiYi6$TA_zYFnXp@UY{6kp2^U z$b?5pOgcnJ!K>nbQT&%(CS;kA$A!A04vmsCl1}M)Nk*?jRcDMwNls%T-tX+FHv9K8 z^u32`JQ@Qs>Sh!e?LAz)9>W4umZ&?+!C%;y;FK(*nzYe<8TCy?X0u8)%3%}!z$@v< zwqP&@N)DH{74^AY^3eVwdFX$T9FyrG`5fQTv!jS7Gf!Gj+N)eTqJF9KFsv_{+LgGh zs9!^=spW$`r8B`MS^jU8W>dSCe>AEy>e`i%ZK++4NR~!9N)K(jFp`x=T_qc=X51>t z{5JIux%jy_C_nT~lj{Z?6*4tcGBG+cFgh|fD=;`ZFfg?F(~*-L2OJeLHB>S&Ix{dj TGB+zQI65#e#iVO3lT8OP1ut?< literal 1918 zcmeAS@N?(olHy`uVBq!ia0vp^LO>kF!3-puq`##ADVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a!@$7wJ-{c#6{ukL^jWi~ z%`(?BHP<(-tEkOM&CbuvE6yn@%_~k%Of4@e%ScRjwsv%~a!8Dd2dW>O0OAV}2}jew zY-AE5g(d>z!V$7wh#*`9$Us&GWFwn~tPGirUm2P##C&A!KsH1WPQpdN%0RIOjyPc4 zfe?g^CJ2$juK=P2StHyixUu@CGpEd$I$_F;$F#IeD z@(V^!&m3+|^ESJ%tIhrTWu_9()IZC9PvF|^uuJpfXT89G!3~TnH!xkg#;@@Dt%|c} z!R$rH&u~hqX6*j-bzioc#>}%T7p^!xM(g{WB!?T$TSA1Aw!jxB9 zS~GDfP#H)`uNXwd`xKxWMxY{7L#XK>lYef98k})I#J6_UvL;m|H$k1$2yze5Egd~Z zmhBTfz4Hozo@Y$*c6a$>!?(B|$l)yTh%5#cIM+d#(Me-=1yGQ^#M9T6{Shl4pR)S8 zDE2Iny0QYtbRZ2Xk%SnOE%Lm8C5nNki(`nz>Er|jDGm-U&h8El?#?bp)+4Ga^-hgb zw(tZvg!##x2@YTg?(#atqZPoqYE?j+RP(N5{vr!j9zC#NZS$Hyckz@xa+}<2H}w8u z<4|-~?$A!@O>|OQX0UwLOy?FI9l>+kgIHcp+V1vk60gSzwyU$Z+1KA%_%r6ry@P_b zCUfR=@LR?-OziBuc=PDhx7YQ{`Tg|;_%)uq{rr0R`uY3o9UiQYcRZ-DaKeT7#D_i! z0)juawPsCJd={P~lU(DJ6cm(H#FdpV@ZF$Ie9RY>sTO*&ty2dCq+YgXuF_Jv%Dzy}$o? zq0bC~(@m{928vS5zgk``I@p1*>p_jYi~ z3C-S~bNASxO}W4O=6?7fRkv_g_tf6rxy{AqHX+{&-rn8*|3KqkcK$+Vr>`F-E-xqn1sm>ffX9r^5xreXIZe{-Gw;X1@Ra zzT`@N&a3=7^7en@PJZ}#`px=|fWO<`{^n;(6T1?SnkaW`As0i4%=W(z78OnhCL+}m z*NBpo#FA92>> PC or GameShell <<< +CurKeySet = "PC" ## >>> PC or GameShell <<< DontLeave = False