diff --git a/frontend/device/cervantes/device.lua b/frontend/device/cervantes/device.lua index 2cff9aa6d..243260c2c 100644 --- a/frontend/device/cervantes/device.lua +++ b/frontend/device/cervantes/device.lua @@ -170,6 +170,7 @@ function Cervantes:initNetworkManager(NetworkMgr) os.execute("./release-ip.sh") end function NetworkMgr:restoreWifiAsync() + os.execute("./restore-wifi-async.sh") end function NetworkMgr:isWifiOn() return 1 == isConnected() diff --git a/frontend/ui/network/manager.lua b/frontend/ui/network/manager.lua index 30da119cc..0fd99777f 100644 --- a/frontend/ui/network/manager.lua +++ b/frontend/ui/network/manager.lua @@ -187,7 +187,7 @@ function NetworkMgr:getRestoreMenuTable() return { text = _("Automatically restore Wi-Fi connection after resume"), checked_func = function() return G_reader_settings:nilOrTrue("auto_restore_wifi") end, - enabled_func = function() return Device:isKobo() end, + enabled_func = function() return Device:isKobo() or Device:isCervantes() end, callback = function() G_reader_settings:flipNilOrTrue("auto_restore_wifi") end, } end diff --git a/platform/cervantes/restore-wifi-async.sh b/platform/cervantes/restore-wifi-async.sh new file mode 100755 index 000000000..e3fa99d67 --- /dev/null +++ b/platform/cervantes/restore-wifi-async.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +RunWpaCli() { + ./luajit < /dev/null", "w") + local idx = 0 + for ssid, network in pairs(settings.data) do + cli:write("add_network\n") + cli:write("set_network " .. tostring(idx) .. " ssid \"" .. ssid .. "\"\n") + cli:write("set_network " .. tostring(idx) .. " psk \"" .. network["password"] .. "\"\n") + cli:write("enable_network " .. tostring(idx) .. "\n") + idx = idx + 1 + end + cli:close() +EOF +} + +RestoreWifi() { + echo "[$(date)] restore-wifi-async.sh: Restarting WiFi" + ./enable-wifi.sh + RunWpaCli + ./obtain-ip.sh + echo "[$(date)] restore-wifi-async.sh: Restarted WiFi" +} + +RestoreWifi &