mirror of
https://github.com/koreader/koreader.git
synced 2025-12-13 20:36:53 +01:00
NetworkManager: Make sure we show an IM at the *start* of a Wi-Fi toggle action (#9064)
Ensures the worst-case scenario has minimal visual feedback.
This commit is contained in:
@@ -277,7 +277,7 @@ function KoboPowerD:getCapacityHW()
|
|||||||
return self:read_int_file(self.batt_capacity_file)
|
return self:read_int_file(self.batt_capacity_file)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- NOTE: Match the behavior of the NXP ntx_io _Is_USB_plugged ioctl!
|
-- NOTE: Match the behavior of the ntx_io _Is_USB_plugged ioctl!
|
||||||
-- (Otherwise, a device that is fully charged, but still plugged in will no longer be flagged as charging).
|
-- (Otherwise, a device that is fully charged, but still plugged in will no longer be flagged as charging).
|
||||||
function KoboPowerD:isChargingHW()
|
function KoboPowerD:isChargingHW()
|
||||||
return self:read_str_file(self.is_charging_file) ~= "Discharging"
|
return self:read_str_file(self.is_charging_file) ~= "Discharging"
|
||||||
|
|||||||
@@ -70,7 +70,8 @@ local settingsList = {
|
|||||||
toggle_gsensor = {category="none", event="ToggleGSensor", title=_("Toggle accelerometer"), device=true, condition=Device:canToggleGSensor()},
|
toggle_gsensor = {category="none", event="ToggleGSensor", title=_("Toggle accelerometer"), device=true, condition=Device:canToggleGSensor()},
|
||||||
wifi_on = {category="none", event="InfoWifiOn", title=_("Turn on Wi-Fi"), device=true, condition=Device:hasWifiToggle()},
|
wifi_on = {category="none", event="InfoWifiOn", title=_("Turn on Wi-Fi"), device=true, condition=Device:hasWifiToggle()},
|
||||||
wifi_off = {category="none", event="InfoWifiOff", title=_("Turn off Wi-Fi"), device=true, condition=Device:hasWifiToggle()},
|
wifi_off = {category="none", event="InfoWifiOff", title=_("Turn off Wi-Fi"), device=true, condition=Device:hasWifiToggle()},
|
||||||
toggle_wifi = {category="none", event="ToggleWifi", title=_("Toggle Wi-Fi"), device=true, condition=Device:hasWifiToggle(), separator=true},
|
toggle_wifi = {category="none", event="ToggleWifi", title=_("Toggle Wi-Fi"), device=true, condition=Device:hasWifiToggle()},
|
||||||
|
show_network_info = {category="none", event="ShowNetworkInfo", title=_("Show network info"), device=true, separator=true},
|
||||||
suspend = {category="none", event="SuspendEvent", title=_("Suspend"), device=true},
|
suspend = {category="none", event="SuspendEvent", title=_("Suspend"), device=true},
|
||||||
exit = {category="none", event="Exit", title=_("Exit KOReader"), device=true},
|
exit = {category="none", event="Exit", title=_("Exit KOReader"), device=true},
|
||||||
restart = {category="none", event="Restart", title=_("Restart KOReader"), device=true, condition=Device:canRestart()},
|
restart = {category="none", event="Restart", title=_("Restart KOReader"), device=true, condition=Device:canRestart()},
|
||||||
@@ -234,6 +235,7 @@ local dispatcher_menu_order = {
|
|||||||
"wifi_on",
|
"wifi_on",
|
||||||
"wifi_off",
|
"wifi_off",
|
||||||
"toggle_wifi",
|
"toggle_wifi",
|
||||||
|
"show_network_info",
|
||||||
|
|
||||||
"show_frontlight_dialog",
|
"show_frontlight_dialog",
|
||||||
"toggle_frontlight",
|
"toggle_frontlight",
|
||||||
|
|||||||
@@ -113,16 +113,32 @@ function NetworkMgr:restoreWifiAsync() end
|
|||||||
-- End of device specific methods
|
-- End of device specific methods
|
||||||
|
|
||||||
function NetworkMgr:toggleWifiOn(complete_callback, long_press)
|
function NetworkMgr:toggleWifiOn(complete_callback, long_press)
|
||||||
|
local toggle_im = InfoMessage:new{
|
||||||
|
text = _("Turning on Wi-Fi…"),
|
||||||
|
}
|
||||||
|
UIManager:show(toggle_im)
|
||||||
|
UIManager:forceRePaint()
|
||||||
|
|
||||||
self.wifi_was_on = true
|
self.wifi_was_on = true
|
||||||
G_reader_settings:makeTrue("wifi_was_on")
|
G_reader_settings:makeTrue("wifi_was_on")
|
||||||
self.wifi_toggle_long_press = long_press
|
self.wifi_toggle_long_press = long_press
|
||||||
self:turnOnWifi(complete_callback)
|
self:turnOnWifi(complete_callback)
|
||||||
|
|
||||||
|
UIManager:close(toggle_im)
|
||||||
end
|
end
|
||||||
|
|
||||||
function NetworkMgr:toggleWifiOff(complete_callback)
|
function NetworkMgr:toggleWifiOff(complete_callback)
|
||||||
|
local toggle_im = InfoMessage:new{
|
||||||
|
text = _("Turning off Wi-Fi…"),
|
||||||
|
}
|
||||||
|
UIManager:show(toggle_im)
|
||||||
|
UIManager:forceRePaint()
|
||||||
|
|
||||||
self.wifi_was_on = false
|
self.wifi_was_on = false
|
||||||
G_reader_settings:makeFalse("wifi_was_on")
|
G_reader_settings:makeFalse("wifi_was_on")
|
||||||
self:turnOffWifi(complete_callback)
|
self:turnOffWifi(complete_callback)
|
||||||
|
|
||||||
|
UIManager:close(toggle_im)
|
||||||
end
|
end
|
||||||
|
|
||||||
function NetworkMgr:promptWifiOn(complete_callback, long_press)
|
function NetworkMgr:promptWifiOn(complete_callback, long_press)
|
||||||
@@ -481,16 +497,7 @@ function NetworkMgr:getInfoMenuTable()
|
|||||||
keep_menu_open = true,
|
keep_menu_open = true,
|
||||||
enabled_func = function() return self:isNetworkInfoAvailable() end,
|
enabled_func = function() return self:isNetworkInfoAvailable() end,
|
||||||
callback = function()
|
callback = function()
|
||||||
if Device.retrieveNetworkInfo then
|
UIManager:broadcastEvent(Event:new("ShowNetworkInfo"))
|
||||||
UIManager:show(InfoMessage:new{
|
|
||||||
text = Device:retrieveNetworkInfo(),
|
|
||||||
})
|
|
||||||
else
|
|
||||||
UIManager:show(InfoMessage:new{
|
|
||||||
text = _("Could not retrieve network info."),
|
|
||||||
timeout = 3,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -13,10 +13,11 @@ local NetworkListener = InputContainer:new{}
|
|||||||
|
|
||||||
function NetworkListener:onToggleWifi()
|
function NetworkListener:onToggleWifi()
|
||||||
if not NetworkMgr:isWifiOn() then
|
if not NetworkMgr:isWifiOn() then
|
||||||
UIManager:show(InfoMessage:new{
|
local toggle_im = InfoMessage:new{
|
||||||
text = _("Turning on Wi-Fi…"),
|
text = _("Turning on Wi-Fi…"),
|
||||||
timeout = 1,
|
}
|
||||||
})
|
UIManager:show(toggle_im)
|
||||||
|
UIManager:forceRePaint()
|
||||||
|
|
||||||
-- NB Normal widgets should use NetworkMgr:promptWifiOn()
|
-- NB Normal widgets should use NetworkMgr:promptWifiOn()
|
||||||
-- (or, better yet, the NetworkMgr:beforeWifiAction wrappers: NetworkMgr:runWhenOnline() & co.)
|
-- (or, better yet, the NetworkMgr:beforeWifiAction wrappers: NetworkMgr:runWhenOnline() & co.)
|
||||||
@@ -25,12 +26,21 @@ function NetworkListener:onToggleWifi()
|
|||||||
UIManager:broadcastEvent(Event:new("NetworkConnected"))
|
UIManager:broadcastEvent(Event:new("NetworkConnected"))
|
||||||
end
|
end
|
||||||
NetworkMgr:turnOnWifi(complete_callback)
|
NetworkMgr:turnOnWifi(complete_callback)
|
||||||
|
|
||||||
|
UIManager:close(toggle_im)
|
||||||
else
|
else
|
||||||
local complete_callback = function()
|
local complete_callback = function()
|
||||||
UIManager:broadcastEvent(Event:new("NetworkDisconnected"))
|
UIManager:broadcastEvent(Event:new("NetworkDisconnected"))
|
||||||
end
|
end
|
||||||
|
local toggle_im = InfoMessage:new{
|
||||||
|
text = _("Turning off Wi-Fi…"),
|
||||||
|
}
|
||||||
|
UIManager:show(toggle_im)
|
||||||
|
UIManager:forceRePaint()
|
||||||
|
|
||||||
NetworkMgr:turnOffWifi(complete_callback)
|
NetworkMgr:turnOffWifi(complete_callback)
|
||||||
|
|
||||||
|
UIManager:close(toggle_im)
|
||||||
UIManager:show(InfoMessage:new{
|
UIManager:show(InfoMessage:new{
|
||||||
text = _("Wi-Fi off."),
|
text = _("Wi-Fi off."),
|
||||||
timeout = 1,
|
timeout = 1,
|
||||||
@@ -43,8 +53,15 @@ function NetworkListener:onInfoWifiOff()
|
|||||||
local complete_callback = function()
|
local complete_callback = function()
|
||||||
UIManager:broadcastEvent(Event:new("NetworkDisconnected"))
|
UIManager:broadcastEvent(Event:new("NetworkDisconnected"))
|
||||||
end
|
end
|
||||||
|
local toggle_im = InfoMessage:new{
|
||||||
|
text = _("Turning off Wi-Fi…"),
|
||||||
|
}
|
||||||
|
UIManager:show(toggle_im)
|
||||||
|
UIManager:forceRePaint()
|
||||||
|
|
||||||
NetworkMgr:turnOffWifi(complete_callback)
|
NetworkMgr:turnOffWifi(complete_callback)
|
||||||
|
|
||||||
|
UIManager:close(toggle_im)
|
||||||
UIManager:show(InfoMessage:new{
|
UIManager:show(InfoMessage:new{
|
||||||
text = _("Wi-Fi off."),
|
text = _("Wi-Fi off."),
|
||||||
timeout = 1,
|
timeout = 1,
|
||||||
@@ -53,10 +70,11 @@ end
|
|||||||
|
|
||||||
function NetworkListener:onInfoWifiOn()
|
function NetworkListener:onInfoWifiOn()
|
||||||
if not NetworkMgr:isOnline() then
|
if not NetworkMgr:isOnline() then
|
||||||
UIManager:show(InfoMessage:new{
|
local toggle_im = InfoMessage:new{
|
||||||
text = _("Enabling wifi…"),
|
text = _("Enabling Wi-Fi…"),
|
||||||
timeout = 1,
|
}
|
||||||
})
|
UIManager:show(toggle_im)
|
||||||
|
UIManager:forceRePaint()
|
||||||
|
|
||||||
-- NB Normal widgets should use NetworkMgr:promptWifiOn()
|
-- NB Normal widgets should use NetworkMgr:promptWifiOn()
|
||||||
-- (or, better yet, the NetworkMgr:beforeWifiAction wrappers: NetworkMgr:runWhenOnline() & co.)
|
-- (or, better yet, the NetworkMgr:beforeWifiAction wrappers: NetworkMgr:runWhenOnline() & co.)
|
||||||
@@ -65,6 +83,8 @@ function NetworkListener:onInfoWifiOn()
|
|||||||
UIManager:broadcastEvent(Event:new("NetworkConnected"))
|
UIManager:broadcastEvent(Event:new("NetworkConnected"))
|
||||||
end
|
end
|
||||||
NetworkMgr:turnOnWifi(complete_callback)
|
NetworkMgr:turnOnWifi(complete_callback)
|
||||||
|
|
||||||
|
UIManager:close(toggle_im)
|
||||||
else
|
else
|
||||||
local info_text
|
local info_text
|
||||||
local current_network = NetworkMgr:getCurrentNetwork()
|
local current_network = NetworkMgr:getCurrentNetwork()
|
||||||
@@ -211,4 +231,17 @@ function NetworkListener:onSuspend()
|
|||||||
self:onNetworkDisconnected()
|
self:onNetworkDisconnected()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function NetworkListener:onShowNetworkInfo()
|
||||||
|
if Device.retrieveNetworkInfo then
|
||||||
|
UIManager:show(InfoMessage:new{
|
||||||
|
text = Device:retrieveNetworkInfo(),
|
||||||
|
})
|
||||||
|
else
|
||||||
|
UIManager:show(InfoMessage:new{
|
||||||
|
text = _("Could not retrieve network info."),
|
||||||
|
timeout = 3,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
return NetworkListener
|
return NetworkListener
|
||||||
|
|||||||
Reference in New Issue
Block a user