|
|
|
@ -446,9 +446,13 @@ function Screensaver:setup(event, event_message)
|
|
|
|
|
end
|
|
|
|
|
if not excluded then
|
|
|
|
|
if lastfile and lfs.attributes(lastfile, "mode") == "file" then
|
|
|
|
|
self.image = FileManagerBookInfo:getCoverImage(ui and ui.document, lastfile)
|
|
|
|
|
if self.image == nil then
|
|
|
|
|
self.screensaver_type = "random_image"
|
|
|
|
|
if DocumentRegistry:isImageFile(lastfile) then
|
|
|
|
|
self.image_file = lastfile
|
|
|
|
|
else
|
|
|
|
|
self.image = FileManagerBookInfo:getCoverImage(ui and ui.document, lastfile)
|
|
|
|
|
if self.image == nil then
|
|
|
|
|
self.screensaver_type = "random_image"
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
self.screensaver_type = "random_image"
|
|
|
|
@ -463,6 +467,7 @@ function Screensaver:setup(event, event_message)
|
|
|
|
|
self.screensaver_type = "random_image"
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
-- NB Kept around to support old settings.
|
|
|
|
|
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")
|
|
|
|
@ -542,15 +547,22 @@ function Screensaver:show()
|
|
|
|
|
|
|
|
|
|
-- Build the main widget for the effective mode, all the sanity checks were handled in setup
|
|
|
|
|
local widget = nil
|
|
|
|
|
if self.screensaver_type == "cover" then
|
|
|
|
|
widget = ImageWidget:new{
|
|
|
|
|
image = self.image,
|
|
|
|
|
image_disposable = true,
|
|
|
|
|
if self.screensaver_type == "cover" or self.screensaver_type == "image_file" or self.screensaver_type == "random_image" then
|
|
|
|
|
local widget_settings = {
|
|
|
|
|
width = Screen:getWidth(),
|
|
|
|
|
height = Screen:getHeight(),
|
|
|
|
|
scale_factor = G_reader_settings:isFalse("screensaver_stretch_images") and 0 or nil,
|
|
|
|
|
stretch_limit_percentage = G_reader_settings:readSetting("screensaver_stretch_limit_percentage"),
|
|
|
|
|
}
|
|
|
|
|
if self.image then
|
|
|
|
|
widget_settings.image = self.image
|
|
|
|
|
widget_settings.image_disposable = true
|
|
|
|
|
elseif self.image_file then
|
|
|
|
|
widget_settings.file = self.image_file
|
|
|
|
|
widget_settings.file_do_cache = false
|
|
|
|
|
widget_settings.alpha = true
|
|
|
|
|
end
|
|
|
|
|
widget = ImageWidget:new(widget_settings)
|
|
|
|
|
elseif self.screensaver_type == "bookstatus" then
|
|
|
|
|
local ReaderUI = require("apps/reader/readerui")
|
|
|
|
|
local ui = ReaderUI.instance
|
|
|
|
@ -564,16 +576,6 @@ function Screensaver:show()
|
|
|
|
|
ui = ui,
|
|
|
|
|
readonly = true,
|
|
|
|
|
}
|
|
|
|
|
elseif self.screensaver_type == "random_image" or self.screensaver_type == "image_file" then
|
|
|
|
|
widget = ImageWidget:new{
|
|
|
|
|
file = self.image_file,
|
|
|
|
|
file_do_cache = false,
|
|
|
|
|
alpha = true,
|
|
|
|
|
width = Screen:getWidth(),
|
|
|
|
|
height = Screen:getHeight(),
|
|
|
|
|
scale_factor = G_reader_settings:isFalse("screensaver_stretch_images") and 0 or nil,
|
|
|
|
|
stretch_limit_percentage = G_reader_settings:readSetting("screensaver_stretch_limit_percentage"),
|
|
|
|
|
}
|
|
|
|
|
elseif self.screensaver_type == "readingprogress" then
|
|
|
|
|
widget = Screensaver.getReaderProgress()
|
|
|
|
|
end
|
|
|
|
|