Restart KOReader: add a ConfirmBox instead of a plain InfoMessage (#9853)

reviewable/pr9874/r1
zwim 1 year ago committed by GitHub
parent fa9f0acf5e
commit d1cd2a1c8d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -453,10 +453,7 @@ To:
-- Also remove from the Cache objet references to the cache files we've just deleted
local Cache = require("cache")
Cache.cached = {}
local InfoMessage = require("ui/widget/infomessage")
UIManager:show(InfoMessage:new{
text = _("Caches cleared. Please restart KOReader."),
})
UIManager:askForRestart(_("Caches cleared. Please restart KOReader."))
end,
})
end,
@ -504,10 +501,7 @@ To:
end,
callback = function()
G_reader_settings:flipNilOrFalse("dev_startup_no_fbdepth")
local InfoMessage = require("ui/widget/infomessage")
UIManager:show(InfoMessage:new{
text = _("This will take effect on next restart."),
})
UIManager:askForRestart()
end,
})
end
@ -520,10 +514,7 @@ To:
end,
callback = function()
G_reader_settings:flipNilOrFalse("dev_abort_on_crash")
local InfoMessage = require("ui/widget/infomessage")
UIManager:show(InfoMessage:new{
text = _("This will take effect on next restart."),
})
UIManager:askForRestart()
end,
})
end
@ -602,10 +593,7 @@ To:
mxcfb_bypass_wait_for = not Device:hasReliableMxcWaitFor()
end
G_reader_settings:saveSetting("mxcfb_bypass_wait_for", not mxcfb_bypass_wait_for)
local InfoMessage = require("ui/widget/infomessage")
UIManager:show(InfoMessage:new{
text = _("This will take effect on next restart."),
})
UIManager:askForRestart()
end,
})
end
@ -622,10 +610,7 @@ To:
end,
callback = function()
G_reader_settings:flipNilOrFalse("pb_ignore_b288_quirks")
local InfoMessage = require("ui/widget/infomessage")
UIManager:show(InfoMessage:new{
text = _("This will take effect on next restart."),
})
UIManager:askForRestart()
end,
})
end
@ -645,10 +630,7 @@ To:
end,
callback = function()
G_reader_settings:flipNilOrTrue("use_xtext")
local InfoMessage = require("ui/widget/infomessage")
UIManager:show(InfoMessage:new{
text = _("This will take effect on next restart."),
})
UIManager:askForRestart()
end,
})
table.insert(self.menu_items.developer_options.sub_item_table, {
@ -661,10 +643,7 @@ To:
end,
callback = function()
G_reader_settings:flipNilOrFalse("dev_reverse_ui_layout_mirroring")
local InfoMessage = require("ui/widget/infomessage")
UIManager:show(InfoMessage:new{
text = _("This will take effect on next restart."),
})
UIManager:askForRestart()
end
},
{
@ -674,10 +653,7 @@ To:
end,
callback = function()
G_reader_settings:flipNilOrFalse("dev_reverse_ui_text_direction")
local InfoMessage = require("ui/widget/infomessage")
UIManager:show(InfoMessage:new{
text = _("This will take effect on next restart."),
})
UIManager:askForRestart()
end
}
}

@ -320,11 +320,11 @@ function DeviceListener:onRequestSuspend()
end
function DeviceListener:onRequestReboot()
UIManager:reboot()
UIManager:askForReboot()
end
function DeviceListener:onRequestPowerOff()
UIManager:powerOff()
UIManager:askForPowerOff()
end
function DeviceListener:onExit(callback)

