diff --git a/base b/base
index 849231bf5..68b3a7c5d 160000
--- a/base
+++ b/base
@@ -1 +1 @@
-Subproject commit 849231bf518a6b1457459b408b9ef04e36f44b83
+Subproject commit 68b3a7c5d74cb77d82a9eff5b9d9dd9c5bb368f7
diff --git a/frontend/apps/filemanager/filemanager.lua b/frontend/apps/filemanager/filemanager.lua
index c6bf452ef..60db22e8e 100644
--- a/frontend/apps/filemanager/filemanager.lua
+++ b/frontend/apps/filemanager/filemanager.lua
@@ -47,20 +47,6 @@ local C_ = _.pgettext
local Screen = Device.screen
local T = require("ffi/util").template
-local function restoreScreenMode()
- --- @todo: Not Yet Implemented. Layout is currently broken in Landscape.
- local screen_mode = G_reader_settings:readSetting("fm_screen_mode") or "portrait"
- --- @note: Basically, if we were already in Portrait/Inverted Portrait, don't mess with it,
- -- as the FM supports it.
- -- See setScreenMode in base's ffi/framebuffer.lua for the gory details.
- -- See also ReaderView:onSetScreenMode in apps/reader/modules/readerview.lua for a similar logic,
- -- if we ever need to add Landscape to the mix.
- -- c.f., https://github.com/koreader/koreader/issues/5772#issuecomment-577242365
- if Screen:getScreenMode() ~= screen_mode then
- Screen:setScreenMode(screen_mode)
- end
-end
-
local FileManager = InputContainer:extend{
title = _("KOReader"),
root_path = lfs.currentdir(),
@@ -71,6 +57,27 @@ local FileManager = InputContainer:extend{
mkdir_bin = Device:isAndroid() and "/system/bin/mkdir" or "/bin/mkdir",
}
+function FileManager:onSetRotationMode(rotation)
+ if rotation ~= nil and rotation ~= Screen:getRotationMode() then
+ Screen:setRotationMode(rotation)
+ if self.instance then
+ self:reinit(self.instance.path, self.instance.focused_file)
+ UIManager:setDirty(self.instance.banner, function()
+ return "ui", self.instance.banner.dimen
+ end)
+ end
+ end
+ return true
+end
+
+function FileManager:setRotationMode()
+ local locked = G_reader_settings:readSetting("lock_rotation")
+ local rotation_mode = G_reader_settings:readSetting("fm_rotation_mode") or 0
+ if locked then
+ self:onSetRotationMode(rotation_mode)
+ end
+end
+
function FileManager:init()
if Device:isTouchDevice() then
self:registerTouchZones({
@@ -1029,7 +1036,7 @@ end
function FileManager:showFiles(path, focused_file)
path = path or G_reader_settings:readSetting("lastdir") or filemanagerutil.getDefaultDir()
G_reader_settings:saveSetting("lastdir", path)
- restoreScreenMode()
+ self:setRotationMode()
local file_manager = FileManager:new{
dimen = Screen:getSize(),
covers_fullscreen = true, -- hint for UIManager:_repaint()
diff --git a/frontend/apps/reader/modules/readerfooter.lua b/frontend/apps/reader/modules/readerfooter.lua
index 7c08bb324..a8653d643 100644
--- a/frontend/apps/reader/modules/readerfooter.lua
+++ b/frontend/apps/reader/modules/readerfooter.lua
@@ -1975,7 +1975,7 @@ function ReaderFooter:onFrontlightStateChanged()
end
end
-function ReaderFooter:onChangeScreenMode()
+function ReaderFooter:onSetRotationMode()
self:updateFooterContainer()
self:resetLayout(true)
end
diff --git a/frontend/apps/reader/modules/readergesture.lua b/frontend/apps/reader/modules/readergesture.lua
index bc01b543b..73caeff53 100644
--- a/frontend/apps/reader/modules/readergesture.lua
+++ b/frontend/apps/reader/modules/readergesture.lua
@@ -1,4 +1,5 @@
local BD = require("ui/bidi")
+local bit = require("bit")
local ConfirmBox = require("ui/widget/confirmbox")
local DataStorage = require("datastorage")
local Device = require("device")
@@ -1551,9 +1552,8 @@ function ReaderGesture:gestureAction(action, ges)
self.ui:handleEvent(Event:new("RestoreZoomMode"))
self.ui:handleEvent(Event:new("InitScrollPageStates"))
elseif action == "toggle_rotation" then
- local event_name = self.document.info.has_pages and "SwapScreenMode" or "ChangeScreenMode"
- local arg = Screen:getScreenMode() == "portrait" and "landscape" or "portrait"
- self.ui:handleEvent(Event:new(event_name, arg))
+ local arg = bit.band((Screen:getRotationMode() + 1), 3)
+ self.ui:handleEvent(Event:new("SetRotationMode", arg))
elseif action == "toggle_wifi" then
local NetworkMgr = require("ui/network/manager")
diff --git a/frontend/apps/reader/modules/readerrolling.lua b/frontend/apps/reader/modules/readerrolling.lua
index 237eed78f..0445d93cf 100644
--- a/frontend/apps/reader/modules/readerrolling.lua
+++ b/frontend/apps/reader/modules/readerrolling.lua
@@ -850,14 +850,6 @@ function ReaderRolling:onSetDimensions(dimen)
end
end
-function ReaderRolling:onChangeScreenMode(mode, rotation)
- -- Flag it as interactive so we can properly swap to Inverted orientations
- -- (we usurp the second argument, which usually means rotation)
- self.ui:handleEvent(Event:new("SetScreenMode", mode, rotation or true))
- -- (This had the above ReaderRolling:onSetDimensions() called to resize
- -- document dimensions and keep up with current position)
-end
-
function ReaderRolling:onColorRenderingUpdate()
self.ui.document:updateColorRendering()
UIManager:setDirty(self.view.dialog, "partial")
diff --git a/frontend/apps/reader/modules/readerview.lua b/frontend/apps/reader/modules/readerview.lua
index c57f848c2..43944e40e 100644
--- a/frontend/apps/reader/modules/readerview.lua
+++ b/frontend/apps/reader/modules/readerview.lua
@@ -672,45 +672,18 @@ function ReaderView:restoreViewContext(ctx)
end
end
--- NOTE: This is just a shim for koptoptions, because we want to be able to pass an optional second argument to SetScreenMode...
--- This is also used as a sink for gsensor input events, because we can only send a single event per input,
--- and we need to cover both CRe & KOpt...
-function ReaderView:onSwapScreenMode(new_mode, rotation)
- -- Don't do anything if an explicit rotation was requested, but it hasn't actually changed,
- -- because we may be sending this event *right before* a ChangeScreenMode in CRe (gyro)
- if rotation ~= nil and rotation ~= true and rotation == Screen:getRotationMode() then
- return true
- end
- -- CRe
- self.ui:handleEvent(Event:new("ChangeScreenMode", new_mode, rotation or true))
- -- KOpt (On CRe, since it's redundant (RR:onChangeScreenMode already sends one), this'll get discarded early)
- self.ui:handleEvent(Event:new("SetScreenMode", new_mode, rotation or true))
-end
-
-function ReaderView:onSetScreenMode(new_mode, rotation, noskip)
- -- Don't do anything if an explicit rotation was requested, but it hasn't actually changed,
- -- because we may be sending this event *right after* a ChangeScreenMode in CRe (gsensor)
- -- We only want to let the onReadSettings one go through, otherwise the testsuite blows up...
- if noskip == nil and rotation ~= nil and rotation ~= true and rotation == Screen:getRotationMode() then
- return true
- end
- if new_mode == "landscape" or new_mode == "portrait" then
- -- NOTE: Hacky hack! If rotation is "true", that's actually an "interactive" flag for setScreenMode
- --- @fixme That's because we can't store nils in a table, which is what Event:new attempts to do ;).
- -- c.f., &
- -- With a fixed Event implementation, we'd instead stick "interactive" in a third argument,
- -- which we could happily pass while still keeping rotation nil ;).
- if rotation ~= nil and rotation ~= true then
- Screen:setRotationMode(rotation)
- else
- Screen:setScreenMode(new_mode, rotation)
+function ReaderView:onSetRotationMode(rotation)
+ if rotation ~= nil then
+ if rotation == Screen:getRotationMode() then
+ return true
end
- UIManager:setDirty(self.dialog, "full")
- local new_screen_size = Screen:getSize()
- self.ui:handleEvent(Event:new("SetDimensions", new_screen_size))
- self.ui:onScreenResize(new_screen_size)
- self.ui:handleEvent(Event:new("InitScrollPageStates"))
+ Screen:setRotationMode(rotation)
end
+ UIManager:setDirty(self.dialog, "full")
+ local new_screen_size = Screen:getSize()
+ self.ui:handleEvent(Event:new("SetDimensions", new_screen_size))
+ self.ui:onScreenResize(new_screen_size)
+ self.ui:handleEvent(Event:new("InitScrollPageStates"))
return true
end
@@ -750,15 +723,18 @@ In combination with zoom to fit page, page height, content height or content, co
end
function ReaderView:onReadSettings(config)
- local screen_mode
self.render_mode = config:readSetting("render_mode") or 0
- if self.ui.document.info.has_pages then
- screen_mode = config:readSetting("screen_mode") or G_reader_settings:readSetting("kopt_screen_mode") or "portrait"
- else
- screen_mode = config:readSetting("screen_mode") or G_reader_settings:readSetting("copt_screen_mode") or "portrait"
+ local locked = G_reader_settings:readSetting("lock_rotation")
+ local rotation_mode = config:readSetting("rotation_mode")
+ if not rotation_mode and locked then
+ if self.ui.document.info.has_pages then
+ rotation_mode = G_reader_settings:readSetting("kopt_rotation_mode") or 0
+ else
+ rotation_mode = G_reader_settings:readSetting("copt_rotation_mode") or 0
+ end
end
- if screen_mode then
- self:onSetScreenMode(screen_mode, config:readSetting("rotation_mode"), true)
+ if rotation_mode then
+ self:onSetRotationMode(rotation_mode)
end
self.state.gamma = config:readSetting("gamma") or 1.0
local full_screen = config:readSetting("kopt_full_screen") or self.document.configurable.full_screen
@@ -845,7 +821,6 @@ end
function ReaderView:onSaveSettings()
self.ui.doc_settings:saveSetting("render_mode", self.render_mode)
- self.ui.doc_settings:saveSetting("screen_mode", Screen:getScreenMode())
self.ui.doc_settings:saveSetting("rotation_mode", Screen:getRotationMode())
self.ui.doc_settings:saveSetting("gamma", self.state.gamma)
self.ui.doc_settings:saveSetting("highlight", self.highlight.saved)
diff --git a/frontend/device/input.lua b/frontend/device/input.lua
index 0c580890b..c7103764d 100644
--- a/frontend/device/input.lua
+++ b/frontend/device/input.lua
@@ -667,24 +667,20 @@ end
--- Accelerometer on the Forma, c.f., drivers/hwmon/mma8x5x.c
function Input:handleMiscEvNTX(ev)
- local rotation_mode, screen_mode
+ local rotation_mode
if ev.code == MSC_RAW then
if ev.value == MSC_RAW_GSENSOR_PORTRAIT_UP then
-- i.e., UR
rotation_mode = framebuffer.ORIENTATION_PORTRAIT
- screen_mode = 'portrait'
elseif ev.value == MSC_RAW_GSENSOR_LANDSCAPE_RIGHT then
-- i.e., CW
rotation_mode = framebuffer.ORIENTATION_LANDSCAPE
- screen_mode = 'landscape'
elseif ev.value == MSC_RAW_GSENSOR_PORTRAIT_DOWN then
-- i.e., UD
rotation_mode = framebuffer.ORIENTATION_PORTRAIT_ROTATED
- screen_mode = 'portrait'
elseif ev.value == MSC_RAW_GSENSOR_LANDSCAPE_LEFT then
-- i.e., CCW
rotation_mode = framebuffer.ORIENTATION_LANDSCAPE_ROTATED
- screen_mode = 'landscape'
else
-- Discard FRONT/BACK
return
@@ -695,18 +691,10 @@ function Input:handleMiscEvNTX(ev)
end
local old_rotation_mode = self.device.screen:getRotationMode()
- local old_screen_mode = self.device.screen:getScreenMode()
- -- NOTE: Try to handle ScreenMode changes sanely, without wrecking the FM, which only supports Portrait/Inverted ;).
-- NOTE: See the Oasis version just above us for a variant that's locked to the current ScreenMode.
-- Might be nice to expose the two behaviors to the user, somehow?
- if rotation_mode ~= old_rotation_mode then
- if screen_mode ~= old_screen_mode then
- return Event:new("SwapScreenMode", screen_mode, rotation_mode)
- else
- self.device.screen:setRotationMode(rotation_mode)
- local UIManager = require("ui/uimanager")
- UIManager:onRotation()
- end
+ if rotation_mode and rotation_mode ~= old_rotation_mode then
+ return Event:new("SetRotationMode", rotation_mode)
end
end
diff --git a/frontend/dispatcher.lua b/frontend/dispatcher.lua
index ae84cc646..d459bad86 100644
--- a/frontend/dispatcher.lua
+++ b/frontend/dispatcher.lua
@@ -23,7 +23,7 @@ and optionally
--]]--
local settingsList = {
--CreOptions
- screen_mode = {category="string"},
+ rotation_mode = {category="string"},
visible_pages = {category="string"},
h_page_margins = {category="string"},
sync_t_b_page_margins = {category="string"},
diff --git a/frontend/ui/data/creoptions.lua b/frontend/ui/data/creoptions.lua
index d1db5d1c8..fc3f13f54 100644
--- a/frontend/ui/data/creoptions.lua
+++ b/frontend/ui/data/creoptions.lua
@@ -1,4 +1,5 @@
local Device = require("device")
+local Screen = Device.screen
local S = require("ui/data/strings")
local optionsutil = require("ui/data/optionsutil")
local _ = require("gettext")
@@ -19,14 +20,15 @@ local CreOptions = {
icon = "resources/icons/appbar.transform.rotate.right.large.png",
options = {
{
- name = "screen_mode",
+ name = "rotation_mode",
name_text = S.SCREEN_MODE,
- toggle = {S.PORTRAIT, S.LANDSCAPE},
+ toggle = {S.LANDSCAPE_ROTATED, S.PORTRAIT, S.LANDSCAPE, S.PORTRAIT_ROTATED},
alternate = false,
- args = {"portrait", "landscape"},
- default_arg = "portrait",
- current_func = function() return Device.screen:getScreenMode() end,
- event = "ChangeScreenMode",
+ values = {Screen.ORIENTATION_LANDSCAPE_ROTATED, Screen.ORIENTATION_PORTRAIT, Screen.ORIENTATION_LANDSCAPE, Screen.ORIENTATION_PORTRAIT_ROTATED},
+ args = {Screen.ORIENTATION_LANDSCAPE_ROTATED, Screen.ORIENTATION_PORTRAIT, Screen.ORIENTATION_LANDSCAPE, Screen.ORIENTATION_PORTRAIT_ROTATED},
+ default_arg = 0,
+ current_func = function() return Device.screen:getRotationMode() end,
+ event = "SetRotationMode",
name_text_hold_callback = optionsutil.showValues,
},
{
diff --git a/frontend/ui/data/koptoptions.lua b/frontend/ui/data/koptoptions.lua
index 2beeadf5d..969740c37 100644
--- a/frontend/ui/data/koptoptions.lua
+++ b/frontend/ui/data/koptoptions.lua
@@ -26,14 +26,15 @@ local KoptOptions = {
icon = "resources/icons/appbar.transform.rotate.right.large.png",
options = {
{
- name = "screen_mode",
+ name = "rotation_mode",
name_text = S.SCREEN_MODE,
- toggle = {S.PORTRAIT, S.LANDSCAPE},
+ toggle = {S.LANDSCAPE_ROTATED, S.PORTRAIT, S.LANDSCAPE, S.PORTRAIT_ROTATED},
alternate = false,
- args = {"portrait", "landscape"},
- default_arg = "portrait",
- current_func = function() return Screen:getScreenMode() end,
- event = "SwapScreenMode",
+ values = {Screen.ORIENTATION_LANDSCAPE_ROTATED, Screen.ORIENTATION_PORTRAIT, Screen.ORIENTATION_LANDSCAPE, Screen.ORIENTATION_PORTRAIT_ROTATED},
+ args = {Screen.ORIENTATION_LANDSCAPE_ROTATED, Screen.ORIENTATION_PORTRAIT, Screen.ORIENTATION_LANDSCAPE, Screen.ORIENTATION_PORTRAIT_ROTATED},
+ default_arg = 0,
+ current_func = function() return Screen:getRotationMode() end,
+ event = "SetRotationMode",
name_text_hold_callback = optionsutil.showValues,
}
}
diff --git a/frontend/ui/data/optionsutil.lua b/frontend/ui/data/optionsutil.lua
index 028912ef3..7867b639e 100644
--- a/frontend/ui/data/optionsutil.lua
+++ b/frontend/ui/data/optionsutil.lua
@@ -2,11 +2,9 @@
This module contains miscellaneous helper functions for the creoptions and koptoptions.
]]
-local Device = require("device")
local InfoMessage = require("ui/widget/infomessage")
local UIManager = require("ui/uimanager")
local _ = require("gettext")
-local Screen = Device.screen
local T = require("ffi/util").template
local optionsutil = {}
@@ -19,9 +17,6 @@ function optionsutil.showValues(configurable, option, prefix)
local default = G_reader_settings:readSetting(prefix.."_"..option.name)
local current = configurable[option.name]
local value_default, value_current
- if option.name == "screen_mode" then
- current = Screen:getScreenMode()
- end
if option.toggle and option.values then
-- build a table so we can see if current/default settings map
-- to a known setting with a name (in option.toggle)
diff --git a/frontend/ui/data/strings.lua b/frontend/ui/data/strings.lua
index 04cce78e4..c4f790801 100644
--- a/frontend/ui/data/strings.lua
+++ b/frontend/ui/data/strings.lua
@@ -1,8 +1,9 @@
local _ = require("gettext")
+local C_ = _.pgettext
local S = {}
-S.SCREEN_MODE = _("Orientation")
+S.SCREEN_MODE = _("Rotation")
S.DUAL_PAGES = _("Dual Pages")
S.PAGE_CROP = _("Page Crop")
S.FULL_SCREEN = _("Full Screen")
@@ -77,8 +78,10 @@ S.HIGH = _("high")
S.ZERO_DEG = _("0 deg")
S.FIVE_DEG = _("5 deg")
S.TEN_DEG = _("10 deg")
-S.PORTRAIT = _("portrait")
-S.LANDSCAPE = _("landscape")
+S.PORTRAIT = C_("Rotation", "↑ 0°")
+S.LANDSCAPE = C_("Rotation", "⤸ 90°")
+S.PORTRAIT_ROTATED = C_("Rotation", "↓ 180°")
+S.LANDSCAPE_ROTATED = C_("Rotation", "⤹ 90°")
S.REGULAR = _("regular")
S.BOLD = _("bold")
S.VIEW_SCROLL = _("continuous")
diff --git a/frontend/ui/elements/common_settings_menu_table.lua b/frontend/ui/elements/common_settings_menu_table.lua
index 8311cc735..cdd29489b 100644
--- a/frontend/ui/elements/common_settings_menu_table.lua
+++ b/frontend/ui/elements/common_settings_menu_table.lua
@@ -180,6 +180,7 @@ NetworkMgr:getMenuTable(common_settings)
common_settings.screen = {
text = _("Screen"),
}
+common_settings.screen_rotation = require("ui/elements/screen_rotation_menu_table")
common_settings.screen_dpi = require("ui/elements/screen_dpi_menu_table")
common_settings.screen_eink_opt = require("ui/elements/screen_eink_opt_menu_table")
common_settings.menu_activate = require("ui/elements/menu_activate")
@@ -194,10 +195,6 @@ common_settings.ignore_hold_corners = {
end,
}
-if Device:canToggleGSensor() then
- common_settings.screen_toggle_gsensor = require("ui/elements/screen_toggle_gsensor")
-end
-
-- NOTE: Allow disabling color if it's mistakenly enabled on a Grayscale screen (after a settings import?)
if Screen:isColorEnabled() or Screen:isColorScreen() then
common_settings.color_rendering = require("ui/elements/screen_color_menu_table")
diff --git a/frontend/ui/elements/filemanager_menu_order.lua b/frontend/ui/elements/filemanager_menu_order.lua
index 05942a737..f7f9d76c8 100644
--- a/frontend/ui/elements/filemanager_menu_order.lua
+++ b/frontend/ui/elements/filemanager_menu_order.lua
@@ -72,12 +72,12 @@ local order = {
screen = {
"screensaver",
"----------------------------",
+ "screen_rotation",
+ "----------------------------",
"screen_dpi",
"screen_eink_opt",
"color_rendering",
"----------------------------",
- "screen_toggle_gsensor",
- "----------------------------",
"screen_timeout",
"fullscreen",
},
diff --git a/frontend/ui/elements/reader_menu_order.lua b/frontend/ui/elements/reader_menu_order.lua
index 3965a2790..d2e46fca9 100644
--- a/frontend/ui/elements/reader_menu_order.lua
+++ b/frontend/ui/elements/reader_menu_order.lua
@@ -93,12 +93,12 @@ local order = {
screen = {
"screensaver",
"----------------------------",
+ "screen_rotation",
+ "----------------------------",
"screen_dpi",
"screen_eink_opt",
"color_rendering",
"----------------------------",
- "screen_toggle_gsensor",
- "----------------------------",
"screen_timeout",
"fullscreen",
},
diff --git a/frontend/ui/elements/screen_rotation_menu_table.lua b/frontend/ui/elements/screen_rotation_menu_table.lua
new file mode 100644
index 000000000..65bb9e61f
--- /dev/null
+++ b/frontend/ui/elements/screen_rotation_menu_table.lua
@@ -0,0 +1,124 @@
+local _ = require("gettext")
+local Device = require("device")
+local Event = require("ui/event")
+local FileManager = require("apps/filemanager/filemanager")
+local UIManager = require("ui/uimanager")
+local Screen = Device.screen
+local S = require("ui/data/strings")
+
+return {
+ text = _("Rotation"),
+ sub_item_table_func = function()
+ local rotation_table = {}
+
+ if Device:canToggleGSensor() then
+ table.insert(rotation_table, {
+ text = _("Ignore accelerometer rotation events"),
+ checked_func = function()
+ return G_reader_settings:isTrue("input_ignore_gsensor")
+ end,
+ callback = function()
+ G_reader_settings:flipNilOrFalse("input_ignore_gsensor")
+ Device:toggleGSensor(not G_reader_settings:isTrue("input_ignore_gsensor"))
+ end,
+ })
+ end
+
+ table.insert(rotation_table, {
+ text = _("Keep file browser rotation"),
+ help_text = _("When checked the rotation of the file browser and the reader will not affect each other"),
+ checked_func = function()
+ return G_reader_settings:isTrue("lock_rotation")
+ end,
+ callback = function()
+ G_reader_settings:flipNilOrFalse("lock_rotation")
+ end,
+ separator = true,
+ })
+
+ if FileManager.instance then
+ table.insert(rotation_table, {
+ text_func = function()
+ local text = S.LANDSCAPE_ROTATED
+ if G_reader_settings:readSetting("fm_rotation_mode") == Screen.ORIENTATION_LANDSCAPE_ROTATED then
+ text = text .. " ★"
+ end
+ return text
+ end,
+ checked_func = function()
+ return Screen:getRotationMode() == Screen.ORIENTATION_LANDSCAPE_ROTATED
+ end,
+ callback = function(touchmenu_instance)
+ UIManager:broadcastEvent(Event:new("SetRotationMode", Screen.ORIENTATION_LANDSCAPE_ROTATED))
+ if touchmenu_instance then touchmenu_instance:closeMenu() end
+ end,
+ hold_callback = function(touchmenu_instance)
+ G_reader_settings:saveSetting("fm_rotation_mode", Screen.ORIENTATION_LANDSCAPE_ROTATED)
+ if touchmenu_instance then touchmenu_instance:updateItems() end
+ end,
+ })
+ table.insert(rotation_table, {
+ text_func = function()
+ local text = S.PORTRAIT
+ if G_reader_settings:readSetting("fm_rotation_mode") == Screen.ORIENTATION_PORTRAIT then
+ text = text .. " ★"
+ end
+ return text
+ end,
+ checked_func = function()
+ return Screen:getRotationMode() == Screen.ORIENTATION_PORTRAIT
+ end,
+ callback = function(touchmenu_instance)
+ UIManager:broadcastEvent(Event:new("SetRotationMode", Screen.ORIENTATION_PORTRAIT))
+ if touchmenu_instance then touchmenu_instance:closeMenu() end
+ end,
+ hold_callback = function(touchmenu_instance)
+ G_reader_settings:saveSetting("fm_rotation_mode", Screen.ORIENTATION_PORTRAIT)
+ if touchmenu_instance then touchmenu_instance:updateItems() end
+ end,
+ })
+ table.insert(rotation_table, {
+ text_func = function()
+ local text = S.LANDSCAPE
+ if G_reader_settings:readSetting("fm_rotation_mode") == Screen.ORIENTATION_LANDSCAPE then
+ text = text .. " ★"
+ end
+ return text
+ end,
+ checked_func = function()
+ return Screen:getRotationMode() == Screen.ORIENTATION_LANDSCAPE
+ end,
+ callback = function(touchmenu_instance)
+ UIManager:broadcastEvent(Event:new("SetRotationMode", Screen.ORIENTATION_LANDSCAPE))
+ if touchmenu_instance then touchmenu_instance:closeMenu() end
+ end,
+ hold_callback = function(touchmenu_instance)
+ G_reader_settings:saveSetting("fm_rotation_mode", Screen.ORIENTATION_LANDSCAPE)
+ if touchmenu_instance then touchmenu_instance:updateItems() end
+ end,
+ })
+ table.insert(rotation_table, {
+ text_func = function()
+ local text = S.PORTRAIT_ROTATED
+ if G_reader_settings:readSetting("fm_rotation_mode") == Screen.ORIENTATION_PORTRAIT_ROTATED then
+ text = text .. " ★"
+ end
+ return text
+ end,
+ checked_func = function()
+ return Screen:getRotationMode() == Screen.ORIENTATION_PORTRAIT_ROTATED
+ end,
+ callback = function(touchmenu_instance)
+ UIManager:broadcastEvent(Event:new("SetRotationMode", Screen.ORIENTATION_PORTRAIT_ROTATED))
+ if touchmenu_instance then touchmenu_instance:closeMenu() end
+ end,
+ hold_callback = function(touchmenu_instance)
+ G_reader_settings:saveSetting("fm_rotation_mode", Screen.ORIENTATION_PORTRAIT_ROTATED)
+ if touchmenu_instance then touchmenu_instance:updateItems() end
+ end,
+ })
+ end
+
+ return rotation_table
+ end,
+}
diff --git a/frontend/ui/elements/screen_toggle_gsensor.lua b/frontend/ui/elements/screen_toggle_gsensor.lua
deleted file mode 100644
index 92b978737..000000000
--- a/frontend/ui/elements/screen_toggle_gsensor.lua
+++ /dev/null
@@ -1,13 +0,0 @@
-local Device = require("device")
-local _ = require("gettext")
-
-return {
- text = _("Ignore accelerometer rotation events"),
- checked_func = function()
- return G_reader_settings:isTrue("input_ignore_gsensor")
- end,
- callback = function()
- G_reader_settings:flipNilOrFalse("input_ignore_gsensor")
- Device:toggleGSensor(not G_reader_settings:isTrue("input_ignore_gsensor"))
- end,
-}
diff --git a/spec/unit/evernote_plugin_main_spec.lua b/spec/unit/evernote_plugin_main_spec.lua
index d9288198e..4bdbe80ca 100644
--- a/spec/unit/evernote_plugin_main_spec.lua
+++ b/spec/unit/evernote_plugin_main_spec.lua
@@ -1,14 +1,16 @@
describe("Evernote plugin module", function()
local readerui, match
local sample_clippings, sample_epub
- local DocumentRegistry
+ local DocumentRegistry, Screen
setup(function()
require("commonrequire")
match = require("luassert.match")
local ReaderUI = require("apps/reader/readerui")
DocumentRegistry = require("document/documentregistry")
+ Screen = require("device").screen
sample_epub = "spec/front/unit/data/juliet.epub"
readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
diff --git a/spec/unit/readerbookmark_spec.lua b/spec/unit/readerbookmark_spec.lua
index a7c162192..c03583f22 100644
--- a/spec/unit/readerbookmark_spec.lua
+++ b/spec/unit/readerbookmark_spec.lua
@@ -48,6 +48,7 @@ describe("ReaderBookmark module", function()
setup(function()
DocSettings:open(sample_epub):purge()
readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
readerui.status.enabled = false
@@ -130,6 +131,7 @@ describe("ReaderBookmark module", function()
setup(function()
DocSettings:open(sample_pdf):purge()
readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
readerui.status.enabled = false
diff --git a/spec/unit/readerdictionary_spec.lua b/spec/unit/readerdictionary_spec.lua
index f60621558..c2f84a25f 100644
--- a/spec/unit/readerdictionary_spec.lua
+++ b/spec/unit/readerdictionary_spec.lua
@@ -13,6 +13,7 @@ describe("Readerdictionary module", function()
setup(function()
local sample_epub = "spec/front/unit/data/leaves.epub"
readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
rolling = readerui.rolling
diff --git a/spec/unit/readerfooter_spec.lua b/spec/unit/readerfooter_spec.lua
index d0910cdef..a9fb03bfc 100644
--- a/spec/unit/readerfooter_spec.lua
+++ b/spec/unit/readerfooter_spec.lua
@@ -70,6 +70,7 @@ describe("Readerfooter module", function()
os.remove(DocSettings:getHistoryPath(sample_pdf))
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
assert.is.same(true, readerui.view.footer_visible)
@@ -95,6 +96,7 @@ describe("Readerfooter module", function()
os.remove(DocSettings:getHistoryPath(sample_pdf))
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
assert.is.same(true, readerui.view.footer_visible)
@@ -112,6 +114,7 @@ describe("Readerfooter module", function()
cfg:flush()
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
assert.is.same(false, readerui.view.footer_visible)
@@ -128,6 +131,7 @@ describe("Readerfooter module", function()
cfg:flush()
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
assert.is.same(false, readerui.view.footer_visible)
@@ -144,6 +148,7 @@ describe("Readerfooter module", function()
cfg:flush()
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
assert.is.same(true, readerui.view.footer_visible)
@@ -156,6 +161,7 @@ describe("Readerfooter module", function()
os.remove(DocSettings:getHistoryPath(sample_epub))
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
local footer = readerui.view.footer
@@ -174,6 +180,7 @@ describe("Readerfooter module", function()
os.remove(DocSettings:getHistoryPath(sample_pdf))
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
local footer = readerui.view.footer
@@ -189,6 +196,7 @@ describe("Readerfooter module", function()
os.remove(DocSettings:getHistoryPath(sample_pdf))
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
local fake_menu = {setting = {}}
@@ -240,6 +248,7 @@ describe("Readerfooter module", function()
it("should rotate through different modes", function()
local sample_pdf = "spec/front/unit/data/2col.pdf"
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
local footer = readerui.view.footer
@@ -281,6 +290,7 @@ describe("Readerfooter module", function()
os.remove(DocSettings:getHistoryPath(sample_pdf))
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
local footer = readerui.view.footer
@@ -309,6 +319,7 @@ describe("Readerfooter module", function()
os.remove(DocSettings:getHistoryPath(sample_epub))
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
local footer = readerui.view.footer
@@ -331,6 +342,7 @@ describe("Readerfooter module", function()
})
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
local footer = readerui.view.footer
@@ -357,6 +369,7 @@ describe("Readerfooter module", function()
auto_refresh_time = true,
})
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
local footer = readerui.view.footer
@@ -391,6 +404,7 @@ describe("Readerfooter module", function()
auto_refresh_time = true,
})
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
local footer = readerui.view.footer
@@ -416,6 +430,7 @@ describe("Readerfooter module", function()
auto_refresh_time = true,
})
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
local footer = readerui.view.footer
@@ -469,6 +484,7 @@ describe("Readerfooter module", function()
time = true,
})
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
local footer = readerui.view.footer
@@ -508,6 +524,7 @@ describe("Readerfooter module", function()
pages_left = true,
})
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
local footer = readerui.view.footer
@@ -539,6 +556,7 @@ describe("Readerfooter module", function()
pages_left = true,
})
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf)
}
local footer = readerui.view.footer
@@ -557,6 +575,7 @@ describe("Readerfooter module", function()
assert.are.same({}, UIManager._task_queue)
G_reader_settings:saveSetting("footer", {})
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
local footer = readerui.view.footer
@@ -593,6 +612,7 @@ describe("Readerfooter module", function()
G_reader_settings:saveSetting("reader_footer_mode", 2)
G_reader_settings:saveSetting("footer", { time = true })
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
local footer = readerui.view.footer
@@ -611,6 +631,7 @@ describe("Readerfooter module", function()
G_reader_settings:saveSetting("reader_footer_mode", 1)
G_reader_settings:saveSetting("footer", {})
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
local footer = readerui.view.footer
@@ -629,6 +650,7 @@ describe("Readerfooter module", function()
G_reader_settings:saveSetting("reader_footer_mode", 1)
G_reader_settings:saveSetting("footer", {disable_progress_bar = true})
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
local footer = readerui.view.footer
@@ -645,6 +667,7 @@ describe("Readerfooter module", function()
G_reader_settings:saveSetting("footer", { disabled = true })
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
local footer = readerui.view.footer
@@ -657,6 +680,7 @@ describe("Readerfooter module", function()
it("should toggle between full and min progress bar for cre documents", function()
local sample_txt = "spec/front/unit/data/sample.txt"
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_txt),
}
local footer = readerui.view.footer
diff --git a/spec/unit/readerhighlight_spec.lua b/spec/unit/readerhighlight_spec.lua
index 32bc41b10..4f4f2a7dd 100644
--- a/spec/unit/readerhighlight_spec.lua
+++ b/spec/unit/readerhighlight_spec.lua
@@ -70,6 +70,7 @@ describe("Readerhighlight module", function()
setup(function()
local sample_epub = "spec/front/unit/data/juliet.epub"
readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
end)
@@ -111,6 +112,7 @@ describe("Readerhighlight module", function()
setup(function()
local sample_pdf = "spec/front/unit/data/sample.pdf"
readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
readerui:handleEvent(Event:new("SetScrollMode", false))
@@ -194,6 +196,7 @@ describe("Readerhighlight module", function()
setup(function()
local sample_pdf = "spec/front/unit/data/sample.pdf"
readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
readerui:handleEvent(Event:new("SetScrollMode", true))
diff --git a/spec/unit/readerlink_spec.lua b/spec/unit/readerlink_spec.lua
index 5d3889df9..28b36f6c3 100644
--- a/spec/unit/readerlink_spec.lua
+++ b/spec/unit/readerlink_spec.lua
@@ -1,5 +1,5 @@
describe("ReaderLink module", function()
- local DocumentRegistry, ReaderUI, UIManager, sample_epub, sample_pdf, Event
+ local DocumentRegistry, ReaderUI, UIManager, sample_epub, sample_pdf, Event, Screen
setup(function()
require("commonrequire")
@@ -9,12 +9,14 @@ describe("ReaderLink module", function()
Event = require("ui/event")
ReaderUI = require("apps/reader/readerui")
UIManager = require("ui/uimanager")
+ Screen = require("device").screen
sample_epub = "spec/front/unit/data/leaves.epub"
sample_pdf = "spec/front/unit/data/paper.pdf"
end)
it("should jump to links in epub #nocov", function()
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
readerui.rolling:onGotoPage(5)
@@ -25,6 +27,7 @@ describe("ReaderLink module", function()
it("should jump to links in pdf page mode", function()
UIManager:quit()
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
readerui:handleEvent(Event:new("SetScrollMode", false))
@@ -38,6 +41,7 @@ describe("ReaderLink module", function()
it("should jump to links in pdf scroll mode", function()
UIManager:quit()
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
readerui:handleEvent(Event:new("SetScrollMode", true))
@@ -54,6 +58,7 @@ describe("ReaderLink module", function()
it("should be able to go back after link jump in epub #nocov", function()
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
readerui.rolling:onGotoPage(5)
@@ -66,6 +71,7 @@ describe("ReaderLink module", function()
it("should be able to go back after link jump in pdf page mode", function()
UIManager:quit()
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
readerui:handleEvent(Event:new("SetScrollMode", false))
@@ -81,6 +87,7 @@ describe("ReaderLink module", function()
it("should be able to go back after link jump in pdf scroll mode", function()
UIManager:quit()
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
readerui:handleEvent(Event:new("SetScrollMode", true))
@@ -133,6 +140,7 @@ describe("ReaderLink module", function()
G_reader_settings:saveSetting("reader_footer_mode", 0)
require("docsettings"):open(sample_pdf):purge()
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
readerui:handleEvent(Event:new("SetZoomMode", "page"))
diff --git a/spec/unit/readerpaging_spec.lua b/spec/unit/readerpaging_spec.lua
index 881836403..c49185f9b 100644
--- a/spec/unit/readerpaging_spec.lua
+++ b/spec/unit/readerpaging_spec.lua
@@ -1,6 +1,6 @@
describe("Readerpaging module", function()
local sample_pdf = "spec/front/unit/data/sample.pdf"
- local readerui, UIManager, Event, DocumentRegistry, ReaderUI
+ local readerui, UIManager, Event, DocumentRegistry, ReaderUI, Screen
local paging
setup(function()
@@ -9,11 +9,13 @@ describe("Readerpaging module", function()
Event = require("ui/event")
DocumentRegistry = require("document/documentregistry")
ReaderUI = require("apps/reader/readerui")
+ Screen = require("device").screen
end)
describe("Page mode", function()
setup(function()
readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
paging = readerui.paging
@@ -46,6 +48,7 @@ describe("Readerpaging module", function()
os.remove(DocSettings:getHistoryPath(sample_pdf))
readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
paging = readerui.paging
@@ -74,6 +77,7 @@ describe("Readerpaging module", function()
it("should scroll backward on the first page without crash", function()
local sample_djvu = "spec/front/unit/data/djvu3spec.djvu"
local tmp_readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_djvu),
}
tmp_readerui.paging:onScrollPanRel(-100)
@@ -82,6 +86,7 @@ describe("Readerpaging module", function()
it("should scroll forward on the last page without crash", function()
local sample_djvu = "spec/front/unit/data/djvu3spec.djvu"
local tmp_readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_djvu),
}
paging = tmp_readerui.paging
diff --git a/spec/unit/readerrolling_spec.lua b/spec/unit/readerrolling_spec.lua
index f670ec337..47ba387c0 100644
--- a/spec/unit/readerrolling_spec.lua
+++ b/spec/unit/readerrolling_spec.lua
@@ -1,5 +1,5 @@
describe("Readerrolling module", function()
- local DocumentRegistry, ReaderUI, Event
+ local DocumentRegistry, ReaderUI, Event, Screen
local readerui, rolling
setup(function()
@@ -7,9 +7,11 @@ describe("Readerrolling module", function()
DocumentRegistry = require("document/documentregistry")
ReaderUI = require("apps/reader/readerui")
Event = require("ui/event")
+ Screen = require("device").screen
local sample_epub = "spec/front/unit/data/juliet.epub"
readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
rolling = readerui.rolling
@@ -17,7 +19,7 @@ describe("Readerrolling module", function()
describe("test in portrait screen mode", function()
it("should goto portrait screen mode", function()
- readerui:handleEvent(Event:new("ChangeScreenMode", "portrait"))
+ readerui:handleEvent(Event:new("SetRotationMode", Screen.ORIENTATION_PORTRAIT))
end)
it("should goto certain page", function()
@@ -79,6 +81,7 @@ describe("Readerrolling module", function()
it("should emit EndOfBook event at the end sample txt", function()
local sample_txt = "spec/front/unit/data/sample.txt"
local txt_readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_txt),
}
local called = false
@@ -108,7 +111,7 @@ describe("Readerrolling module", function()
describe("test in landscape screen mode", function()
it("should go to landscape screen mode", function()
- readerui:handleEvent(Event:new("ChangeScreenMode", "landscape"))
+ readerui:handleEvent(Event:new("SetRotationMode", Screen.ORIENTATION_LANDSCAPE))
end)
it("should goto certain page", function()
for i = 1, 10, 5 do
@@ -156,27 +159,27 @@ describe("Readerrolling module", function()
describe("switching screen mode should not change current page number", function()
teardown(function()
- readerui:handleEvent(Event:new("ChangeScreenMode", "portrait"))
+ readerui:handleEvent(Event:new("SetRotationMode", Screen.ORIENTATION_PORTRAIT))
end)
it("for portrait-landscape-portrait switching", function()
for i = 80, 100, 10 do
- readerui:handleEvent(Event:new("ChangeScreenMode", "portrait"))
+ readerui:handleEvent(Event:new("SetRotationMode", Screen.ORIENTATION_PORTRAIT))
rolling:onGotoPage(i)
assert.are.same(i, rolling.current_page)
- readerui:handleEvent(Event:new("ChangeScreenMode", "landscape"))
+ readerui:handleEvent(Event:new("SetRotationMode", Screen.ORIENTATION_LANDSCAPE))
assert.are_not.same(i, rolling.current_page)
- readerui:handleEvent(Event:new("ChangeScreenMode", "portrait"))
+ readerui:handleEvent(Event:new("SetRotationMode", Screen.ORIENTATION_PORTRAIT))
assert.are.same(i, rolling.current_page)
end
end)
it("for landscape-portrait-landscape switching", function()
for i = 110, 130, 10 do
- readerui:handleEvent(Event:new("ChangeScreenMode", "landscape"))
+ readerui:handleEvent(Event:new("SetRotationMode", Screen.ORIENTATION_LANDSCAPE))
rolling:onGotoPage(i)
assert.are.same(i, rolling.current_page)
- readerui:handleEvent(Event:new("ChangeScreenMode", "portrait"))
+ readerui:handleEvent(Event:new("SetRotationMode", Screen.ORIENTATION_PORTRAIT))
assert.are_not.same(i, rolling.current_page)
- readerui:handleEvent(Event:new("ChangeScreenMode", "landscape"))
+ readerui:handleEvent(Event:new("SetRotationMode", Screen.ORIENTATION_LANDSCAPE))
assert.are.same(i, rolling.current_page)
end
end)
@@ -184,14 +187,11 @@ describe("Readerrolling module", function()
describe("test changing word gap - space condensing", function()
it("should show pages for different word gap", function()
- readerui.document:setWordSpacing({100, 90})
- readerui:handleEvent(Event:new("ChangeScreenMode", "portrait"))
+ readerui:handleEvent(Event:new("SetWordSpacing", {100, 90}))
assert.are.same(252, readerui.document:getPageCount())
- readerui.document:setWordSpacing({95, 75})
- readerui:handleEvent(Event:new("ChangeScreenMode", "portrait"))
+ readerui:handleEvent(Event:new("SetWordSpacing", {95, 75}))
assert.are.same(241, readerui.document:getPageCount())
- readerui.document:setWordSpacing({75, 50})
- readerui:handleEvent(Event:new("ChangeScreenMode", "portrait"))
+ readerui:handleEvent(Event:new("SetWordSpacing", {75, 50}))
assert.are.same(231, readerui.document:getPageCount())
end)
end)
diff --git a/spec/unit/readersearch_spec.lua b/spec/unit/readersearch_spec.lua
index ef84edca5..aa31fcd58 100644
--- a/spec/unit/readersearch_spec.lua
+++ b/spec/unit/readersearch_spec.lua
@@ -1,12 +1,13 @@
describe("Readersearch module", function()
local sample_epub = "spec/front/unit/data/juliet.epub"
local sample_pdf = "spec/front/unit/data/sample.pdf"
- local DocumentRegistry, ReaderUI, dbg
+ local DocumentRegistry, ReaderUI, Screen, dbg
setup(function()
require("commonrequire")
DocumentRegistry = require("document/documentregistry")
ReaderUI = require("apps/reader/readerui")
+ Screen = require("device").screen
dbg = require("dbg")
end)
@@ -14,6 +15,7 @@ describe("Readersearch module", function()
local doc, search, rolling
setup(function()
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
doc = readerui.document
@@ -118,6 +120,7 @@ describe("Readersearch module", function()
local doc, search, paging
setup(function()
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
doc = readerui.document
diff --git a/spec/unit/readertoc_spec.lua b/spec/unit/readertoc_spec.lua
index 60b7ab507..aa839c356 100644
--- a/spec/unit/readertoc_spec.lua
+++ b/spec/unit/readertoc_spec.lua
@@ -1,15 +1,17 @@
describe("Readertoc module", function()
- local DocumentRegistry, ReaderUI, DEBUG
+ local DocumentRegistry, ReaderUI, Screen, DEBUG
local readerui, toc, toc_max_depth, title
setup(function()
require("commonrequire")
DocumentRegistry = require("document/documentregistry")
ReaderUI = require("apps/reader/readerui")
+ Screen = require("device").screen
DEBUG = require("dbg")
local sample_epub = "spec/front/unit/data/juliet.epub"
readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
-- reset book to first page
diff --git a/spec/unit/readerui_spec.lua b/spec/unit/readerui_spec.lua
index 3ce53eec1..f57a9e77a 100644
--- a/spec/unit/readerui_spec.lua
+++ b/spec/unit/readerui_spec.lua
@@ -1,5 +1,5 @@
describe("Readerui module", function()
- local DocumentRegistry, ReaderUI, DocSettings, UIManager
+ local DocumentRegistry, ReaderUI, DocSettings, UIManager, Screen
local sample_epub = "spec/front/unit/data/leaves.epub"
local readerui
setup(function()
@@ -8,8 +8,10 @@ describe("Readerui module", function()
ReaderUI = require("apps/reader/readerui")
DocSettings = require("docsettings")
UIManager = require("ui/uimanager")
+ Screen = require("device").screen
readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
end)
@@ -40,6 +42,7 @@ describe("Readerui module", function()
local new_readerui = ReaderUI:_getRunningInstance()
assert.is.truthy(new_readerui.document)
ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub)
}:onClose()
assert.is.truthy(new_readerui.document)
diff --git a/spec/unit/readerview_spec.lua b/spec/unit/readerview_spec.lua
index a7bfd6d7d..9495d118e 100644
--- a/spec/unit/readerview_spec.lua
+++ b/spec/unit/readerview_spec.lua
@@ -1,5 +1,5 @@
describe("Readerview module", function()
- local DocumentRegistry, Blitbuffer, ReaderUI, UIManager, Event
+ local DocumentRegistry, Blitbuffer, ReaderUI, UIManager, Event, Screen
setup(function()
require("commonrequire")
@@ -10,11 +10,13 @@ describe("Readerview module", function()
ReaderUI = require("apps/reader/readerui")
UIManager = require("ui/uimanager")
Event = require("ui/event")
+ Screen = require("device").screen
end)
it("should stop hinting on document close event", function()
local sample_epub = "spec/front/unit/data/leaves.epub"
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
for i = #UIManager._task_queue, 1, -1 do
@@ -52,6 +54,7 @@ describe("Readerview module", function()
G_reader_settings:saveSetting("reader_footer_mode", 0)
local sample_pdf = "spec/front/unit/data/2col.pdf"
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
readerui:handleEvent(Event:new("SetScrollMode", false))
@@ -103,6 +106,7 @@ describe("Readerview module", function()
G_reader_settings:saveSetting("reader_footer_mode", 0)
local sample_pdf = "spec/front/unit/data/2col.pdf"
local readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
readerui:handleEvent(Event:new("SetScrollMode", true))
diff --git a/spec/unit/screenshoter_spec.lua b/spec/unit/screenshoter_spec.lua
index 33ff15186..ce2d94b95 100644
--- a/spec/unit/screenshoter_spec.lua
+++ b/spec/unit/screenshoter_spec.lua
@@ -1,5 +1,5 @@
describe("ReaderScreenshot module", function()
- local DocumentRegistry, ReaderUI, lfs, UIManager, Event
+ local DocumentRegistry, ReaderUI, lfs, UIManager, Event, Screen
local sample_epub = "spec/front/unit/data/leaves.epub"
local readerui
setup(function()
@@ -9,19 +9,21 @@ describe("ReaderScreenshot module", function()
lfs = require("libs/libkoreader-lfs")
UIManager = require("ui/uimanager")
Event = require("ui/event")
+ Screen = require("device").screen
readerui = ReaderUI:new{
+ dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
end)
teardown(function()
- readerui:handleEvent(Event:new("ChangeScreenMode", "portrait"))
+ readerui:handleEvent(Event:new("SetRotationMode", Screen.ORIENTATION_PORTRAIT))
end)
it("should get screenshot in portrait", function()
local name = "screenshots/reader_screenshot_portrait.png"
- readerui:handleEvent(Event:new("ChangeScreenMode", "portrait"))
+ readerui:handleEvent(Event:new("SetRotationMode", Screen.ORIENTATION_PORTRAIT))
UIManager:quit()
UIManager:show(readerui)
UIManager:scheduleIn(1, function() UIManager:close(readerui) end)
@@ -33,7 +35,7 @@ describe("ReaderScreenshot module", function()
it("should get screenshot in landscape", function()
local name = "screenshots/reader_screenshot_landscape.png"
- readerui:handleEvent(Event:new("ChangeScreenMode", "landscape"))
+ readerui:handleEvent(Event:new("SetRotationMode", Screen.ORIENTATION_LANDSCAPE))
UIManager:quit()
UIManager:show(readerui)
UIManager:scheduleIn(2, function() UIManager:close(readerui) end)