Restore WIFI state when koreader starts.

pull/2249/head
Zijie He 8 years ago
parent 0ba2417e24
commit 9b66bf1149

@ -10,9 +10,15 @@ local _ = require("gettext")
local NetworkMgr = {}
function NetworkMgr:init()
function NetworkMgr:readNWSettings()
self.nw_settings = LuaSettings:open(DataStorage:getSettingsDir().."/network.lua")
end
function NetworkMgr:init()
self.wifi_was_on = G_reader_settings:isTrue("wifi_was_on")
if self.wifi_was_on and G_reader_settings:nilOrTrue("auto_restore_wifi") then
self:restoreWifiAsync()
end
end
-- Following methods are Device specific which need to be initialized in
@ -174,7 +180,7 @@ function NetworkMgr:showNetworkMenu(complete_callback)
end
function NetworkMgr:saveNetwork(setting)
if not self.nw_settings then self:init() end
if not self.nw_settings then self:readNWSettings() end
self.nw_settings:saveSetting(setting.ssid, {
ssid = setting.ssid,
password = setting.password,
@ -184,13 +190,13 @@ function NetworkMgr:saveNetwork(setting)
end
function NetworkMgr:deleteNetwork(setting)
if not self.nw_settings then self:init() end
if not self.nw_settings then self:readNWSettings() end
self.nw_settings:delSetting(setting.ssid)
self.nw_settings:flush()
end
function NetworkMgr:getAllSavedNetworks()
if not self.nw_settings then self:init() end
if not self.nw_settings then self:readNWSettings() end
return self.nw_settings
end
@ -204,5 +210,6 @@ if NETWORK_PROXY then
end
Device:initNetworkManager(NetworkMgr)
NetworkMgr:init()
return NetworkMgr

@ -0,0 +1,69 @@
describe("network_manager module", function()
local Device
local turn_on_wifi_called
local turn_off_wifi_called
local obtain_ip_called
local release_ip_called
local function clearState()
turn_on_wifi_called = 0
turn_off_wifi_called = 0
obtain_ip_called = 0
release_ip_called = 0
end
setup(function()
require("commonrequire")
Device = require("device")
function Device:initNetworkManager(NetworkMgr)
function NetworkMgr:turnOnWifi(callback)
turn_on_wifi_called = turn_on_wifi_called + 1
if callback then
callback()
end
end
function NetworkMgr:turnOffWifi(callback)
turn_off_wifi_called = turn_off_wifi_called + 1
if callback then
callback()
end
end
function NetworkMgr:obtainIP(callback)
obtain_ip_called = obtain_ip_called + 1
if callback then
callback()
end
end
function NetworkMgr:releaseIP(callback)
release_ip_called = release_ip_called + 1
if callback then
callback()
end
end
function NetworkMgr:restoreWifiAsync()
self:turnOnWifi()
self:obtainIP()
end
end
end)
it("should restore wifi in init if wifi was on", function()
clearState()
G_reader_settings:saveSetting("wifi_was_on", true)
local network_manager = require("ui/network/manager")
assert.is.same(turn_on_wifi_called, 1)
assert.is.same(turn_off_wifi_called, 0)
assert.is.same(obtain_ip_called, 1)
assert.is.same(release_ip_called, 0)
end)
it("should not restore wifi in init if wifi was off", function()
clearState()
G_reader_settings:saveSetting("wifi_was_on", false)
local network_manager = require("ui/network/manager")
assert.is.same(turn_on_wifi_called, 0)
assert.is.same(turn_off_wifi_called, 0)
assert.is.same(obtain_ip_called, 0)
assert.is.same(release_ip_called, 0)
end)
end)
Loading…
Cancel
Save