NetworkListener: fix FM integration & properly gate behind hasWifiToggle (#11858)

reviewable/pr11863/r1
yparitcher 4 weeks ago committed by GitHub
parent 4d9c6523ad
commit 59fb906921
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -23,6 +23,7 @@ local InputDialog = require("ui/widget/inputdialog")
local LanguageSupport = require("languagesupport")
local Menu = require("ui/widget/menu")
local MultiConfirmBox = require("ui/widget/multiconfirmbox")
local NetworkListener = require("ui/network/networklistener")
local PluginLoader = require("pluginloader")
local ReadCollection = require("readcollection")
local ReaderDeviceStatus = require("apps/reader/modules/readerdevicestatus")
@ -423,6 +424,7 @@ function FileManager:init()
self:registerModule("wikipedia", ReaderWikipedia:new{ ui = self })
self:registerModule("devicestatus", ReaderDeviceStatus:new{ ui = self })
self:registerModule("devicelistener", DeviceListener:new{ ui = self })
self:registerModule("networklistener", NetworkListener:new{ ui = self })
-- koreader plugins
for _, plugin_module in ipairs(PluginLoader:loadPlugins()) do
@ -438,11 +440,6 @@ function FileManager:init()
end
end
if Device:hasWifiToggle() then
local NetworkListener = require("ui/network/networklistener")
table.insert(self, NetworkListener:new{ ui = self })
end
self:initGesListener()
self:handleEvent(Event:new("SetDimensions", self.dimen))

@ -21,6 +21,7 @@ local InfoMessage = require("ui/widget/infomessage")
local InputContainer = require("ui/widget/container/inputcontainer")
local InputDialog = require("ui/widget/inputdialog")
local LanguageSupport = require("languagesupport")
local NetworkListener = require("ui/network/networklistener")
local Notification = require("ui/widget/notification")
local PluginLoader = require("pluginloader")
local ReaderActivityIndicator = require("apps/reader/modules/readeractivityindicator")
@ -435,6 +436,12 @@ function ReaderUI:init()
view = self.view,
ui = self,
})
self:registerModule("networklistener", NetworkListener:new {
document = self.document,
view = self.view,
ui = self,
})
-- koreader plugins
for _, plugin_module in ipairs(PluginLoader:loadPlugins()) do
local ok, plugin_or_err = PluginLoader:createPluginInstance(
@ -452,15 +459,6 @@ function ReaderUI:init()
end
end
if Device:hasWifiToggle() then
local NetworkListener = require("ui/network/networklistener")
self:registerModule("networklistener", NetworkListener:new {
document = self.document,
view = self.view,
ui = self,
})
end
-- Allow others to change settings based on external factors
-- Must be called after plugins are loaded & before setting are read.
self:handleEvent(Event:new("DocSettingsLoad", self.doc_settings, self.document))

@ -16,6 +16,10 @@ local NetworkListener = EventListener:extend{
_activity_check_delay_seconds = nil,
}
if not Device:hasWifiToggle() then
return NetworkListener
end
local function enableWifi()
local toggle_im = InfoMessage:new{
text = _("Turning on Wi-Fi…"),
@ -173,11 +177,9 @@ end
function NetworkListener:onNetworkConnected()
logger.dbg("NetworkListener: onNetworkConnected")
if Device:hasWifiToggle() then
-- This is for the sake of events that don't emanate from NetworkMgr itself (e.g., the Emu)...
NetworkMgr:setWifiState(true)
NetworkMgr:setConnectionState(true)
end
-- This is for the sake of events that don't emanate from NetworkMgr itself (e.g., the Emu)...
NetworkMgr:setWifiState(true)
NetworkMgr:setConnectionState(true)
if not G_reader_settings:isTrue("auto_disable_wifi") then
return
@ -190,10 +192,8 @@ end
function NetworkListener:onNetworkDisconnected()
logger.dbg("NetworkListener: onNetworkDisconnected")
if Device:hasWifiToggle() then
NetworkMgr:setWifiState(false)
NetworkMgr:setConnectionState(false)
end
NetworkMgr:setWifiState(false)
NetworkMgr:setConnectionState(false)
NetworkListener:_unscheduleActivityCheck()
-- Reset NetworkMgr's beforeWifiAction marker

Loading…
Cancel
Save