mirror of
https://github.com/koreader/koreader
synced 2024-11-10 01:10:34 +00:00
195 lines
6.7 KiB
Lua
195 lines
6.7 KiB
Lua
|
local Screensaver = require("ui/screensaver")
|
||
|
local _ = require("gettext")
|
||
|
|
||
|
local function screensaverType() return G_reader_settings:readSetting("screensaver_type") end
|
||
|
local function screensaverDelay() return G_reader_settings:readSetting("screensaver_delay") end
|
||
|
local function lastFile()
|
||
|
local lfs = require("libs/libkoreader-lfs")
|
||
|
local last_file = G_reader_settings:readSetting("lastfile")
|
||
|
if last_file and lfs.attributes(last_file, "mode") == "file" then
|
||
|
return last_file
|
||
|
end
|
||
|
end
|
||
|
local function messageBackground() return G_reader_settings:isTrue("message_background") end
|
||
|
|
||
|
return {
|
||
|
{
|
||
|
text = _("Use last book's cover as screensaver"),
|
||
|
enabled_func = function() return lastFile() ~= nil end,
|
||
|
checked_func = function()
|
||
|
if screensaverType() == "cover" then
|
||
|
return true
|
||
|
else
|
||
|
return false
|
||
|
end
|
||
|
end,
|
||
|
callback = function()
|
||
|
G_reader_settings:saveSetting("screensaver_type", "cover")
|
||
|
end
|
||
|
},
|
||
|
{
|
||
|
text = _("Use book status as screensaver"),
|
||
|
enabled_func = function() return lastFile() ~= nil end,
|
||
|
checked_func = function()
|
||
|
if screensaverType() == "bookstatus" then
|
||
|
return true
|
||
|
else
|
||
|
return false
|
||
|
end
|
||
|
end,
|
||
|
callback = function()
|
||
|
G_reader_settings:saveSetting("screensaver_type", "bookstatus")
|
||
|
end
|
||
|
},
|
||
|
{
|
||
|
text = _("Use random image from folder as screensaver"),
|
||
|
checked_func = function()
|
||
|
if screensaverType() == "random_image" then
|
||
|
return true
|
||
|
else
|
||
|
return false
|
||
|
end
|
||
|
end,
|
||
|
callback = function()
|
||
|
G_reader_settings:saveSetting("screensaver_type", "random_image")
|
||
|
end
|
||
|
},
|
||
|
{
|
||
|
text = _("Use reading progress as screensaver"),
|
||
|
enabled_func = function() return Screensaver.getReaderProgress ~= nil and lastFile() ~= nil end,
|
||
|
checked_func = function()
|
||
|
if screensaverType() == "readingprogress" then
|
||
|
return true
|
||
|
else
|
||
|
return false
|
||
|
end
|
||
|
end,
|
||
|
callback = function()
|
||
|
G_reader_settings:saveSetting("screensaver_type", "readingprogress")
|
||
|
end
|
||
|
},
|
||
|
{
|
||
|
text = _("Use message as screensaver"),
|
||
|
checked_func = function()
|
||
|
if screensaverType() == "message" then
|
||
|
return true
|
||
|
else
|
||
|
return false
|
||
|
end
|
||
|
end,
|
||
|
callback = function()
|
||
|
G_reader_settings:saveSetting("screensaver_type", "message")
|
||
|
end
|
||
|
},
|
||
|
{
|
||
|
text = _("Leave screen as it is"),
|
||
|
checked_func = function()
|
||
|
if screensaverType() == nil or screensaverType() == "disable" then
|
||
|
return true
|
||
|
else
|
||
|
return false
|
||
|
end
|
||
|
end,
|
||
|
callback = function()
|
||
|
G_reader_settings:saveSetting("screensaver_type", "disable")
|
||
|
end
|
||
|
},
|
||
|
{
|
||
|
text = _("Settings"),
|
||
|
sub_item_table = {
|
||
|
{
|
||
|
text = _("Screensaver folder"),
|
||
|
callback = function()
|
||
|
Screensaver:chooseFolder()
|
||
|
end,
|
||
|
},
|
||
|
{
|
||
|
text = _("Screensaver message"),
|
||
|
callback = function()
|
||
|
Screensaver:setMessage()
|
||
|
end,
|
||
|
},
|
||
|
{
|
||
|
text = _("White background in message"),
|
||
|
checked_func = function()
|
||
|
return messageBackground()
|
||
|
end,
|
||
|
callback = function()
|
||
|
G_reader_settings:saveSetting("message_background", not messageBackground())
|
||
|
end,
|
||
|
separator = true,
|
||
|
},
|
||
|
{
|
||
|
text = _("Delay when exit from screensaver"),
|
||
|
sub_item_table = {
|
||
|
{
|
||
|
text = _("Disable"),
|
||
|
checked_func = function()
|
||
|
if screensaverDelay() == nil or screensaverDelay() == "disable" then
|
||
|
return true
|
||
|
else
|
||
|
return false
|
||
|
end
|
||
|
end,
|
||
|
callback = function()
|
||
|
G_reader_settings:saveSetting("screensaver_delay", "disable")
|
||
|
end
|
||
|
},
|
||
|
{
|
||
|
text = _("1 second"),
|
||
|
checked_func = function()
|
||
|
if screensaverDelay() == "1" then
|
||
|
return true
|
||
|
else
|
||
|
return false
|
||
|
end
|
||
|
end,
|
||
|
callback = function()
|
||
|
G_reader_settings:saveSetting("screensaver_delay", "1")
|
||
|
end
|
||
|
},
|
||
|
{
|
||
|
text = _("3 seconds"),
|
||
|
checked_func = function()
|
||
|
if screensaverDelay() == "3" then
|
||
|
return true
|
||
|
else
|
||
|
return false
|
||
|
end
|
||
|
end,
|
||
|
callback = function()
|
||
|
G_reader_settings:saveSetting("screensaver_delay", "3")
|
||
|
end
|
||
|
},
|
||
|
{
|
||
|
text = _("5 seconds"),
|
||
|
checked_func = function()
|
||
|
if screensaverDelay() == "5" then
|
||
|
return true
|
||
|
else
|
||
|
return false
|
||
|
end
|
||
|
end,
|
||
|
callback = function()
|
||
|
G_reader_settings:saveSetting("screensaver_delay", "5")
|
||
|
end
|
||
|
},
|
||
|
{
|
||
|
text = _("Tap to exit screensaver"),
|
||
|
checked_func = function()
|
||
|
if screensaverDelay() == "tap" then
|
||
|
return true
|
||
|
else
|
||
|
return false
|
||
|
end
|
||
|
end,
|
||
|
callback = function()
|
||
|
G_reader_settings:saveSetting("screensaver_delay", "tap")
|
||
|
end
|
||
|
},
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|