From 071a301edf5b54a48c4ab40513d2b55e4ca88fe2 Mon Sep 17 00:00:00 2001 From: Michael Hall Date: Sun, 24 Aug 2014 13:34:38 +0100 Subject: [PATCH 1/2] Add getWifiStatus function to allow checking for live wifi connection before trying OTA Update --- frontend/ui/networkmgr.lua | 9 +++++++++ frontend/ui/otamanager.lua | 8 ++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/frontend/ui/networkmgr.lua b/frontend/ui/networkmgr.lua index 7b6e3e742..000c52b4b 100644 --- a/frontend/ui/networkmgr.lua +++ b/frontend/ui/networkmgr.lua @@ -70,4 +70,13 @@ function NetworkMgr:promptWifiOff() }) end +function NetworkMgr:getWifiStatus() + local wifi_status = os.execute("ping -c3 8.8.8.8") + if wifi_status == 2 then + return false + else + return true + end +end + return NetworkMgr diff --git a/frontend/ui/otamanager.lua b/frontend/ui/otamanager.lua index 02a43243b..e70c12d6c 100644 --- a/frontend/ui/otamanager.lua +++ b/frontend/ui/otamanager.lua @@ -65,10 +65,6 @@ function OTAManager:checkUpdate() url = ota_zsync_file, sink = ltn12.sink.file(io.open(local_zsync_file, "w"))} -- prompt users to turn on Wifi if network is unreachable - if h == nil then - NetworkMgr:promptWifiOn() - return - end if c ~= 200 then return end -- parse OTA package version local ota_package = nil @@ -143,6 +139,10 @@ function OTAManager:getOTAMenuTable() { text = _("Check update"), callback = function() + if NetworkMgr:getWifiStatus() == false then + NetworkMgr:promptWifiOn() + return + end local ota_version = OTAManager:checkUpdate() if ota_version == 0 then UIManager:show(InfoMessage:new{ From 7ea90b2dc9c63b0ff7020a1fa7a17b227f7691f3 Mon Sep 17 00:00:00 2001 From: Michael Hall Date: Mon, 25 Aug 2014 18:06:15 +0100 Subject: [PATCH 2/2] Change to prevent OTA Server check before wifi enabled --- frontend/ui/networkmgr.lua | 7 ++--- frontend/ui/otamanager.lua | 56 +++++++++++++++++++------------------- 2 files changed, 31 insertions(+), 32 deletions(-) diff --git a/frontend/ui/networkmgr.lua b/frontend/ui/networkmgr.lua index 000c52b4b..9bd022303 100644 --- a/frontend/ui/networkmgr.lua +++ b/frontend/ui/networkmgr.lua @@ -71,11 +71,10 @@ function NetworkMgr:promptWifiOff() end function NetworkMgr:getWifiStatus() - local wifi_status = os.execute("ping -c3 8.8.8.8") - if wifi_status == 2 then - return false - else + if os.execute("ping -c3 8.8.8.8") == 0 then return true + else + return false end end diff --git a/frontend/ui/otamanager.lua b/frontend/ui/otamanager.lua index e70c12d6c..4689ea59b 100644 --- a/frontend/ui/otamanager.lua +++ b/frontend/ui/otamanager.lua @@ -141,34 +141,34 @@ function OTAManager:getOTAMenuTable() callback = function() if NetworkMgr:getWifiStatus() == false then NetworkMgr:promptWifiOn() - return - end - local ota_version = OTAManager:checkUpdate() - if ota_version == 0 then - UIManager:show(InfoMessage:new{ - text = _("Your koreader is updated."), - }) - elseif ota_version == nil then - UIManager:show(InfoMessage:new{ - text = _("OTA server is not available."), - }) - elseif ota_version then - UIManager:show(ConfirmBox:new{ - text = _("Do you want to update to version ")..ota_version.."?", - ok_callback = function() - UIManager:show(InfoMessage:new{ - text = _("Downloading may take several minutes..."), - timeout = 3, - }) - UIManager:scheduleIn(1, function() - if OTAManager:zsync() == 0 then - UIManager:show(InfoMessage:new{ - text = _("Koreader will be updated on next restart."), - }) - end - end) - end - }) + else + local ota_version = OTAManager:checkUpdate() + if ota_version == 0 then + UIManager:show(InfoMessage:new{ + text = _("Your koreader is updated."), + }) + elseif ota_version == nil then + UIManager:show(InfoMessage:new{ + text = _("OTA server is not available."), + }) + elseif ota_version then + UIManager:show(ConfirmBox:new{ + text = _("Do you want to update to version ")..ota_version.."?", + ok_callback = function() + UIManager:show(InfoMessage:new{ + text = _("Downloading may take several minutes..."), + timeout = 3, + }) + UIManager:scheduleIn(1, function() + if OTAManager:zsync() == 0 then + UIManager:show(InfoMessage:new{ + text = _("Koreader will be updated on next restart."), + }) + end + end) + end + }) + end end end },