mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
Screensaver: exclude content when excluding cover, random image as fallback (#9912)
Exclude some screensaver option showing book content (title, page image) when "Exclude this book cover" is checked. Random image as fallback, KOReader logo as 2nd-order fallback.
This commit is contained in:
@@ -250,10 +250,14 @@ function ReaderMenu:setUpdateItemTable()
|
||||
|
||||
if Device:supportsScreensaver() then
|
||||
local ss_book_settings = {
|
||||
text = _("Exclude this book's cover from screensaver"),
|
||||
text = _("Exclude this book's content and cover from screensaver"),
|
||||
enabled_func = function()
|
||||
return not (self.ui == nil or self.ui.document == nil)
|
||||
and G_reader_settings:readSetting("screensaver_type") == "cover"
|
||||
if self.ui and self.ui.document then
|
||||
local screensaverType = G_reader_settings:readSetting("screensaver_type")
|
||||
return screensaverType == "cover" or screensaverType == "disable"
|
||||
else
|
||||
return false
|
||||
end
|
||||
end,
|
||||
checked_func = function()
|
||||
return self.ui and self.ui.doc_settings and self.ui.doc_settings:isTrue("exclude_screensaver")
|
||||
|
||||
@@ -568,40 +568,33 @@ function Screensaver:setup(event, event_message)
|
||||
end
|
||||
end
|
||||
if self.screensaver_type == "bookstatus" then
|
||||
if lastfile and lfs.attributes(lastfile, "mode") == "file" then
|
||||
if not ui then
|
||||
self.screensaver_type = "disable"
|
||||
self.show_message = true
|
||||
end
|
||||
else
|
||||
self.screensaver_type = "disable"
|
||||
self.show_message = true
|
||||
end
|
||||
end
|
||||
if self.screensaver_type == "random_image" then
|
||||
local screensaver_dir = G_reader_settings:readSetting(self.prefix .. "screensaver_dir")
|
||||
or G_reader_settings:readSetting("screensaver_dir")
|
||||
self.image_file = self:_getRandomImage(screensaver_dir)
|
||||
if self.image_file == nil then
|
||||
self.screensaver_type = "disable"
|
||||
self.show_message = true
|
||||
if not ui or not lastfile or lfs.attributes(lastfile, "mode") ~= "file" or (ui.doc_settings and ui.doc_settings:isTrue("exclude_screensaver")) then
|
||||
self.screensaver_type = "random_image"
|
||||
end
|
||||
end
|
||||
if self.screensaver_type == "image_file" then
|
||||
self.image_file = G_reader_settings:readSetting(self.prefix .. "screensaver_image")
|
||||
or G_reader_settings:readSetting("screensaver_image")
|
||||
if self.image_file == nil or lfs.attributes(self.image_file, "mode") ~= "file" then
|
||||
self.screensaver_type = "disable"
|
||||
self.show_message = true
|
||||
self.screensaver_type = "random_image"
|
||||
end
|
||||
end
|
||||
if self.screensaver_type == "readingprogress" then
|
||||
-- This is implemented by the Statistics plugin
|
||||
if Screensaver.getReaderProgress == nil then
|
||||
self.screensaver_type = "disable"
|
||||
self.show_message = true
|
||||
self.screensaver_type = "random_image"
|
||||
end
|
||||
end
|
||||
if self.screensaver_type == "disable" then
|
||||
if ui and ui.doc_settings and ui.doc_settings:isTrue("exclude_screensaver") then
|
||||
self.screensaver_type = "random_image"
|
||||
end
|
||||
end
|
||||
if self.screensaver_type == "random_image" then
|
||||
local screensaver_dir = G_reader_settings:readSetting(self.prefix .. "screensaver_dir")
|
||||
or G_reader_settings:readSetting("screensaver_dir")
|
||||
self.image_file = self:_getRandomImage(screensaver_dir) or "resources/koreader.png" -- Fallback image
|
||||
end
|
||||
|
||||
-- Use the right background setting depending on the effective mode, now that fallbacks have kicked in.
|
||||
if self:modeIsImage() then
|
||||
|
||||
Reference in New Issue
Block a user