From d463dd10ec5324b61337487931f55c1292490579 Mon Sep 17 00:00:00 2001 From: cuu Date: Sun, 10 Oct 2021 00:20:47 +0800 Subject: [PATCH] main_screen remove all DBUS handler,and in related plugins wifi use wpa-connect to do the connecting / scanning , use wpa_cli to do disconnect --- .../10_Settings/GateWay/gateway_page.go | 6 +- .../10_Settings/Update/update_page.go | 2 +- Menu/GameShell/10_Settings/Wifi/net_item.go | 70 +++-- .../GameShell/10_Settings/Wifi/plugin_init.go | 11 +- Menu/GameShell/10_Settings/Wifi/wifi.go | 276 ++++++++++-------- .../GameShell/98_TinyCloud/tiny_cloud_page.go | 6 +- go.mod | 13 +- go.sum | 29 +- sysgo/UI/download_process_page.go | 4 +- sysgo/UI/label.go | 4 +- sysgo/UI/main_screen.go | 32 +- sysgo/UI/page.go | 2 +- sysgo/UI/title_bar.go | 6 +- sysgo/config.go | 8 +- 14 files changed, 274 insertions(+), 195 deletions(-) diff --git a/Menu/GameShell/10_Settings/GateWay/gateway_page.go b/Menu/GameShell/10_Settings/GateWay/gateway_page.go index 66d453b..09188c3 100644 --- a/Menu/GameShell/10_Settings/GateWay/gateway_page.go +++ b/Menu/GameShell/10_Settings/GateWay/gateway_page.go @@ -16,7 +16,7 @@ import ( "github.com/cuu/gogame/color" "github.com/cuu/gogame/event" "github.com/cuu/gogame/time" - + "github.com/clockworkpi/LauncherGoDev/sysgo" "github.com/clockworkpi/LauncherGoDev/sysgo/UI" ) @@ -292,8 +292,8 @@ func (self *GateWayPage) ApplyGateWay( gateway string ) bool { } } }else { // wlan0 - if self.Screen.DBusManager.IsWifiConnectedNow() == true { - UI.System("sudo dhclient wlan0") + if self.Screen.IsWifiConnectedNow() == true { + UI.System(fmt.Sprintf("sudo dhclient %s",sysgo.WifiDev)) return true }else { self.Screen.MsgBox.SetText("Wi-Fi is not connected") diff --git a/Menu/GameShell/10_Settings/Update/update_page.go b/Menu/GameShell/10_Settings/Update/update_page.go index 1d12a6f..bad04ab 100644 --- a/Menu/GameShell/10_Settings/Update/update_page.go +++ b/Menu/GameShell/10_Settings/Update/update_page.go @@ -231,7 +231,7 @@ func (self *UpdatePage) KeyDown(ev *event.Event) { } if ev.Data["Key"] == UI.CurKeys["X"] { - if self.Screen.DBusManager.IsWifiConnectedNow() == true { + if self.Screen.IsWifiConnectedNow() == true { if self.CheckUpdate() == true { self.Screen.Draw() self.Screen.SwapAndShow() diff --git a/Menu/GameShell/10_Settings/Wifi/net_item.go b/Menu/GameShell/10_Settings/Wifi/net_item.go index dfe9320..bc6ecb9 100644 --- a/Menu/GameShell/10_Settings/Wifi/net_item.go +++ b/Menu/GameShell/10_Settings/Wifi/net_item.go @@ -2,7 +2,7 @@ package Wifi import ( "fmt" - "strconv" + //"strconv" //"strings" "github.com/veandco/go-sdl2/sdl" @@ -74,11 +74,11 @@ type NetItem struct { ip string Encrypt string // WPA2 Channel string //'10' - Signal string // -67 + Signal int16 // -67 Mode string // Master or AdHoc Parent *WifiList IsActive bool - Password string + Password string Labels map[string]UI.LabelInterface Icons map[string]UI.IconItemInterface Fonts map[string]*ttf.Font @@ -103,9 +103,7 @@ func (self *NetItem) SetActive( act bool) { self.IsActive = act } -func (self *NetItem) UpdateStrenLabel( sig_str string) { // ## sig_str should be 'number',eg:'-70' - - self.Signal = sig_str +func (self *NetItem) UpdateStrenLabel() { // ## sig_str should be 'number',eg:'-70' if _, ok := self.Labels["stren"]; ok { self.Labels["stren"].SetText( fmt.Sprintf("%d",self.CalcWifiQuality()) ) @@ -132,19 +130,33 @@ func (self *NetItem) Init(is_active bool) { essid_ := "" if len(self.Essid) > 19 { - essid_ = self.Essid[:20] + essid_ = self.Essid[:20] }else { - essid_ = self.Essid + essid_ = self.Essid } - - essid_label.Init(essid_, self.FontObj,nil) + if len(essid_) == 0 { + essid_ = self.Bssid + } + + if len(essid_) == 0 { + essid_ = EMPTY_NETWORK + } + + //fmt.Println("essid: ",essid_, len(essid_)) + + essid_label.Init(essid_, self.FontObj,nil) + self.Labels["essid"] = essid_label stren_label := UI.NewLabel() stren_label.CanvasHWND = self.Parent.GetCanvasHWND() - stren_label.Init(self.Signal, self.FontObj,nil) + stren_l := fmt.Sprintf("%%%d ",self.CalcWifiQuality()) + if len(stren_l) == 0 { + stren_l = "%%0" + } + stren_label.Init(stren_l, self.FontObj,nil) stren_label.PosX = self.Width - 23 - stren_label.Width-2 self.Labels["stren"] = stren_label @@ -179,10 +191,7 @@ func (self *NetItem) Connect() { func (self *NetItem) CalcWifiQuality() int { qua := 0 - stren,err := strconv.ParseInt(self.Signal, 10, 0) - if err == nil { - qua = 2 * (int(stren) + 100) - } + qua = 2 * (int(self.Signal) + 100) return qua } @@ -209,15 +218,15 @@ func (self *NetItem) CalcWifiStrength() int { func (self *NetItem) Draw() { for i,v := range self.Labels { - x_,_ := v.Coord() - _,h_ := v.Size() - self.Labels[i].NewCoord(x_,self.PosY+(self.Height - h_)/2) - self.Labels[i].Draw() + x_,_ := v.Coord() + _,h_ := v.Size() + self.Labels[i].NewCoord(x_,self.PosY+(self.Height - h_)/2) + self.Labels[i].Draw() } if self.IsActive == true { - self.Icons["done"].NewCoord(14,self.PosY) - self.Icons["done"].Draw() + self.Icons["done"].NewCoord(14,self.PosY) + self.Icons["done"].Draw() } /* @@ -231,17 +240,18 @@ func (self *NetItem) Draw() { ge := self.CalcWifiStrength() if ge > 0 { self.Icons["wifistatus"].SetIconIndex(ge) - self.Icons["wifistatus"].NewCoord(self.Width-23,self.PosY) - self.Icons["wifistatus"].Draw() + self.Icons["wifistatus"].NewCoord(self.Width-23,self.PosY) + self.Icons["wifistatus"].Draw() }else { - self.Icons["wifistatus"].SetIconIndex(0) - self.Icons["wifistatus"].NewCoord(self.Width-23,self.PosY) - self.Icons["wifistatus"].Draw() + self.Icons["wifistatus"].SetIconIndex(0) + self.Icons["wifistatus"].NewCoord(self.Width-23,self.PosY) + self.Icons["wifistatus"].Draw() } draw.Line(self.Parent.GetCanvasHWND(), - &color.Color{169,169,169,255}, - self.PosX,self.PosY+self.Height-1, - self.PosX+self.Width,self.PosY+self.Height-1, - 1) + &color.Color{169,169,169,255}, + self.PosX,self.PosY+self.Height-1, + self.PosX+self.Width,self.PosY+self.Height-1, + 1) + } diff --git a/Menu/GameShell/10_Settings/Wifi/plugin_init.go b/Menu/GameShell/10_Settings/Wifi/plugin_init.go index 1e2abbb..35e3041 100644 --- a/Menu/GameShell/10_Settings/Wifi/plugin_init.go +++ b/Menu/GameShell/10_Settings/Wifi/plugin_init.go @@ -9,9 +9,13 @@ import ( "github.com/cuu/gogame/event" "github.com/cuu/gogame/rect" "github.com/cuu/gogame/color" -*/ +*/ + "github.com/clockworkpi/LauncherGoDev/sysgo" "github.com/clockworkpi/LauncherGoDev/sysgo/UI" + //"github.com/clockworkpi/LauncherGoDev/sysgo/DBUS" + wifi "github.com/cuu/wpa-connect" + ) /******************************************************************************/ @@ -21,6 +25,11 @@ type WifiPlugin struct { PasswordPage *UI.Keyboard } +var ( + GsScanManager = wifi.NewScanManager(sysgo.WifiDev) + GsConnectManager = wifi.NewConnectManager(sysgo.WifiDev) +) + func (self *WifiPlugin) Init( main_screen *UI.MainScreen ) { diff --git a/Menu/GameShell/10_Settings/Wifi/wifi.go b/Menu/GameShell/10_Settings/Wifi/wifi.go index 567a7e6..c7ebce7 100644 --- a/Menu/GameShell/10_Settings/Wifi/wifi.go +++ b/Menu/GameShell/10_Settings/Wifi/wifi.go @@ -23,7 +23,7 @@ import ( "github.com/clockworkpi/LauncherGoDev/sysgo" "github.com/clockworkpi/LauncherGoDev/sysgo/UI" - wifi "github.com/mark2b/wpa-connect" + wifi "github.com/cuu/wpa-connect" ) const EMPTY_NETWORK = "00:00:00:00:00:00" @@ -34,17 +34,17 @@ type WifiDisconnectConfirmPage struct { } func cmdEnv() []string { - return []string{"LANG=C", "LC_ALL=C"} + return []string{"LANG=C", "LC_ALL=C"} } func execCmd(cmdArgs []string) ([]byte, error) { - cmd := exec.Command(cmdArgs[0], cmdArgs[1:]...) - cmd.Env = append(os.Environ(), cmdEnv()...) - out, err := cmd.Output() - if err != nil { - err = fmt.Errorf(`failed to execute "%v" (%+v)`, strings.Join(cmdArgs, " "), err) - } - return out, err + cmd := exec.Command(cmdArgs[0], cmdArgs[1:]...) + cmd.Env = append(os.Environ(), cmdEnv()...) + out, err := cmd.Output() + if err != nil { + err = fmt.Errorf(`failed to execute "%v" (%+v)`, strings.Join(cmdArgs, " "), err) + } + return out, err } @@ -67,18 +67,18 @@ func (self *WifiDisconnectConfirmPage) KeyDown(ev *event.Event ) { if ev.Data["Key"] == UI.CurKeys["B"] { fmt.Println("Disconnecting..") - self.SnapMsg("Disconnecting...") - self.Screen.Draw() - self.Screen.SwapAndShow() - - self.Parent.Parent.Disconnect() - - time.BlockDelay(400) - - self.ReturnToUpLevelPage() - self.Screen.Draw() - self.Screen.SwapAndShow() - + self.SnapMsg("Disconnecting...") + self.Screen.Draw() + self.Screen.SwapAndShow() + + self.Parent.Parent.Disconnect() + + time.BlockDelay(400) + + self.ReturnToUpLevelPage() + self.Screen.Draw() + self.Screen.SwapAndShow() + self.Parent.Parent.Rescan(false) } } @@ -88,8 +88,8 @@ type WifiInfoPage struct { Bss *wifi.BSS AList map[string]map[string]string - NetworkId string - + ESSID string + BSSID string MyList []UI.ListItemInterface DisconnectConfirmPage *WifiDisconnectConfirmPage //child page @@ -104,34 +104,30 @@ func NewWifiInfoPage() *WifiInfoPage { p.AList = make(map[string]map[string]string) - p.NetworkId = EMPTY_NETWORK + p.BSSID = "" + p.ESSID = "" return p } -func (self *WifiInfoPage) GetWirelessIP() string { - - return "0.0.0.0" -} - func (self *WifiInfoPage) GenList() { - var cur_network_id string + self.MyList = nil self.MyList = make([]UI.ListItemInterface,0) - cur_network_id = EMPTY_NETWORK - - if self.NetworkId != EMPTY_NETWORK { + if self.BSSID != "" { self.AList["ip"]["value"] = "Not Connected" - if cur_network_id == self.NetworkId { + if self.BSSID == self.Parent.CurBssid { var ip string - ip = self.GetWirelessIP() + ip = self.Parent.GetWirelessIP() if len(ip) > 0 { self.AList["ip"]["value"]=ip } - } + }else { + fmt.Println(self.BSSID) + } - self.AList["bssid"]["value"] = self.Parent.CurBssid + self.AList["ssid"]["value"] = self.ESSID } start_x := 0 @@ -182,15 +178,13 @@ func (self *WifiInfoPage) Init() { ip["label"] = "IP" ip["value"] = "Not Connected" - bssid := make(map[string]string) // bssid = {} - bssid["key"] = "bssid" - bssid["label"] = "BSSID" - bssid["value"] = "" + ssid := make(map[string]string) // ssid = {} + ssid["key"] = "ssid" + ssid["label"] = "SSID" + ssid["value"] = "" self.AList["ip"] = ip - self.AList["bssid"] = bssid - - self.GenList() + self.AList["ssid"] = ssid self.DisconnectConfirmPage = NewWifiDisconnectConfirmPage() self.DisconnectConfirmPage.Screen = self.Screen @@ -281,8 +275,8 @@ func (self *WifiInfoPage) OnLoadCb() { func (self *WifiInfoPage) OnReturnBackCb() { self.ReturnToUpLevelPage() - self.Screen.Draw() - self.Screen.SwapAndShow() + self.Screen.Draw() + self.Screen.SwapAndShow() } @@ -414,7 +408,8 @@ type WifiList struct{ InfoPage *WifiInfoPage MyList []*NetItem - CurBssid string + CurEssid string ///SomeWifi + CurBssid string //00:00:00:00:00:00 CurIP string CurSig string } @@ -438,43 +433,52 @@ func (self *WifiList) ShowBox(msg string ) { func (self *WifiList) HideBox() { self.Draw() - self.ShowingMessageBox = false - self.Screen.SwapAndShow() + self.ShowingMessageBox = false + self.Screen.SwapAndShow() } func (self *WifiList) GenNetworkList() { - self.MyList = nil - self.MyList = make([]*NetItem,0) - + self.MyList = self.MyList[:0] + start_x := 0 start_y := 0 - var is_active bool var li_idx int li_idx = 0 - - self.WifiScanStarted() - if bssList, err := wifi.ScanManager.Scan(); err == nil { - + + + self.WifiScanStarted() + + if bssList, err := GsScanManager.Scan(); err == nil { + + self.CurEssid = GsScanManager.GetCurrentSSID() + self.CurBssid = GsScanManager.GetCurrentBSSID() + for _, bss := range bssList { - is_active = false - print(bss.SSID, bss.Signal, bss.KeyMgmt) - ni := NewNetItem() - ni.Parent = self - ni.PosX = start_x - ni.PosY = start_y + li_idx* NetItemDefaultHeight - ni.Width = UI.Width - ni.FontObj = self.ListFontObj - ni.Essid = bss.SSID - ni.Bssid = bss.BSSID - ni.Init(is_active) - self.MyList = append(self.MyList,ni) + is_active = false + fmt.Println(bss.SSID, " ", bss.BSSID," ",bss.Signal, bss.KeyMgmt) + ni := NewNetItem() + ni.Parent = self + ni.PosX = start_x + ni.PosY = start_y + li_idx* NetItemDefaultHeight + ni.Width = UI.Width + ni.FontObj = self.ListFontObj + ni.Essid = bss.SSID + ni.Bssid = bss.BSSID + ni.Signal = bss.Signal + + if self.CurBssid == ni.Bssid { + is_active = true + } + + ni.Init(is_active) + self.MyList = append(self.MyList,ni) - li_idx++ + li_idx++ } } - + self.WifiScanFinished() self.PsIndex = 0 @@ -482,10 +486,16 @@ func (self *WifiList) GenNetworkList() { func (self *WifiList) Disconnect() { self.Connecting = false - wpa_cli_disconnect := []string{"wpa_cli","disconnect",self.CurBssid} - //out, err := execCmd(getVolumeCmd()) + + wpa_cli_disconnect := []string{"wpa_cli","disconnect",self.CurEssid,"-i",sysgo.WifiDev} execCmd( wpa_cli_disconnect ) + fmt.Println(wpa_cli_disconnect) + dhcp_release := []string{"dhclient","-r",sysgo.WifiDev} + execCmd(dhcp_release) + self.CurEssid = "" + self.CurBssid = "" + } @@ -508,8 +518,6 @@ func (self *WifiList) WifiScanFinished() { self.ResetPageSelector() - self.UpdateNetList(-1,[]string{}, true,false) - self.Scanning= false self.HideBox() @@ -544,42 +552,65 @@ func (self *WifiList) UpdateNetList(state int,info []string ,force_check bool,fi } +func (self *WifiList) UpdateListActive() { + + for i:=0;i 1 && s[1] == "15" { + self.ShowBox("Wifi auth error") + }else { + self.ShowBox(err_str) + } + + self.CurEssid = "" + self.CurBssid = "" } - - - //self.UpdateStatus() - - + self.Connecting = false + + self.UpdateListActive() + } func (self *WifiList) GetWirelessIP() string { cli := fmt.Sprintf( "ip -4 addr show %s | grep -oP '(?<=inet\\s)\\d+(\\.\\d+){3}'",sysgo.WifiDev) out := UI.System(cli) - + if len(out) > 5 { + out = strings.TrimSuffix(out,"\n") + } return out } -func (self *WifiList) GetWirelessEncrypt(network_id int) []map[string]string { - return nil - -} - func (self *WifiList) ScrollUp() { if len(self.MyList) == 0 { return @@ -627,25 +658,26 @@ func (self *WifiList) AbortedAndReturnToUpLevel() { func (self *WifiList) OnKbdReturnBackCb() { password_inputed := strings.Join(APIOBJ.PasswordPage.Textarea.MyWords,"") - if self.Screen.DBusManager.IsWifiConnectedNow() == false { - self.ConfigWireless(password_inputed) - } + fmt.Println("Password inputed: ",password_inputed) + ip := self.GetWirelessIP() + if len(ip) < 6 { + self.ConfigWireless(password_inputed) + } } func (self *WifiList) OnReturnBackCb() { - + //fmt.Println("return back") } func (self *WifiList) KeyDown( ev *event.Event ) { if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] { - self.ShutDownConnecting() - self.ShowBox("ShutDownConnecting...") + //self.ShutDownConnecting() + //self.ShowBox("ShutDownConnecting...") self.AbortedAndReturnToUpLevel() } - if ev.Data["Key"] == UI.CurKeys["Up"] { self.ScrollUp() self.Screen.Draw() @@ -662,8 +694,6 @@ func (self *WifiList) KeyDown( ev *event.Event ) { if len(self.MyList) == 0 { return } - self.CurBssid = self.MyList[self.PsIndex].Bssid - if self.MyList[self.PsIndex].IsActive == true { var ip string ip = self.GetWirelessIP() @@ -691,15 +721,25 @@ func (self *WifiList) KeyDown( ev *event.Event ) { if len(self.MyList) == 0 { return } - - - self.Screen.PushPage(self.InfoPage) - self.Screen.Draw() - self.Screen.SwapAndShow() + self.InfoPage.BSSID = self.MyList[self.PsIndex].Bssid + self.InfoPage.ESSID = self.MyList[self.PsIndex].Essid + self.Screen.PushPage(self.InfoPage) + self.Screen.Draw() + self.Screen.SwapAndShow() } } +func (self *WifiList) OnLoadCb() { + + ip := self.GetWirelessIP() + if len(ip) < 6 { + self.CurEssid = "" + self.CurBssid = "" + self.CurIP = ip + } + self.Rescan(false) +} func (self *WifiList) Init() { @@ -738,19 +778,17 @@ func (self *WifiList) Init() { }, */ - self.UpdateNetList(-1,[]string{}, true,true) // self.UpdateNetList(force_check=True,firstrun=True) + self.Scroller = UI.NewListScroller() + self.Scroller.Parent = self + self.Scroller.PosX = 2 + self.Scroller.PosY = 2 + self.Scroller.Init() - self.Scroller = UI.NewListScroller() - self.Scroller.Parent = self - self.Scroller.PosX = 2 - self.Scroller.PosY = 2 - self.Scroller.Init() - - self.InfoPage = NewWifiInfoPage() - self.InfoPage.Screen = self.Screen - self.InfoPage.Name = "Wifi info" - - self.InfoPage.Init() + self.InfoPage = NewWifiInfoPage() + self.InfoPage.Screen = self.Screen + self.InfoPage.Name = "Wifi info" + self.InfoPage.Parent = self + self.InfoPage.Init() } diff --git a/Menu/GameShell/98_TinyCloud/tiny_cloud_page.go b/Menu/GameShell/98_TinyCloud/tiny_cloud_page.go index e40a614..16cd369 100644 --- a/Menu/GameShell/98_TinyCloud/tiny_cloud_page.go +++ b/Menu/GameShell/98_TinyCloud/tiny_cloud_page.go @@ -96,8 +96,8 @@ func (self *TinyCloudPage) SetCoords() { } func (self *TinyCloudPage) SetLabels() { - if self.Screen.DBusManager.IsWifiConnectedNow() { - self.IP = self.Screen.DBusManager.GetWifiIP() + if self.Screen.IsWifiConnectedNow() { + self.IP = self.Screen.GetWirelessIP() fmt.Printf("TinyCould : %s\n",self.IP) }else { self.IP = "xxx.xxx.xxx.xxx" @@ -179,7 +179,7 @@ func (self *TinyCloudPage) KeyDown( ev *event.Event ) { func (self *TinyCloudPage) Draw() { self.ClearCanvas() - if self.Screen.DBusManager.IsWifiConnectedNow() { + if self.Screen.IsWifiConnectedNow() { self.Icons["online"].NewCoord(self.Coords["online"].X, self.Coords["online"].Y) self.Icons["online"].Draw() diff --git a/go.mod b/go.mod index 5d07acf..d612b50 100644 --- a/go.mod +++ b/go.mod @@ -3,27 +3,26 @@ module github.com/clockworkpi/LauncherGoDev go 1.17 require ( - github.com/cuu/gogame v0.0.0-20190505155707-d04617ab9826 + github.com/cuu/gogame v0.0.0-20211009161157-9fc102a958ec github.com/cuu/grab v2.0.0+incompatible + github.com/cuu/wpa-connect v1.5.4 github.com/fatih/structs v1.1.0 github.com/go-ini/ini v1.63.2 github.com/godbus/dbus v4.1.0+incompatible + github.com/godbus/dbus/v5 v5.0.5 github.com/itchyny/volume-go v0.2.1 github.com/mitchellh/go-homedir v1.1.0 github.com/muka/go-bluetooth v0.0.0-20210812063148-b6c83362e27d + github.com/sirupsen/logrus v1.8.1 github.com/veandco/go-sdl2 v0.4.10 github.com/vjeantet/jodaTime v1.0.0 github.com/yookoala/realpath v1.0.0 ) require ( - github.com/go-ole/go-ole v1.2.4 // indirect - github.com/godbus/dbus/v5 v5.0.3 // indirect - github.com/konsorten/go-windows-terminal-sequences v1.0.3 // indirect - github.com/mark2b/wpa-connect v1.5.1 // indirect + github.com/go-ole/go-ole v1.2.5 // indirect github.com/moutend/go-wca v0.2.0 // indirect github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/sirupsen/logrus v1.6.0 // indirect - golang.org/x/sys v0.0.0-20201009025420-dfb3f7c4e634 // indirect + golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac // indirect ) diff --git a/go.sum b/go.sum index 538a0ac..38a4dd0 100644 --- a/go.sum +++ b/go.sum @@ -1,9 +1,9 @@ -github.com/ThomasRooney/gexpect v0.0.0-20161231170123-5482f0350944/go.mod h1:sPML5WwI6oxLRLPuuqbtoOKhtmpVDCYtwsps+I+vjIY= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cuu/gogame v0.0.0-20190505155707-d04617ab9826 h1:B+Oxj2/n+1coaS1IIZFzF++vENubxaXMSS7O2YqZCbY= -github.com/cuu/gogame v0.0.0-20190505155707-d04617ab9826/go.mod h1:gCpgs2cddW1XU/owVN8IeY6PhPOsvj2qhXFduLhSgDc= +github.com/cuu/gogame v0.0.0-20211009161157-9fc102a958ec h1:0nBshSvDcFFRNlWCfCkRte1SfhhKxsdK2SeWBHgmLVg= +github.com/cuu/gogame v0.0.0-20211009161157-9fc102a958ec/go.mod h1:1ZGiLH+shrG0St33RrS7HWw8aTUezakhQcM/uzvjUiA= github.com/cuu/grab v2.0.0+incompatible h1:iXzIujTt9fYkjw63Tlxyxw1ohvabE59jWgkzI4LUY6E= github.com/cuu/grab v2.0.0+incompatible/go.mod h1:FQIc8xU5/Uw5lfVeVv4hrrclKgc+6c0ALOYVaTS+R20= +github.com/cuu/wpa-connect v1.5.4 h1:pn9Gi34OSaYuFjrlG+hXUQ2GZHcP2hy5lqk0kSL3VXQ= +github.com/cuu/wpa-connect v1.5.4/go.mod h1:X3+tS25MlSHYD7cSXB/95CvOXcAFi3cPDWNk/VhOCvE= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -11,23 +11,20 @@ github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/go-ini/ini v1.63.2 h1:kwN3umicd2HF3Tgvap4um1ZG52/WyKT9GGdPx0CJk6Y= github.com/go-ini/ini v1.63.2/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= -github.com/go-ole/go-ole v1.2.4 h1:nNBDSCOigTSiarFpYE9J/KtEA1IOW4CNeqT9TQDqCxI= github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM= +github.com/go-ole/go-ole v1.2.5 h1:t4MGB5xEDZvXI+0rMjjsfBsD7yAgp/s9ZDkL1JndXwY= +github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/godbus/dbus v4.1.0+incompatible h1:WqqLRTsQic3apZUK9qC5sGNfXthmPXzUZ7nQPrNITa4= github.com/godbus/dbus v4.1.0+incompatible/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= -github.com/godbus/dbus/v5 v5.0.3 h1:ZqHaoEF7TBzh4jzPmqVhE/5A1z9of6orkAe5uHoAeME= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.0.5 h1:9Eg0XUhQxtkV8ykTMKtMMYY72g4NgxtRq4jgh4Ih5YM= +github.com/godbus/dbus/v5 v5.0.5/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/itchyny/volume-go v0.2.1 h1:NiVdnIp3dyCBnygQoBLV9ecAk7Vk4KHfiZFJGvCCIm0= github.com/itchyny/volume-go v0.2.1/go.mod h1:YdvjyTIcPXyGcckaIHTfga+ItdhGZQoWhzOORajlkkE= -github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= -github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/mark2b/wpa-connect v1.5.1 h1:12DNKNSpO1qIonJF+B3/RwXZ9KAKfd0rXI6ZzBFcW/o= -github.com/mark2b/wpa-connect v1.5.1/go.mod h1:+6ScBO6AMHe+Q78CyfYumz0/XPBvMS1wAYeStDEUjRo= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/moutend/go-wca v0.2.0 h1:AEzY6ltC5zPCldKyMYdyXv3TaLqwxSW1TIradqNqRpU= @@ -42,8 +39,9 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= +github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= +github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= @@ -71,11 +69,12 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1 h1:sIky/MyNRSHTrdxfsiUSS4WIAMvInbeXljJz+jDjeYE= golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201009025420-dfb3f7c4e634 h1:bNEHhJCnrwMKNMmOx3yAynp5vs5/gRy+XWFtZFu7NBM= -golang.org/x/sys v0.0.0-20201009025420-dfb3f7c4e634/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac h1:oN6lz7iLW/YC7un8pq+9bOLyXrprv2+DKfkJY+2LJJw= +golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200925191224-5d1fdd8fa346/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= diff --git a/sysgo/UI/download_process_page.go b/sysgo/UI/download_process_page.go index e73e4b2..9ac17ff 100644 --- a/sysgo/UI/download_process_page.go +++ b/sysgo/UI/download_process_page.go @@ -199,7 +199,7 @@ func (self *DownloadProcessPage) DoneAndReturnUpLevel() { func (self *DownloadProcessPage) StartDownload(_url,dst_dir string) { - if self.Screen.DBusManager.IsWifiConnectedNow() == false { + if self.Screen.IsWifiConnectedNow() == false { return } @@ -245,7 +245,7 @@ func (self *DownloadProcessPage) Draw() { self.ClearCanvas() - if self.Screen.DBusManager.IsWifiConnectedNow() == false { + if self.Screen.IsWifiConnectedNow() == false { self.Icons["needwifi_bg"].NewCoord(self.Width/2,self.Height/2) self.Icons["needwifi_bg"].Draw() return diff --git a/sysgo/UI/label.go b/sysgo/UI/label.go index e2a1823..242da53 100644 --- a/sysgo/UI/label.go +++ b/sysgo/UI/label.go @@ -109,7 +109,9 @@ func (self *Label) DrawCenter(bold bool) { // default bold is false func (self *Label) Draw() { font.SetBold(self.FontObj,self.Bold) // avoing same font tangling set_bold to others - + if len(self.Text) == 0 { + return + } my_text := font.Render(self.FontObj,self.Text, true, self.Color, nil) rect_ := rect.Rect(self.PosX,self.PosY,self.Width,self.Height) diff --git a/sysgo/UI/main_screen.go b/sysgo/UI/main_screen.go index ec86757..6b023dd 100644 --- a/sysgo/UI/main_screen.go +++ b/sysgo/UI/main_screen.go @@ -1,7 +1,7 @@ package UI import ( - //"fmt" + "fmt" "io/ioutil" "strings" "log" @@ -21,9 +21,7 @@ import ( "github.com/cuu/gogame/event" - "github.com/clockworkpi/LauncherGoDev/sysgo/DBUS" - - + "github.com/clockworkpi/LauncherGoDev/sysgo" ) //eg: MainScreen type ScreenInterface interface { @@ -44,6 +42,7 @@ type ScreenInterface interface { RunEXE( cmdpath string) SetCurPage( pg PageInterface) SwapAndShow() + IsWifiConnectedNow() } type PluginConfig struct { @@ -175,7 +174,7 @@ type MainScreen struct { MsgBoxFont *ttf.Font IconFont *ttf.Font SkinManager *SkinManager - DBusManager *DBUS.DBus + CounterScreen *CounterScreen Closed bool @@ -210,8 +209,6 @@ func (self *MainScreen) Init() { self.SkinManager = NewSkinManager() self.SkinManager.Init() - self.DBusManager = DBUS.DBusHandler - self.CounterScreen = NewCounterScreen() self.CounterScreen.HWND = self.HWND self.CounterScreen.Init() @@ -354,6 +351,27 @@ func (self *MainScreen) IsEmulatorPackage(dirname string ) bool { return ret } +func (self *MainScreen) IsWifiConnectedNow() bool { + + cli := fmt.Sprintf( "ip -4 addr show %s | grep -oP '(?<=inet\\s)\\d+(\\.\\d+){3}'",sysgo.WifiDev) + out := System(cli) + if len(out)<6 { + return false + } + return true +} + +func (self *MainScreen) GetWirelessIP() string { + + cli := fmt.Sprintf( "ip -4 addr show %s | grep -oP '(?<=inet\\s)\\d+(\\.\\d+){3}'",sysgo.WifiDev) + out := System(cli) + if len(out) > 5 { + out = strings.TrimSuffix(out,"\n") + } + + return out +} + func (self *MainScreen) RunEXE( cmdpath string) { self.DrawRun() self.SwapAndShow() diff --git a/sysgo/UI/page.go b/sysgo/UI/page.go index 3beb35f..d192275 100644 --- a/sysgo/UI/page.go +++ b/sysgo/UI/page.go @@ -826,7 +826,7 @@ func (self *Page) ReturnToUpLevelPage() { if pop_page != nil { page_ := pop_page.(PageInterface) page_.Draw() - self.Screen.SetCurPage(page_) + self.Screen.CurrentPage = page_ self.Screen.CurrentPage.OnReturnBackCb() }else { diff --git a/sysgo/UI/title_bar.go b/sysgo/UI/title_bar.go index 494f1ae..c3aad16 100644 --- a/sysgo/UI/title_bar.go +++ b/sysgo/UI/title_bar.go @@ -194,10 +194,13 @@ func (t *TitleBar) GetWifiStrength() int { out := System(cli) if(len(out) > 2) { if strings.Contains(out,"No") == false { + out = strings.TrimSuffix(out, "\n") stren,err := strconv.ParseInt(out, 10, 0) if err == nil { qua = 2 * (int(stren) + 100) - } + }else { + fmt.Println(err) + } } } @@ -513,6 +516,7 @@ func (self *TitleBar) Draw(title string) { self.Icons["wifistatus"].Draw() }else { self.Icons["wifistatus"].SetIconIndex(0) + self.Icons["wifistatus"].NewCoord(start_x+self.IconWidth+5, self.IconHeight/2+(self.BarHeight-self.IconHeight)/2 ) self.Icons["wifistatus"].Draw() } }else { diff --git a/sysgo/config.go b/sysgo/config.go index c5192df..6cdc23d 100644 --- a/sysgo/config.go +++ b/sysgo/config.go @@ -9,8 +9,8 @@ type PowerLevel struct { var PowerLevels map[string]*PowerLevel var ( - //CurKeySet = "PC" // PC or GameShell - CurKeySet = "GameShell" + CurKeySet = "PC" // PC or GameShell + //CurKeySet = "GameShell" DontLeave = false BackLight = "/proc/driver/backlight" Battery = "/sys/class/power_supply/axp20x-battery/uevent" @@ -25,13 +25,13 @@ var ( //load from dot files CurPowerLevel= "performance" Lang = "English" - WifiDev = "wlan0" + //WifiDev = "wlan0" + WifiDev = "wlp5s0" ) - func init() { if PowerLevels == nil { PowerLevels = make(map[string]*PowerLevel)