diff --git a/frontend/apps/reader/readerui.lua b/frontend/apps/reader/readerui.lua index f85c7e61a..e3f1bf320 100644 --- a/frontend/apps/reader/readerui.lua +++ b/frontend/apps/reader/readerui.lua @@ -88,7 +88,7 @@ end function ReaderUI:init() -- cap screen refresh on pan to 2 refreshes per second - local pan_rate = Screen.eink and 2.0 or 30.0 + local pan_rate = Screen.low_pan_rate and 2.0 or 30.0 self.postInitCallback = {} self.postReaderCallback = {} diff --git a/frontend/device/generic/device.lua b/frontend/device/generic/device.lua index 547222d4c..3e9b2a3ea 100644 --- a/frontend/device/generic/device.lua +++ b/frontend/device/generic/device.lua @@ -77,8 +77,8 @@ function Device:init() self.screen.isBGRFrameBuffer = self.hasBGRFrameBuffer - local is_eink = G_reader_settings:readSetting("eink") - self.screen.eink = (is_eink == nil) or is_eink + local low_pan_rate = G_reader_settings:readSetting("low_pan_rate") + self.screen.low_pan_rate = (low_pan_rate == nil) or low_pan_rate logger.info("initializing for device", self.model) logger.info("framebuffer resolution:", self.screen:getSize()) diff --git a/frontend/ui/elements/common_settings_menu_table.lua b/frontend/ui/elements/common_settings_menu_table.lua index a45efd315..c2be27d2a 100644 --- a/frontend/ui/elements/common_settings_menu_table.lua +++ b/frontend/ui/elements/common_settings_menu_table.lua @@ -109,20 +109,18 @@ common_settings.screen = { text = _("Screen"), sub_item_table = { require("ui/elements/screen_dpi_menu_table"), - require("ui/elements/refresh_menu_table"), require("ui/elements/screen_eink_opt_menu_table"), require("ui/elements/menu_activate"), require("ui/elements/screen_disable_double_tap_table"), require("ui/elements/flash_ui"), require("ui/elements/flash_keyboard"), - require("ui/elements/avoid_flashing_ui"), }, } if Screen.isColorScreen() then - table.insert(common_settings.screen.sub_item_table, 4, require("ui/elements/screen_color_menu_table")) - common_settings.screen.sub_item_table[4].separator = true -else + table.insert(common_settings.screen.sub_item_table, 3, require("ui/elements/screen_color_menu_table")) common_settings.screen.sub_item_table[3].separator = true +else + common_settings.screen.sub_item_table[2].separator = true end if Device:isAndroid() then table.insert(common_settings.screen.sub_item_table, require("ui/elements/screen_fullscreen_menu_table")) diff --git a/frontend/ui/elements/refresh_menu_table.lua b/frontend/ui/elements/refresh_menu_table.lua index c33054216..6e104a324 100644 --- a/frontend/ui/elements/refresh_menu_table.lua +++ b/frontend/ui/elements/refresh_menu_table.lua @@ -22,7 +22,8 @@ local function custom_input(name) end return { - text = _("E-ink full refresh rate"), + text = _("Full refresh rate"), + separator = true, sub_item_table = { { text = _("Every page"), diff --git a/frontend/ui/elements/screen_eink_opt_menu_table.lua b/frontend/ui/elements/screen_eink_opt_menu_table.lua index 7ca068e83..aeaeb834d 100644 --- a/frontend/ui/elements/screen_eink_opt_menu_table.lua +++ b/frontend/ui/elements/screen_eink_opt_menu_table.lua @@ -2,10 +2,24 @@ local _ = require("gettext") local Screen = require("device").screen return { - text = _("E-ink optimization"), - checked_func = function() return Screen.eink end, - callback = function() - Screen.eink = not Screen.eink - G_reader_settings:saveSetting("eink", Screen.eink) - end, + text = _("E-ink settings"), + sub_item_table = { + require("ui/elements/refresh_menu_table"), + { + text = _("Use smaller panning rate"), + checked_func = function() return Screen.low_pan_rate end, + callback = function() + Screen.low_pan_rate = not Screen.low_pan_rate + G_reader_settings:saveSetting("low_pan_rate", Screen.low_pan_rate) + end, + }, + { + text = _("Avoid mandatory black flashes in UI"), + checked_func = function() return G_reader_settings:isTrue("avoid_flashing_ui") end, + callback = function() + G_reader_settings:flipNilOrFalse("avoid_flashing_ui") + end, + }, + + }, } diff --git a/spec/unit/eink_optimization_spec.lua b/spec/unit/eink_optimization_spec.lua index 891bdc5aa..aa66a9c69 100644 --- a/spec/unit/eink_optimization_spec.lua +++ b/spec/unit/eink_optimization_spec.lua @@ -4,7 +4,7 @@ describe("eink optimization setting", function() end) it("should be correctly loaded", function() - G_reader_settings:saveSetting("eink", true) - assert.Equals(require("device").screen.eink, true) + G_reader_settings:saveSetting("low_pan_rate", true) + assert.Equals(require("device").screen.low_pan_rate, true) end) end)