diff --git a/Menu/GameShell/10_Settings/Settings.go b/Menu/GameShell/10_Settings/Settings.go index 43878bb..44ff59e 100644 --- a/Menu/GameShell/10_Settings/Settings.go +++ b/Menu/GameShell/10_Settings/Settings.go @@ -28,7 +28,8 @@ import ( "github.com/clockworkpi/LauncherGoDev/Menu/GameShell/10_Settings/PowerOFF" "github.com/clockworkpi/LauncherGoDev/Menu/GameShell/10_Settings/PowerOptions" "github.com/clockworkpi/LauncherGoDev/Menu/GameShell/10_Settings/TimeZone" - //"github.com/clockworkpi/LauncherGoDev/Menu/GameShell/10_Settings/Lima" + "github.com/clockworkpi/LauncherGoDev/Menu/GameShell/10_Settings/LauncherPy" + "github.com/clockworkpi/LauncherGoDev/Menu/GameShell/10_Settings/Lima" "github.com/clockworkpi/LauncherGoDev/Menu/GameShell/10_Settings/GateWay" @@ -113,8 +114,8 @@ func (self *SettingsPage) GenList() []*UI.UIPlugin { &UI.UIPlugin{UI.PluginPackage, "", "About", "About", &About.APIOBJ}, &UI.UIPlugin{UI.PluginPackage, "", "PowerOFF", "Power off", &PowerOFF.APIOBJ}, &UI.UIPlugin{UI.PluginPackage, "", "ButtonsLayout", "Buttons Layout", &ButtonsLayout.APIOBJ}, - // &UI.UIPlugin{UI.PluginPackage,"", "LauncherPy", "Switch to Launcher", &LauncherPy.APIOBJ}, - //&UI.UIPlugin{UI.PluginPackage,"", "Lima", "GPU Driver Switch", &Lima.APIOBJ}, + &UI.UIPlugin{UI.PluginPackage,"", "LauncherPy", "Switch to Launcher", &LauncherPy.APIOBJ}, + &UI.UIPlugin{UI.PluginPackage,"", "Lima", "GPU Driver Switch", &Lima.APIOBJ}, &UI.UIPlugin{UI.PluginPackage, "", "GateWay", "Network gateway switch", &GateWay.APIOBJ}, } diff --git a/Menu/GameShell/10_Settings/Wifi/wifi.go b/Menu/GameShell/10_Settings/Wifi/wifi.go index 9046823..4b26f2d 100644 --- a/Menu/GameShell/10_Settings/Wifi/wifi.go +++ b/Menu/GameShell/10_Settings/Wifi/wifi.go @@ -4,14 +4,17 @@ package Wifi import ( "fmt" - //"strconv" + "strconv" "strings" //"os" // "os/exec" // gotime "time" - + "log" //"github.com/godbus/dbus" - + + "database/sql" + _ "github.com/mattn/go-sqlite3" + "github.com/veandco/go-sdl2/ttf" "github.com/clockworkpi/LauncherGoDev/sysgo" @@ -521,9 +524,67 @@ func (self *WifiList) WifiScanStarted() { } func (self *WifiList) SaveNetworkList() { + +} + +func (self *WifiList) SaveWifiPassword(essid,password string) { + + db, err := sql.Open("sqlite3", sysgo.SQLDB) + if err != nil { + log.Fatal(err) + return + } + defer db.Close() + + stmt, err := db.Prepare("select count(*) from wifi where essid = ?") + if err != nil { + log.Fatal(err) + } + defer stmt.Close() + var count string + err = stmt.QueryRow(essid).Scan(&count) + if err != nil { + log.Fatal(err) + } + + cnt,_ := strconv.Atoi(count) + if cnt > 0 { + _,err = db.Exec("update wifi set pass= :pass where essid = :essid",sql.Named("pass",password),sql.Named("essid",essid)) + if err != nil { + log.Fatal(err) + } + }else { + _,err = db.Exec("insert into wifi(essid,pass) values(:essid,:pass)",sql.Named("essid",essid),sql.Named("pass",password)) + if err != nil { + log.Fatal(err) + } + } } +func (self *WifiList) LoadWifiPassword(essid string) string { + db, err := sql.Open("sqlite3", sysgo.SQLDB) + if err != nil { + log.Fatal(err) + return "" + } + defer db.Close() + + stmt, err := db.Prepare("select pass from wifi where essid = ?") + if err != nil { + log.Fatal(err) + } + defer stmt.Close() + + password := "" + + err = stmt.QueryRow(essid).Scan(&password) + if err != nil { + log.Fatal(err) + } + + return password +} //---------------------------------------------------------------------------------- func (self *WifiList) UpdateNetList(state int, info []string, force_check bool, firstrun bool) { //force_check default ==false, firstrun default == false @@ -560,6 +621,7 @@ func (self *WifiList) ConfigWireless(password string) { self.CurEssid = self.MyList[self.PsIndex].Essid self.CurBssid = self.MyList[self.PsIndex].Bssid self.MyList[self.PsIndex].Password = password + self.SaveWifiPassword(ssid,password) self.ShowBox("Connected") } else { self.ShowBox("Wifi connect error") @@ -673,7 +735,7 @@ func (self *WifiList) KeyDown(ev *event.Event) { self.Screen.PushCurPage() self.Screen.SetCurPage(APIOBJ.PasswordPage) - thepass := self.MyList[self.PsIndex].Password + thepass := self.LoadWifiPassword(self.MyList[self.PsIndex].Essid) fmt.Println("APIOBJ.PasswordPage.SetPassword ", thepass, len(thepass)) APIOBJ.PasswordPage.SetPassword(thepass) diff --git a/Menu/GameShell/21_Warehouse/ware_house_page.go b/Menu/GameShell/21_Warehouse/ware_house_page.go index acc060a..4c144d4 100644 --- a/Menu/GameShell/21_Warehouse/ware_house_page.go +++ b/Menu/GameShell/21_Warehouse/ware_house_page.go @@ -61,7 +61,6 @@ type WareHouse struct { resp *grab.Response req *grab.Request - RefreshTicker *gotime.Ticker ScrolledCnt int } @@ -75,7 +74,7 @@ func NewWareHouse() *WareHouse { p.FootMsg = [5]string{"Nav","Update","Up","Back","Select"} - p.WareHouseDB = "foo.db" + p.WareHouseDB = sysgo.SQLDB p.BGwidth = 320 p.BGheight = 240-24-20 @@ -115,10 +114,12 @@ func (self *WareHouse) GetAria2DownloadingPercent(url string) int { } func (self *WareHouse) UpdateProcessInterval(ms int) { dirty := false + RefreshTicker := gotime.NewTicker(gotime.Duration(ms)*gotime.Millisecond) + defer RefreshTicker.Stop() L: for { select { - case <- self.RefreshTicker.C: + case <- RefreshTicker.C: for _,i := range self.MyList { x := i.(*WareHouseListItem) if x.Type == "launcher" || x.Type == "pico8" || x.Type == "tic80" { @@ -405,11 +406,6 @@ func (self *WareHouse) Init() { self.Downloader = grab.NewClient() self.Downloading = make(chan bool,1) - self.RefreshTicker = gotime.NewTicker(500 * gotime.Millisecond) - //self.RefreshTicker.Stop() - self.SetDownloading(true) - go self.UpdateProcessInterval(500) - } } @@ -771,10 +767,6 @@ func (self *WareHouse) OnKbdReturnBackCb() { func (self *WareHouse) OnExitCb() { - if self.RefreshTicker != nil { - self.RefreshTicker.Stop() - } - self.SetDownloading(false) self.rpcc.Close() @@ -790,7 +782,8 @@ func (self *WareHouse) OnLoadCb() { self.FootMsg[1] = "Preview" } - self.RefreshTicker = gotime.NewTicker(500 * gotime.Millisecond) + self.SetDownloading(true) + go self.UpdateProcessInterval(500) self.SyncList() } @@ -895,7 +888,7 @@ func (self *WareHouse) KeyDown(ev *event.Event) { self.ReturnToUpLevelPage() self.Screen.Draw() self.Screen.SwapAndShow() - self.RefreshTicker.Stop() + self.SetDownloading(false)//shutdown UpdateProcessInterval } } diff --git a/appinstaller/appinstaller.go b/appinstaller/appinstaller.go index af99452..6b6173d 100644 --- a/appinstaller/appinstaller.go +++ b/appinstaller/appinstaller.go @@ -71,6 +71,20 @@ func InitSql() { log.Printf("%q: %s\n",err,sqlStmt) return } + + sqlStmt = ` + CREATE TABLE IF NOT EXISTS wifi ( + id integer PRIMARY KEY, + essid text NOT NULL, + pass text NOT NULL + ); + ` + _,err = db.Exec(sqlStmt) + if err != nil { + log.Printf("%q: %s\n",err,sqlStmt) + return + } + } func main() { diff --git a/main.go b/main.go index 0129252..d69b3b1 100644 --- a/main.go +++ b/main.go @@ -10,7 +10,7 @@ import ( "runtime" "strconv" "strings" - "syscall" + //"syscall" //"encoding/json" "github.com/veandco/go-sdl2/sdl" gotime "time" diff --git a/sysgo/UI/counter_screen.go b/sysgo/UI/counter_screen.go index 63f4434..0cf659a 100644 --- a/sysgo/UI/counter_screen.go +++ b/sysgo/UI/counter_screen.go @@ -31,7 +31,6 @@ type CounterScreen struct { inter_counter int // - TheTicker *gotime.Ticker TickerStoped chan bool } @@ -52,15 +51,16 @@ func NewCounterScreen() *CounterScreen { } func (self *CounterScreen) Interval() { - + TheTicker := gotime.NewTicker(500 * gotime.Millisecond) + defer TheTicker.Stop() + L: for { select { - case <-self.TheTicker.C: + case <-TheTicker.C: self.inter_counter += 1 if self.Number == 0 { self.Counting = false - self.TheTicker.Stop() fmt.Println("do the real shutdown") if sysgo.CurKeySet != "PC" { @@ -71,7 +71,7 @@ func (self *CounterScreen) Interval() { } - break + break L } if self.inter_counter >= 2 { @@ -88,7 +88,7 @@ func (self *CounterScreen) Interval() { } case <-self.TickerStoped: - break + break L } } @@ -104,8 +104,6 @@ func (self *CounterScreen) StartCounter() { self.Counting = true - self.TheTicker = gotime.NewTicker(500 * gotime.Millisecond) - go self.Interval() } @@ -119,7 +117,6 @@ func (self *CounterScreen) StopCounter() { self.Number = 0 self.inter_counter = 0 - self.TheTicker.Stop() self.TickerStoped <- true } diff --git a/sysgo/config.go b/sysgo/config.go index 09d6156..b16d7be 100644 --- a/sysgo/config.go +++ b/sysgo/config.go @@ -32,8 +32,9 @@ var ( CurPowerLevel = "performance" Lang = "English" WifiDev = "wlan0" - + Aria2Url = "ws://localhost:6800/jsonrpc" + SQLDB = "foo.db" //Sqlite3 ) func init() {