@ -573,10 +573,10 @@ end
-- Set device event handlers common to all devices
function Device:_setEventHandlers(UIManager)
if self:canReboot() then
UIManager.event_handlers.Reboot = function()
UIManager.event_handlers.Reboot = function(message_text)
local ConfirmBox = require("ui/widget/confirmbox")
UIManager:show(ConfirmBox:new{
text = _("Are you sure you want to reboot the device?"),
text = message_text or _("Are you sure you want to reboot the device?"),
ok_text = _("Reboot"),
ok_callback = function()
local Event = require("ui/event")
@ -590,10 +590,10 @@ function Device:_setEventHandlers(UIManager)
end
if self:canPowerOff() then
UIManager.event_handlers.PowerOff = function()
UIManager.event_handlers.PowerOff = function(message_text)
local ConfirmBox = require("ui/widget/confirmbox")
UIManager:show(ConfirmBox:new{
text = _("Are you sure you want to power off the device?"),
text = message_text or _("Are you sure you want to power off the device?"),
ok_text = _("Power off"),
ok_callback = function()
local Event = require("ui/event")
@ -606,6 +606,28 @@ function Device:_setEventHandlers(UIManager)
UIManager.event_handlers.PowerOff = function() end
end
if self:canRestart() then
UIManager.event_handlers.Restart = function(message_text)
local ConfirmBox = require("ui/widget/confirmbox")
UIManager:show(ConfirmBox:new{
text = message_text or _("This will take effect on next restart."),
ok_text = _("Restart now"),
ok_callback = function()
local Event = require("ui/event")
UIManager:broadcastEvent(Event:new("Restart"))
end,
cancel_text = _("Restart later"),
})
end
else
UIManager.event_handlers.Restart = function(message_text)
local InfoMessage = require("ui/widget/infomessage")
UIManager:show(InfoMessage:new{
text = message_text or _("This will take effect on next restart."),
})
end
end
self:setEventHandlers(UIManager)
end

@ -173,7 +173,6 @@ function PluginLoader:genPluginManagerSubItem()
return plugin.enable
end,
callback = function()
local InfoMessage = require("ui/widget/infomessage")
local UIManager = require("ui/uimanager")
local _ = require("gettext")
local plugins_disabled = G_reader_settings:readSetting("plugins_disabled") or {}
@ -185,10 +184,8 @@ function PluginLoader:genPluginManagerSubItem()
end
G_reader_settings:saveSetting("plugins_disabled", plugins_disabled)
if self.show_info then
UIManager:show(InfoMessage:new{
text = _("This will take effect on next restart."),
})
self.show_info = false
UIManager:askForRestart()
end
end,
help_text = plugin.description,

@ -39,7 +39,7 @@ if Device:canReboot() then
text = _("Reboot the device"),
keep_menu_open = true,
callback = function()
UIManager:reboot()
UIManager:askForReboot()
end
}
end
@ -48,7 +48,7 @@ if Device:canPowerOff() then
text = _("Power off"),
keep_menu_open = true,
callback = function()
UIManager:powerOff()
UIManager:askForPowerOff()
end
}
end

@ -198,9 +198,7 @@ if Device:isKobo() then
callback = function()
G_reader_settings:toggle("ignore_power_sleepcover")
G_reader_settings:makeFalse("ignore_open_sleepcover")
UIManager:show(InfoMessage:new{
text = _("This will take effect on next restart."),
})
UIManager:askForRestart()
end
}
@ -212,9 +210,7 @@ if Device:isKobo() then
callback = function()
G_reader_settings:toggle("ignore_open_sleepcover")
G_reader_settings:makeFalse("ignore_power_sleepcover")
UIManager:show(InfoMessage:new{
text = _("This will take effect on next restart."),
})
UIManager:askForRestart()
end
}
end
@ -272,9 +268,7 @@ if not Device:isAlwaysFullscreen() then
local api = Device.firmware_rev
local needs_restart = api < 19 and api >= 16
if needs_restart then
UIManager:show(InfoMessage:new{
text = _("This will take effect on next restart.")
})
UIManager:askForRestart()
end
end
end,
@ -450,9 +444,7 @@ if Device:hasKeyboard() then
end,
callback = function()
G_reader_settings:flipNilOrFalse("backspace_as_back")
UIManager:show(InfoMessage:new{
text = _("This will take effect on next restart."),
})
UIManager:askForRestart()
end,
}
end

@ -76,10 +76,7 @@ function FontSettings:getSystemFontMenuItems()
callback = function()
G_reader_settings:saveSetting("system_fonts", not usesSystemFonts())
local UIManager = require("ui/uimanager")
local InfoMessage = require("ui/widget/infomessage")
UIManager:show(InfoMessage:new{
text = _("This will take effect on next restart.")
})
UIManager:askForRestart()
end,
}}

@ -145,9 +145,7 @@ local getSubMenuItems = function()
return
end
end
UIManager:show(InfoMessage:new{
text = _("This will take effect on next restart."),
})
UIManager:askForRestart()
end,
}
table.insert(menu_items, item)

