Update network manager to utilize gonetworkmanager for an easier life...
This commit is contained in:
@@ -8,11 +8,11 @@ require github.com/veandco/go-sdl2 v0.4.40
|
|||||||
|
|
||||||
require github.com/go-gl/mathgl v1.2.0
|
require github.com/go-gl/mathgl v1.2.0
|
||||||
|
|
||||||
require (
|
require github.com/go-gl/gl v0.0.0-20231021071112-07e5d0ea2e71
|
||||||
github.com/go-gl/gl v0.0.0-20231021071112-07e5d0ea2e71
|
|
||||||
github.com/godbus/dbus/v5 v5.1.0
|
require github.com/Wifx/gonetworkmanager/v2 v2.2.0
|
||||||
github.com/google/uuid v1.6.0
|
|
||||||
)
|
require github.com/godbus/dbus/v5 v5.1.0 // indirect
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/jinzhu/inflection v1.0.0 // indirect
|
github.com/jinzhu/inflection v1.0.0 // indirect
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
|
github.com/Wifx/gonetworkmanager/v2 v2.2.0 h1:kPstgsQtY8CmDOOFZd81ytM9Gi3f6ImzPCKF7nNhQ2U=
|
||||||
|
github.com/Wifx/gonetworkmanager/v2 v2.2.0/go.mod h1:fMDb//SHsKWxyDUAwXvCqurV3npbIyyaQWenGpZ/uXg=
|
||||||
github.com/go-gl/gl v0.0.0-20231021071112-07e5d0ea2e71 h1:5BVwOaUSBTlVZowGO6VZGw2H/zl9nrd3eCZfYV+NfQA=
|
github.com/go-gl/gl v0.0.0-20231021071112-07e5d0ea2e71 h1:5BVwOaUSBTlVZowGO6VZGw2H/zl9nrd3eCZfYV+NfQA=
|
||||||
github.com/go-gl/gl v0.0.0-20231021071112-07e5d0ea2e71/go.mod h1:9YTyiznxEY1fVinfM7RvRcjRHbw2xLBJ3AAGIT0I4Nw=
|
github.com/go-gl/gl v0.0.0-20231021071112-07e5d0ea2e71/go.mod h1:9YTyiznxEY1fVinfM7RvRcjRHbw2xLBJ3AAGIT0I4Nw=
|
||||||
github.com/go-gl/mathgl v1.2.0 h1:v2eOj/y1B2afDxF6URV1qCYmo1KW08lAMtTbOn3KXCY=
|
github.com/go-gl/mathgl v1.2.0 h1:v2eOj/y1B2afDxF6URV1qCYmo1KW08lAMtTbOn3KXCY=
|
||||||
github.com/go-gl/mathgl v1.2.0/go.mod h1:pf9+b5J3LFP7iZ4XXaVzZrCle0Q/vNpB/vDe5+3ulRE=
|
github.com/go-gl/mathgl v1.2.0/go.mod h1:pf9+b5J3LFP7iZ4XXaVzZrCle0Q/vNpB/vDe5+3ulRE=
|
||||||
github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk=
|
github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk=
|
||||||
github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
||||||
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
|
||||||
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
|
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
|
||||||
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
|
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
|
||||||
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
|
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
|
||||||
|
|||||||
@@ -204,25 +204,16 @@ func (app *Application) checkState() {
|
|||||||
// Check if there is an internet connection, and if not, force the WiFi page
|
// Check if there is an internet connection, and if not, force the WiFi page
|
||||||
if !networkIsUp {
|
if !networkIsUp {
|
||||||
if lastNetworkCheckTime.IsZero() || time.Since(lastNetworkCheckTime) >= time.Second {
|
if lastNetworkCheckTime.IsZero() || time.Since(lastNetworkCheckTime) >= time.Second {
|
||||||
networkManager, err := network.New()
|
|
||||||
if err != nil {
|
|
||||||
logger.Error("error obtaining a network manager %v", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
lastNetworkCheckTime = time.Now()
|
lastNetworkCheckTime = time.Now()
|
||||||
status, err := networkManager.CheckInternetConnection()
|
|
||||||
if err != nil {
|
if !network.HasInternet() {
|
||||||
logger.Error("error checking for internet connection %v", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if status.StatusCode != network.StatusWifiConnectedInternetUp &&
|
|
||||||
status.StatusCode != network.StatusEthernetConnectedInternetUp {
|
|
||||||
if app.state != NEEDS_INTERNET {
|
if app.state != NEEDS_INTERNET {
|
||||||
app.PageRouter.NavigateTo(page.WIFI)
|
app.PageRouter.NavigateTo(page.WIFI)
|
||||||
app.state = NEEDS_INTERNET
|
app.state = NEEDS_INTERNET
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
networkIsUp = true // internet confirmed, don't check again
|
networkIsUp = true // internet confirmed, don't check again
|
||||||
} else {
|
} else {
|
||||||
return // throttled, and we don't yet know if network is up — can't proceed
|
return // throttled, and we don't yet know if network is up — can't proceed
|
||||||
|
|||||||
+417
-520
File diff suppressed because it is too large
Load Diff
@@ -7,6 +7,7 @@ import (
|
|||||||
"github.com/go-gl/gl/v3.3-core/gl"
|
"github.com/go-gl/gl/v3.3-core/gl"
|
||||||
"github.com/go-gl/mathgl/mgl32"
|
"github.com/go-gl/mathgl/mgl32"
|
||||||
"github.com/veandco/go-sdl2/sdl"
|
"github.com/veandco/go-sdl2/sdl"
|
||||||
|
"rhemawavetech.com/rhemawave/internal/logger"
|
||||||
"rhemawavetech.com/rhemawave/internal/shaderManager"
|
"rhemawavetech.com/rhemawave/internal/shaderManager"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -184,3 +185,54 @@ func (p *Base) RenderSolidColorQuad(shader *shaderManager.Shader, position, size
|
|||||||
func (p *Base) HandleEvent(event sdl.Event) error { return nil }
|
func (p *Base) HandleEvent(event sdl.Event) error { return nil }
|
||||||
func (p *Base) Update(dt float32) error { return nil }
|
func (p *Base) Update(dt float32) error { return nil }
|
||||||
func (p *Base) Render() error { return nil }
|
func (p *Base) Render() error { return nil }
|
||||||
|
|
||||||
|
// --- Helper Functions ---
|
||||||
|
// keycodeToChar converts an SDL keycode to a rune, respecting SHIFT state.
|
||||||
|
// Returns 0 for non-printable keys.
|
||||||
|
func keycodeToChar(sym sdl.Keycode, mod uint16) rune {
|
||||||
|
shifted := mod&sdl.KMOD_SHIFT != 0
|
||||||
|
|
||||||
|
// Letters
|
||||||
|
if sym >= sdl.K_a && sym <= sdl.K_z {
|
||||||
|
ch := rune(sym)
|
||||||
|
if shifted {
|
||||||
|
ch -= 'a' - 'A'
|
||||||
|
}
|
||||||
|
logger.Info("Wifi Password entered: %v", ch)
|
||||||
|
return ch
|
||||||
|
}
|
||||||
|
|
||||||
|
// Digits and their shifted symbols
|
||||||
|
if sym >= sdl.K_0 && sym <= sdl.K_9 {
|
||||||
|
if shifted {
|
||||||
|
shiftDigits := []rune{')', '!', '@', '#', '$', '%', '^', '&', '*', '('}
|
||||||
|
return shiftDigits[sym-sdl.K_0]
|
||||||
|
}
|
||||||
|
return rune(sym)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Common punctuation / symbols
|
||||||
|
type charPair struct{ normal, shifted rune }
|
||||||
|
punctuation := map[sdl.Keycode]charPair{
|
||||||
|
sdl.K_SPACE: {' ', ' '},
|
||||||
|
sdl.K_MINUS: {'-', '_'},
|
||||||
|
sdl.K_EQUALS: {'=', '+'},
|
||||||
|
sdl.K_LEFTBRACKET: {'[', '{'},
|
||||||
|
sdl.K_RIGHTBRACKET: {']', '}'},
|
||||||
|
sdl.K_BACKSLASH: {'\\', '|'},
|
||||||
|
sdl.K_SEMICOLON: {';', ':'},
|
||||||
|
sdl.K_QUOTE: {'\'', '"'},
|
||||||
|
sdl.K_BACKQUOTE: {'`', '~'},
|
||||||
|
sdl.K_COMMA: {',', '<'},
|
||||||
|
sdl.K_PERIOD: {'.', '>'},
|
||||||
|
sdl.K_SLASH: {'/', '?'},
|
||||||
|
}
|
||||||
|
if pair, ok := punctuation[sym]; ok {
|
||||||
|
if shifted {
|
||||||
|
return pair.shifted
|
||||||
|
}
|
||||||
|
return pair.normal
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|||||||
+416
-588
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user