mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
[UX] Implement back_to_exit option (#3838)
Also goes back to File Manager as default view first.
This commit is contained in:
committed by
Frans de Jonge
parent
ab712f1a29
commit
5aacc761e1
@@ -363,16 +363,31 @@ function FileManager:init()
|
||||
|
||||
if Device:hasKeys() then
|
||||
self.key_events.Home = { {"Home"}, doc = "go home" }
|
||||
if not Device:isSDL() then
|
||||
--if not in the desktop emulator
|
||||
--remove the old Back key to exit koreader
|
||||
self.file_chooser.key_events.Close = nil
|
||||
end
|
||||
--Override the menu.lua way of handling the back key
|
||||
self.file_chooser.key_events.Back = { {"Back"}, doc = "go back" }
|
||||
end
|
||||
|
||||
self:handleEvent(Event:new("SetDimensions", self.dimen))
|
||||
end
|
||||
|
||||
function FileChooser:onBack()
|
||||
local back_to_exit = G_reader_settings:readSetting("back_to_exit") or "prompt"
|
||||
if back_to_exit == "always" then
|
||||
return self:onClose()
|
||||
elseif back_to_exit == "disable" then
|
||||
return true
|
||||
elseif back_to_exit == "prompt" then
|
||||
UIManager:show(ConfirmBox:new{
|
||||
text = _("Exit KOReader?"),
|
||||
ok_text = _("Exit"),
|
||||
ok_callback = function()
|
||||
self:onClose()
|
||||
end
|
||||
})
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
function FileManager:tapPlus()
|
||||
local buttons = {
|
||||
{
|
||||
|
||||
@@ -3,6 +3,7 @@ local Event = require("ui/event")
|
||||
local EventListener = require("ui/widget/eventlistener")
|
||||
local logger = require("logger")
|
||||
local util = require("util")
|
||||
local _ = require("gettext")
|
||||
|
||||
local ReaderBack = EventListener:new{
|
||||
location_stack = {},
|
||||
@@ -74,7 +75,7 @@ function ReaderBack:onBack()
|
||||
end
|
||||
else
|
||||
logger.dbg("[ReaderBack] no location history, closing")
|
||||
self.ui:handleEvent(Event:new("Close"))
|
||||
self.ui:handleEvent(Event:new("Home"))
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -634,7 +634,9 @@ function ReaderUI:dealWithLoadDocumentFailure()
|
||||
end
|
||||
|
||||
function ReaderUI:onHome()
|
||||
return self:showFileManager()
|
||||
self:onClose()
|
||||
self:showFileManager()
|
||||
return true
|
||||
end
|
||||
|
||||
return ReaderUI
|
||||
|
||||
@@ -125,6 +125,48 @@ if Device:isAndroid() then
|
||||
table.insert(common_settings.screen.sub_item_table, require("ui/elements/screen_fullscreen_menu_table"))
|
||||
end
|
||||
|
||||
if Device:hasKeys() then
|
||||
common_settings.navigation = {
|
||||
text = _("Navigation"),
|
||||
sub_item_table = {
|
||||
{
|
||||
text = _("Back key to exit KOReader"),
|
||||
sub_item_table = {
|
||||
{
|
||||
text = _("Prompt"),
|
||||
checked_func = function()
|
||||
local setting = G_reader_settings:readSetting("back_to_exit")
|
||||
return setting == "prompt" or setting == nil
|
||||
end,
|
||||
callback = function()
|
||||
G_reader_settings:saveSetting("back_to_exit", "prompt")
|
||||
end,
|
||||
},
|
||||
{
|
||||
text = _("Always"),
|
||||
checked_func = function()
|
||||
return G_reader_settings:readSetting("back_to_exit")
|
||||
== "always"
|
||||
end,
|
||||
callback = function()
|
||||
G_reader_settings:saveSetting("back_to_exit", "always")
|
||||
end,
|
||||
},
|
||||
{
|
||||
text = _("Disable"),
|
||||
checked_func = function()
|
||||
return G_reader_settings:readSetting("back_to_exit")
|
||||
== "disable"
|
||||
end,
|
||||
callback = function()
|
||||
G_reader_settings:saveSetting("back_to_exit", "disable")
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
end
|
||||
common_settings.document = {
|
||||
text = _("Document"),
|
||||
sub_item_table = {
|
||||
|
||||
@@ -27,6 +27,7 @@ local order = {
|
||||
"screen",
|
||||
"screensaver",
|
||||
"document",
|
||||
"navigation",
|
||||
"----------------------------",
|
||||
"language",
|
||||
"time",
|
||||
|
||||
@@ -43,6 +43,7 @@ local order = {
|
||||
"screen",
|
||||
"screensaver",
|
||||
"document",
|
||||
"navigation",
|
||||
"----------------------------",
|
||||
"language",
|
||||
"time",
|
||||
|
||||
Reference in New Issue
Block a user