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
This commit is contained in:
cuu 2021-10-10 00:20:47 +08:00
parent 0461450ea9
commit d463dd10ec
14 changed files with 274 additions and 195 deletions

View File

@ -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")

View File

@ -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()

View File

@ -2,7 +2,7 @@ package Wifi
import (
"fmt"
"strconv"
//"strconv"
//"strings"
"github.com/veandco/go-sdl2/sdl"
@ -74,7 +74,7 @@ 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
@ -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()) )
@ -137,6 +135,16 @@ func (self *NetItem) Init(is_active bool) {
essid_ = self.Essid
}
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
@ -144,7 +152,11 @@ func (self *NetItem) Init(is_active bool) {
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
}
@ -244,4 +253,5 @@ func (self *NetItem) Draw() {
self.PosX,self.PosY+self.Height-1,
self.PosX+self.Width,self.PosY+self.Height-1,
1)
}

View File

@ -10,8 +10,12 @@ import (
"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 ) {

View File

@ -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"
@ -78,7 +78,7 @@ func (self *WifiDisconnectConfirmPage) KeyDown(ev *event.Event ) {
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
@ -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
}
@ -443,23 +438,26 @@ func (self *WifiList) HideBox() {
}
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 {
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)
fmt.Println(bss.SSID, " ", bss.BSSID," ",bss.Signal, bss.KeyMgmt)
ni := NewNetItem()
ni.Parent = self
ni.PosX = start_x
@ -468,6 +466,12 @@ func (self *WifiList) GenNetworkList() {
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)
@ -482,9 +486,15 @@ 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,25 +552,51 @@ func (self *WifiList) UpdateNetList(state int,info []string ,force_check bool,fi
}
func (self *WifiList) UpdateListActive() {
for i:=0;i<len(self.MyList);i++ {
if self.MyList[i].Bssid == self.CurBssid {
self.MyList[i].IsActive = true
}else {
self.MyList[i].IsActive = false
}
}
}
func (self *WifiList) ConfigWireless(password string) {
ssid := self.MyList[self.PsIndex].Essid
fmt.Println(ssid)
fmt.Println(password)
self.ShowBox("Connecting...")
if conn, err := wifi.ConnectManager.Connect(ssid, password, gotime.Second * 20); err == nil {
fmt.Println("Connected", conn.NetInterface, conn.SSID, conn.IP4.String(), conn.IP6.String())
self.Connecting = true
if conn, err := GsConnectManager.Connect(ssid, password, gotime.Second * 20); err == nil {
fmt.Println("Connected!", conn.NetInterface, conn.SSID, conn.IP4.String(), conn.IP6.String())
self.CurEssid = self.MyList[self.PsIndex].Essid
self.CurBssid = self.MyList[self.PsIndex].Bssid
self.MyList[self.PsIndex].Password = password
self.CurIP = conn.IP4.String();
dhcp := []string{"dhclient" ,sysgo.WifiDev}
execCmd(dhcp)
GsConnectManager.ReadNetAddress(gotime.Second*3)
self.CurIP = GsConnectManager.IPv4().String()
self.ShowBox("Connected")
} else {
fmt.Println(err)
err_str := err.Error()
s := strings.Split(err_str,":")
if len(s)> 1 && s[1] == "15" {
self.ShowBox("Wifi auth error")
}else {
self.ShowBox(err_str)
}
self.CurEssid = ""
self.CurBssid = ""
}
self.Connecting = false
//self.UpdateStatus()
self.UpdateListActive()
}
@ -570,16 +604,13 @@ 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 {
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,8 +721,8 @@ func (self *WifiList) KeyDown( ev *event.Event ) {
if len(self.MyList) == 0 {
return
}
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()
@ -700,6 +730,16 @@ func (self *WifiList) KeyDown( ev *event.Event ) {
}
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,8 +778,6 @@ 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
@ -749,7 +787,7 @@ func (self *WifiList) Init() {
self.InfoPage = NewWifiInfoPage()
self.InfoPage.Screen = self.Screen
self.InfoPage.Name = "Wifi info"
self.InfoPage.Parent = self
self.InfoPage.Init()
}

View File

@ -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()

13
go.mod
View File

@ -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
)

29
go.sum
View File

@ -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=

View File

@ -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

View File

@ -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)

View File

@ -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()

View File

@ -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 {

View File

@ -194,9 +194,12 @@ 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 {

View File

@ -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)