diff --git a/frontend/apps/filemanager/filemanagermenu.lua b/frontend/apps/filemanager/filemanagermenu.lua index 6210ffb96..99e84a4b1 100644 --- a/frontend/apps/filemanager/filemanagermenu.lua +++ b/frontend/apps/filemanager/filemanagermenu.lua @@ -763,30 +763,9 @@ Tap a book in the search results to open it.]]), for id, common_setting in pairs(dofile("frontend/ui/elements/common_info_menu_table.lua")) do self.menu_items[id] = common_setting end - self.menu_items.exit_menu = { - text = _("Exit"), - hold_callback = function() - self:exitOrRestart() - end, - } - self.menu_items.exit = { - text = _("Exit"), - callback = function() - self:exitOrRestart() - end, - } - self.menu_items.restart_koreader = { - text = _("Restart KOReader"), - callback = function() - self:exitOrRestart(function() - UIManager:restartKOReader() - end) - end, - } - if not Device:canRestart() then - self.menu_items.exit_menu = self.menu_items.exit - self.menu_items.exit = nil - self.menu_items.restart_koreader = nil + -- insert common exit for filemanager + for id, common_setting in pairs(dofile("frontend/ui/elements/common_exit_menu_table.lua")) do + self.menu_items[id] = common_setting end if not Device:isTouchDevice() then -- add a shortcut on non touch-device diff --git a/frontend/apps/reader/modules/readermenu.lua b/frontend/apps/reader/modules/readermenu.lua index d33390371..7dc5f044b 100644 --- a/frontend/apps/reader/modules/readermenu.lua +++ b/frontend/apps/reader/modules/readermenu.lua @@ -251,29 +251,9 @@ function ReaderMenu:setUpdateItemTable() for id, common_setting in pairs(dofile("frontend/ui/elements/common_info_menu_table.lua")) do self.menu_items[id] = common_setting end - - self.menu_items.exit_menu = { - text = _("Exit"), - hold_callback = function() - self:exitOrRestart() - end, - } - self.menu_items.exit = { - text = _("Exit"), - callback = function() - self:exitOrRestart() - end, - } - self.menu_items.restart_koreader = { - text = _("Restart KOReader"), - callback = function() - self:exitOrRestart(function() UIManager:restartKOReader() end) - end, - } - if not Device:canRestart() then - self.menu_items.exit_menu = self.menu_items.exit - self.menu_items.exit = nil - self.menu_items.restart_koreader = nil + -- insert common exit for reader + for id, common_setting in pairs(dofile("frontend/ui/elements/common_exit_menu_table.lua")) do + self.menu_items[id] = common_setting end self.menu_items.open_previous_document = { diff --git a/frontend/ui/elements/common_exit_menu_table.lua b/frontend/ui/elements/common_exit_menu_table.lua new file mode 100644 index 000000000..58b579d3a --- /dev/null +++ b/frontend/ui/elements/common_exit_menu_table.lua @@ -0,0 +1,56 @@ +local Device = require("device") +local Event = require("ui/event") +local UIManager = require("ui/uimanager") +local _ = require("gettext") + +local exit_settings = {} + +exit_settings.exit_menu = { + text = _("Exit"), + -- submenu entries will be appended by xyz_menu_order_lua +} +exit_settings.exit = { + text = _("Exit"), + callback = function() + UIManager:broadcastEvent(Event:new("Exit")) + end, +} +exit_settings.restart_koreader = { + text = _("Restart KOReader"), + callback = function() + UIManager:broadcastEvent(Event:new("Restart")) + end, +} +if not Device:canRestart() then + exit_settings.exit_menu = exit_settings.exit + exit_settings.exit = nil + exit_settings.restart_koreader = nil +end +if Device:canSuspend() then + exit_settings.sleep = { + text = _("Sleep"), + callback = function() + UIManager:suspend() + end, + } +end +if Device:canReboot() then + exit_settings.reboot = { + text = _("Reboot the device"), + keep_menu_open = true, + callback = function() + UIManager:broadcastEvent(Event:new("Reboot")) + end + } +end +if Device:canPowerOff() then + exit_settings.poweroff = { + text = _("Power off"), + keep_menu_open = true, + callback = function() + UIManager:broadcastEvent(Event:new("PowerOff")) + end + } +end + +return exit_settings diff --git a/frontend/ui/elements/common_info_menu_table.lua b/frontend/ui/elements/common_info_menu_table.lua index 12488bfc2..9c8497b6e 100644 --- a/frontend/ui/elements/common_info_menu_table.lua +++ b/frontend/ui/elements/common_info_menu_table.lua @@ -77,31 +77,4 @@ common_info.report_bug = { end } -if Device:canSuspend() then - common_info.sleep = { - text = _("Sleep"), - callback = function() - UIManager:suspend() - end, - } -end -if Device:canReboot() then - common_info.reboot = { - text = _("Reboot the device"), - keep_menu_open = true, - callback = function() - UIManager:broadcastEvent(Event:new("Reboot")) - end - } -end -if Device:canPowerOff() then - common_info.poweroff = { - text = _("Power off"), - keep_menu_open = true, - callback = function() - UIManager:broadcastEvent(Event:new("PowerOff")) - end - } -end - return common_info