@ -1,4 +1,3 @@
local InfoMessage = require("ui/widget/infomessage")
local UIManager = require("ui/uimanager")
local _ = require("gettext")
@ -16,9 +15,7 @@ return {
else
G_reader_settings:saveSetting("activate_menu", "swipe_tap")
end
UIManager:show(InfoMessage:new{
text = _("This will take effect on next restart."),
})
UIManager:askForRestart()
end,
},
{
@ -32,9 +29,7 @@ return {
else
G_reader_settings:saveSetting("activate_menu", "swipe_tap")
end
UIManager:show(InfoMessage:new{
text = _("This will take effect on next restart."),
})
UIManager:askForRestart()
end,
separator = true,
},

@ -1,4 +1,3 @@
local InfoMessage = require("ui/widget/infomessage")
local UIManager = require("ui/uimanager")
local _ = require("gettext")
@ -10,8 +9,6 @@ return {
callback = function()
local disabled = G_reader_settings:nilOrTrue("disable_double_tap")
G_reader_settings:saveSetting("disable_double_tap", not disabled)
UIManager:show(InfoMessage:new{
text = _("This will take effect on next restart."),
})
UIManager:askForRestart()
end,
}

@ -10,16 +10,14 @@ local function dpi() return Screen:getDPI() end
local function custom() return G_reader_settings:readSetting("custom_screen_dpi") end
local function setDPI(dpi_val)
local InfoMessage = require("ui/widget/infomessage")
local UIManager = require("ui/uimanager")
UIManager:show(InfoMessage:new{
text = dpi_val and T(_("DPI set to %1. This will take effect after restarting."), dpi_val)
or _("DPI set to auto. This will take effect after restarting."),
})
local text = dpi_val and T(_("DPI set to %1. This will take effect after restarting."), dpi_val)
or _("DPI set to auto. This will take effect after restarting.")
-- If this is set to nil, reader.lua doesn't call setScreenDPI
G_reader_settings:saveSetting("screen_dpi", dpi_val)
-- Passing a nil properly resets to defaults/auto
Device:setScreenDPI(dpi_val)
UIManager:askForRestart(text)
end
local function spinWidgetSetDPI(touchmenu_instance)

@ -1,6 +1,5 @@
local _ = require("gettext")
local Device = require("device")
local InfoMessage = require("ui/widget/infomessage")
local UIManager = require("ui/uimanager")
local Screen = Device.screen
local T = require("ffi/util").template
@ -22,9 +21,7 @@ for i=0, Screen.wf_level_max do
callback = function()
Screen.wf_level = i
G_reader_settings:saveSetting("wf_level", i)
UIManager:show(InfoMessage:new{
text = _("This will take effect on next restart."),
})
UIManager:askForRestart()
end,
})
end

@ -91,14 +91,10 @@ function Language:isLanguageRTL(lang_locale)
end
function Language:changeLanguage(lang_locale)
local InfoMessage = require("ui/widget/infomessage")
local UIManager = require("ui/uimanager")
_.changeLang(lang_locale)
G_reader_settings:saveSetting("language", lang_locale)
UIManager:show(InfoMessage:new{
text = _("Please restart KOReader for the new language setting to take effect."),
timeout = 3,
})
UIManager:askForRestart(_("Please restart KOReader for the new language setting to take effect."))
end
function Language:genLanguageSubItem(lang_locale)

@ -501,9 +501,7 @@ function NetworkMgr:getPowersaveMenuTable()
callback = function()
G_reader_settings:flipNilOrFalse("auto_disable_wifi")
-- NOTE: Well, not exactly, but the activity check wouldn't be (un)scheduled until the next Network(Dis)Connected event...
UIManager:show(InfoMessage:new{
text = _("This will take effect on next restart."),
})
UIManager:askForRestart()
end,
}
end

@ -1552,21 +1552,30 @@ function UIManager:suspend()
end
end
function UIManager:reboot()
function UIManager:askForReboot(message_text)
-- Should always exist, as defined in `generic/device` or overwritten with `setEventHandlers`
if self.event_handlers.Reboot then
-- Give the other event handlers a chance to be executed.
-- 'Reboot' event will be sent by the handler
UIManager:nextTick(self.event_handlers.Reboot)
UIManager:nextTick(self.event_handlers.Reboot, message_text)
end
end
function UIManager:powerOff()
function UIManager:askForPowerOff(message_text)
-- Should always exist, as defined in `generic/device` or overwritten with `setEventHandlers`
if self.event_handlers.PowerOff then
-- Give the other event handlers a chance to be executed.
-- 'PowerOff' event will be sent by the handler
UIManager:nextTick(self.event_handlers.PowerOff)
UIManager:nextTick(self.event_handlers.PowerOff, message_text)
end
end
function UIManager:askForRestart(message_text)
-- Should always exist, as defined in `generic/device` or overwritten with `setEventHandlers`
if self.event_handlers.PowerOff then
-- Give the other event handlers a chance to be executed.
-- 'Restart' event will be sent by the handler
UIManager:nextTick(self.event_handlers.Restart, message_text)
end
end

Loading…
Cancel
Save