From 39b37bca6251eb6d9475a793d1603d5c739311b6 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Fri, 3 May 2024 23:01:46 +0100 Subject: [PATCH 01/56] hasPageUpDownKeys added --- frontend/device/generic/device.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/device/generic/device.lua b/frontend/device/generic/device.lua index a2f24426c1df..79b0e24b1406 100644 --- a/frontend/device/generic/device.lua +++ b/frontend/device/generic/device.lua @@ -41,6 +41,7 @@ local Device = { hasAuxBattery = no, hasKeyboard = no, hasKeys = no, + hasPageUpDownKeys = no, canKeyRepeat = no, hasDPad = no, hasExitOptions = yes, From ca49d82717ef07838521520473daee496e3f1e14 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Fri, 3 May 2024 23:07:16 +0100 Subject: [PATCH 02/56] hasPageUpDownKeys = yes for kindles --- frontend/device/kindle/device.lua | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/frontend/device/kindle/device.lua b/frontend/device/kindle/device.lua index f93bb17f74dd..ef2d1a6f5130 100644 --- a/frontend/device/kindle/device.lua +++ b/frontend/device/kindle/device.lua @@ -458,6 +458,7 @@ local Kindle2 = Kindle:extend{ isREAGL = no, hasKeyboard = yes, hasKeys = yes, + hasPageUpDownKeys = yes, hasDPad = yes, canHWInvert = no, canModifyFBInfo = no, @@ -471,6 +472,7 @@ local KindleDXG = Kindle:extend{ isREAGL = no, hasKeyboard = yes, hasKeys = yes, + hasPageUpDownKeys = yes, hasDPad = yes, canHWInvert = no, canModifyFBInfo = no, @@ -484,6 +486,7 @@ local Kindle3 = Kindle:extend{ isREAGL = no, hasKeyboard = yes, hasKeys = yes, + hasPageUpDownKeys = yes, hasDPad = yes, canHWInvert = no, canModifyFBInfo = no, @@ -495,6 +498,7 @@ local Kindle4 = Kindle:extend{ model = "Kindle4", isREAGL = no, hasKeys = yes, + hasPageUpDownKeys = yes, hasDPad = yes, canHWInvert = no, canModifyFBInfo = no, @@ -543,6 +547,7 @@ local KindleVoyage = Kindle:extend{ canTurnFrontlightOff = no, hasLightSensor = yes, hasKeys = yes, + hasPageUpDownKeys = yes, display_dpi = 300, touch_dev = "/dev/input/event1", } @@ -561,6 +566,7 @@ local KindleOasis = Kindle:extend{ isTouchDevice = yes, hasFrontlight = yes, hasKeys = yes, + hasPageUpDownKeys = yes, hasGSensor = yes, display_dpi = 300, --[[ @@ -579,6 +585,7 @@ local KindleOasis2 = Kindle:extend{ hasFrontlight = yes, hasLightSensor = yes, hasKeys = yes, + hasPageUpDownKeys = yes, hasGSensor = yes, display_dpi = 300, touch_dev = "/dev/input/by-path/platform-30a30000.i2c-event", @@ -593,6 +600,7 @@ local KindleOasis3 = Kindle:extend{ hasNaturalLightMixer = yes, hasLightSensor = yes, hasKeys = yes, + hasPageUpDownKeys = yes, hasGSensor = yes, display_dpi = 300, touch_dev = "/dev/input/by-path/platform-30a30000.i2c-event", From b87c59b2cb349f98d5df2310301a95acfcc2c72b Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Fri, 3 May 2024 23:19:03 +0100 Subject: [PATCH 03/56] Update readerrolling.lua --- .../apps/reader/modules/readerrolling.lua | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/frontend/apps/reader/modules/readerrolling.lua b/frontend/apps/reader/modules/readerrolling.lua index 205c72cff4f4..7ff38bccb62a 100644 --- a/frontend/apps/reader/modules/readerrolling.lua +++ b/frontend/apps/reader/modules/readerrolling.lua @@ -116,7 +116,18 @@ end function ReaderRolling:onGesture() end function ReaderRolling:registerKeyEvents() - if Device:hasKeys() then + if Device:hasPageUpDownKeys() and Device:hasDPad() then + self.key_events.GotoNextView = { + { { "RPgFwd", "LPgFwd" } }, + event = "GotoViewRel", + args = 1, + } + self.key_events.GotoPrevView = { + { { "RPgBack", "LPgBack" } }, + event = "GotoViewRel", + args = -1, + } + elseif Device:hasKeys() then self.key_events.GotoNextView = { { { "RPgFwd", "LPgFwd", "Right" } }, event = "GotoViewRel", @@ -128,7 +139,28 @@ function ReaderRolling:registerKeyEvents() args = -1, } end - if Device:hasDPad() then + if Device:hasDPad() and Device:hasPageUpDownKeys() then + self.key_events.MoveUp = { + { "Up" }, + event = "Panning", + args = {0, -1}, + } + self.key_events.MoveDown = { + { "Down" }, + event = "Panning", + args = {0, 1}, + } + self.key_events.GotoNextChapter = { + { "Right" }, + event = "GotoNextChapter", + args = 1, + } + self.key_events.GotoPrevChapter = { + { "Left" }, + event = "GotoPrevChapter", + args = -1, + } + elseif Device:hasDPad() then self.key_events.MoveUp = { { "Up" }, event = "Panning", From 93b2e27abe1079d1a1758f528851b61ce64dbbd6 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Fri, 3 May 2024 23:37:41 +0100 Subject: [PATCH 04/56] Update readerpaging.lua --- frontend/apps/reader/modules/readerpaging.lua | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/frontend/apps/reader/modules/readerpaging.lua b/frontend/apps/reader/modules/readerpaging.lua index 3bf67199e1a9..6e010ee7f2d8 100644 --- a/frontend/apps/reader/modules/readerpaging.lua +++ b/frontend/apps/reader/modules/readerpaging.lua @@ -51,7 +51,38 @@ end function ReaderPaging:onGesture() end function ReaderPaging:registerKeyEvents() - if Device:hasKeys() then + if Device:hasPageUpDownKeys() and Device:hasDPad() then + self.key_events.GotoNextPage = { + { { "RPgFwd", "LPgFwd" } }, + event = "GotoViewRel", + args = 1, + } + self.key_events.GotoPrevPage = { + { { "RPgBack", "LPgBack" } }, + event = "GotoViewRel", + args = -1, + } + self.key_events.GotoNextPos = { + { "Down" }, + event = "GotoPosRel", + args = 1, + } + self.key_events.GotoPrevPos = { + { "Up" }, + event = "GotoPosRel", + args = -1, + } + self.key_events.GotoNextChapter = { + { "Right" }, + event = "GotoNextChapter", + args = 1, + } + self.key_events.GotoPrevChapter = { + { "Left" }, + event = "GotoPrevChapter", + args = -1, + } + elseif Device:hasKeys() then self.key_events.GotoNextPage = { { { "RPgFwd", "LPgFwd", not Device:hasFewKeys() and "Right" } }, event = "GotoViewRel", From 0c10bd9e0c30354a7336558229f4bfa880e3c48d Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Sat, 4 May 2024 12:32:34 +0100 Subject: [PATCH 05/56] content selection mapped to up/down --- frontend/apps/reader/modules/readerrolling.lua | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/frontend/apps/reader/modules/readerrolling.lua b/frontend/apps/reader/modules/readerrolling.lua index 7ff38bccb62a..ae7b6daba98f 100644 --- a/frontend/apps/reader/modules/readerrolling.lua +++ b/frontend/apps/reader/modules/readerrolling.lua @@ -140,15 +140,9 @@ function ReaderRolling:registerKeyEvents() } end if Device:hasDPad() and Device:hasPageUpDownKeys() then - self.key_events.MoveUp = { - { "Up" }, - event = "Panning", - args = {0, -1}, - } - self.key_events.MoveDown = { - { "Down" }, - event = "Panning", - args = {0, 1}, + self.key_events.ContentSelection = { + { { "Up", "Down" } }, + event = "ContentSelection", } self.key_events.GotoNextChapter = { { "Right" }, @@ -812,6 +806,10 @@ function ReaderRolling:onGotoPrevChapter() return true end +function ReaderRolling:onContentSelection() + return self.ui.highlight:onStartHighlightIndicator() +end + function ReaderRolling:onNotCharging() self:updateBatteryState() end From dc0ba58ebf6d815331b4c684626e73da93c71925 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Sat, 4 May 2024 22:25:05 +0100 Subject: [PATCH 06/56] greppability fix --- frontend/apps/reader/modules/readerrolling.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/apps/reader/modules/readerrolling.lua b/frontend/apps/reader/modules/readerrolling.lua index ae7b6daba98f..bfed552fecda 100644 --- a/frontend/apps/reader/modules/readerrolling.lua +++ b/frontend/apps/reader/modules/readerrolling.lua @@ -139,7 +139,7 @@ function ReaderRolling:registerKeyEvents() args = -1, } end - if Device:hasDPad() and Device:hasPageUpDownKeys() then + if Device:hasPageUpDownKeys() and Device:hasDPad() then self.key_events.ContentSelection = { { { "Up", "Down" } }, event = "ContentSelection", From 9e84bc653ecae7fff991a59a568aa9e190c9546d Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Sun, 5 May 2024 00:37:17 +0100 Subject: [PATCH 07/56] readertoc mapped to "ScreenKB" key --- frontend/apps/reader/modules/readertoc.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/frontend/apps/reader/modules/readertoc.lua b/frontend/apps/reader/modules/readertoc.lua index a77619e4928f..40b4c67b3dc0 100644 --- a/frontend/apps/reader/modules/readertoc.lua +++ b/frontend/apps/reader/modules/readertoc.lua @@ -62,6 +62,8 @@ function ReaderToc:onGesture() end function ReaderToc:registerKeyEvents() if Device:hasKeyboard() then self.key_events.ShowToc = { { "T" } } + elseif Device:hasPageUpDownKeys() and Device:hasDPad() then + self.key_events.ShowToc = { { "ScreenKB" } } end end From 0a32a318d73163310dad490a5b45ac33e59f2137 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Tue, 14 May 2024 01:03:18 +0100 Subject: [PATCH 08/56] content selection adjustments to powerful (-ish) non-touch devices --- .../apps/reader/modules/readerhighlight.lua | 67 +++++++++++++++---- 1 file changed, 53 insertions(+), 14 deletions(-) diff --git a/frontend/apps/reader/modules/readerhighlight.lua b/frontend/apps/reader/modules/readerhighlight.lua index 77579c40111f..a2b6369aa27f 100644 --- a/frontend/apps/reader/modules/readerhighlight.lua +++ b/frontend/apps/reader/modules/readerhighlight.lua @@ -229,7 +229,16 @@ end function ReaderHighlight:onGesture() end function ReaderHighlight:registerKeyEvents() - if Device:hasKeys() then + if Device:hasDPad() then + self.key_events.StopHighlightIndicator = { { Device.input.group.Back }, args = true } -- true: clear highlight selection + self.key_events.UpHighlightIndicator = { { "Up" }, event = "MoveHighlightIndicator", args = {0, -1} } + self.key_events.DownHighlightIndicator = { { "Down" }, event = "MoveHighlightIndicator", args = {0, 1} } + -- let hasFewKeys device move the indicator left + self.key_events.LeftHighlightIndicator = { { "Left" }, event = "MoveHighlightIndicator", args = {-1, 0} } + self.key_events.RightHighlightIndicator = { { "Right" }, event = "MoveHighlightIndicator", args = {1, 0} } + self.key_events.HighlightPress = { { "Press" } } + end + if Device:hasKeyboard() then -- Used for text selection with dpad/keys local QUICK_INDICATOR_MOVE = true self.key_events.QuickUpHighlightIndicator = { { "Shift", "Up" }, event = "MoveHighlightIndicator", args = {0, -1, QUICK_INDICATOR_MOVE} } @@ -237,15 +246,12 @@ function ReaderHighlight:registerKeyEvents() self.key_events.QuickLeftHighlightIndicator = { { "Shift", "Left" }, event = "MoveHighlightIndicator", args = {-1, 0, QUICK_INDICATOR_MOVE} } self.key_events.QuickRightHighlightIndicator = { { "Shift", "Right" }, event = "MoveHighlightIndicator", args = {1, 0, QUICK_INDICATOR_MOVE} } self.key_events.StartHighlightIndicator = { { "H" } } - if Device:hasDPad() then - self.key_events.StopHighlightIndicator = { { Device.input.group.Back }, args = true } -- true: clear highlight selection - self.key_events.UpHighlightIndicator = { { "Up" }, event = "MoveHighlightIndicator", args = {0, -1} } - self.key_events.DownHighlightIndicator = { { "Down" }, event = "MoveHighlightIndicator", args = {0, 1} } - -- let hasFewKeys device move the indicator left - self.key_events.LeftHighlightIndicator = { { "Left" }, event = "MoveHighlightIndicator", args = {-1, 0} } - self.key_events.RightHighlightIndicator = { { "Right" }, event = "MoveHighlightIndicator", args = {1, 0} } - self.key_events.HighlightPress = { { "Press" } } - end + elseif Device:hasPageUpDownKeys() and Device:hasDPad() then + local QUICK_INDICATOR_MOVE = true + self.key_events.QuickUpHighlightIndicator = { { "ScreenKB", "Up" }, event = "MoveHighlightIndicator", args = {0, -1, QUICK_INDICATOR_MOVE} } + self.key_events.QuickDownHighlightIndicator = { { "ScreenKB", "Down" }, event = "MoveHighlightIndicator", args = {0, 1, QUICK_INDICATOR_MOVE} } + self.key_events.QuickLeftHighlightIndicator = { { "ScreenKB", "Left" }, event = "MoveHighlightIndicator", args = {-1, 0, QUICK_INDICATOR_MOVE} } + self.key_events.QuickRightHighlightIndicator = { { "ScreenKB", "Right" }, event = "MoveHighlightIndicator", args = {1, 0, QUICK_INDICATOR_MOVE} } end end @@ -588,6 +594,36 @@ Except when in two columns mode, where this is limited to showing only the previ self.allow_corner_scroll = G_reader_settings:nilOrTrue("highlight_corner_scroll") end, }) + -- we allow user to select the rate at which the content selection tool moves through screen + if not Device:isTouchDevice() and Device:hasDPad() then + table.insert(menu_items.long_press.sub_item_table, { + text_func = function() + return T(_("Rate of movement in content selection: %1"), G_reader_settings:readSetting("highlight_non_touch_factor", 4)) + end, + callback = function(touchmenu_instance) + local SpinWidget = require("ui/widget/spinwidget") + local curr_val = G_reader_settings:readSetting("highlight_non_touch_factor", 4) + local spin_widget = SpinWidget:new{ + value = curr_val, + value_min = 1, + value_max = 5, + precision = "%.2f", + value_step = 0.25, + value_hold_step = 0.25, + default_value = 4, + title_text = _("Rate of movement"), + info_text = _("Select a decimal value from 1 to 5, smaller values result in greater travel per keystroke."), + callback = function(spin) + G_reader_settings:saveSetting("highlight_non_touch_factor", spin.value) + self.view.highlight.non_touch_factor = spin.value + UIManager:setDirty(self.dialog, "ui") + if touchmenu_instance then touchmenu_instance:updateItems() end + end + } + UIManager:show(spin_widget) + end, + }) + end -- long_press menu is under taps_and_gestures menu which is not available for non touch device -- Clone long_press menu and change label making much meaning for non touch devices @@ -2170,8 +2206,8 @@ function ReaderHighlight:onMoveHighlightIndicator(args) local dx, dy, quick_move = unpack(args) local quick_move_distance_dx = self.view.visible_area.w * (1/5) -- quick move distance: fifth of visible_area local quick_move_distance_dy = self.view.visible_area.h * (1/5) - -- single move distance, small and capable to move on word with small font size and narrow line height - local move_distance = Size.item.height_default / 4 + -- single move distance, user adjustable, default value (4) capable to move on word with small font size and narrow line height + local move_distance = Size.item.height_default / G_reader_settings:readSetting("highlight_non_touch_factor") local rect = self._current_indicator_pos:copy() if quick_move then rect.x = rect.x + quick_move_distance_dx * dx @@ -2184,8 +2220,11 @@ function ReaderHighlight:onMoveHighlightIndicator(args) -- double press: 4 single move distances, usually move to next word or line -- triple press: 16 single distances, usually skip several words or lines -- quadruple press: 54 single distances, almost move to screen edge - if diff < time.s(1) then - move_distance = self._last_indicator_move_args.distance * 4 + if not ( Device:hasPageUpDownKeys() and Device:hasDPad() ) then + -- does not apply (for now..?) to newer (relatively) non-touch devices, i.e kindle 4 + if diff < time.s(1) then + move_distance = self._last_indicator_move_args.distance * 4 + end end end rect.x = rect.x + move_distance * dx From bef0b0180f30cc5067c55dea9dcf5612f2a06e30 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Tue, 14 May 2024 01:10:55 +0100 Subject: [PATCH 09/56] adjustment to ToC shortcut --- frontend/apps/reader/modules/readertoc.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/apps/reader/modules/readertoc.lua b/frontend/apps/reader/modules/readertoc.lua index 40b4c67b3dc0..33e41f39dd34 100644 --- a/frontend/apps/reader/modules/readertoc.lua +++ b/frontend/apps/reader/modules/readertoc.lua @@ -63,7 +63,7 @@ function ReaderToc:registerKeyEvents() if Device:hasKeyboard() then self.key_events.ShowToc = { { "T" } } elseif Device:hasPageUpDownKeys() and Device:hasDPad() then - self.key_events.ShowToc = { { "ScreenKB" } } + self.key_events.ShowToc = { { "ScreenKB", "Up" } } end end From f688ec4cf9498e928ab1a8c17346d2a5d19fd3be Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Tue, 14 May 2024 01:13:07 +0100 Subject: [PATCH 10/56] shortcut for bookmarks --- frontend/apps/reader/modules/readerbookmark.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/frontend/apps/reader/modules/readerbookmark.lua b/frontend/apps/reader/modules/readerbookmark.lua index 1f328e82d2b2..9e939c6f0911 100644 --- a/frontend/apps/reader/modules/readerbookmark.lua +++ b/frontend/apps/reader/modules/readerbookmark.lua @@ -61,6 +61,9 @@ function ReaderBookmark:onGesture() end function ReaderBookmark:registerKeyEvents() if Device:hasKeyboard() then self.key_events.ShowBookmark = { { "B" } } + elseif Device:hasPageUpDownKeys() and Device:hasDPad() then + self.key_events.ShowBookmark = { { "ScreenKB", "Left" } } + self.key_events.ToggleBookmark = { { "ScreenKB", "Right" } } end end From d22af656fbb1303ac7d45715292e56d0f2076c7d Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Tue, 14 May 2024 02:57:42 +0100 Subject: [PATCH 11/56] speed-up rate setting added --- .../apps/reader/modules/readerhighlight.lua | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/frontend/apps/reader/modules/readerhighlight.lua b/frontend/apps/reader/modules/readerhighlight.lua index a2b6369aa27f..2de5b932531a 100644 --- a/frontend/apps/reader/modules/readerhighlight.lua +++ b/frontend/apps/reader/modules/readerhighlight.lua @@ -214,6 +214,11 @@ function ReaderHighlight:init() } end) + -- default value for non-touch content selection speed-up rate + if G_reader_settings:hasNot("highlight_non_touch_spedup") then + G_reader_settings:makeTrue("highlight_non_touch_spedup") + end + self.ui:registerPostInitCallback(function() self.ui.menu:registerToMainMenu(self) end) @@ -581,6 +586,7 @@ function ReaderHighlight:addToMainMenu(menu_items) help_text = _([[ Auto-scroll to show part of the previous page when your text selection reaches the top left corner, or of the next page when it reaches the bottom right corner. Except when in two columns mode, where this is limited to showing only the previous or next column.]]), + separator = true, checked_func = function() if self.ui.paging then return false end return not self.view.highlight.disabled and G_reader_settings:nilOrTrue("highlight_corner_scroll") @@ -624,6 +630,20 @@ Except when in two columns mode, where this is limited to showing only the previ end, }) end + if not Device:isTouchDevice() and Device:hasDPad() then + table.insert(menu_items.long_press.sub_item_table, { + text = _("Speed-up rate on consecutive keystrokes"), + checked_func = function() + return G_reader_settings:isTrue("highlight_non_touch_spedup") + end, + enabled_func = function() + return not self.view.highlight.disabled + end, + callback = function() + G_reader_settings:toggle("highlight_non_touch_spedup") + end, + }) + end -- long_press menu is under taps_and_gestures menu which is not available for non touch device -- Clone long_press menu and change label making much meaning for non touch devices @@ -2216,12 +2236,12 @@ function ReaderHighlight:onMoveHighlightIndicator(args) local now = time:now() if dx == self._last_indicator_move_args.dx and dy == self._last_indicator_move_args.dy then local diff = now - self._last_indicator_move_args.time - -- if press same arrow key in 1 second, speed up + -- if user presses same arrow key within 1 second, speed up -- double press: 4 single move distances, usually move to next word or line -- triple press: 16 single distances, usually skip several words or lines -- quadruple press: 54 single distances, almost move to screen edge - if not ( Device:hasPageUpDownKeys() and Device:hasDPad() ) then - -- does not apply (for now..?) to newer (relatively) non-touch devices, i.e kindle 4 + if G_reader_settings:isTrue("highlight_non_touch_spedup") then + -- user selects whether to use 'constant' or [this] 'sped up' rate (speed-up on by default) if diff < time.s(1) then move_distance = self._last_indicator_move_args.distance * 4 end From d377a50cff4204896eb1d234fa54b3b454907adb Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Tue, 14 May 2024 13:01:45 +0100 Subject: [PATCH 12/56] nilOrTrue and fixes --- .../apps/reader/modules/readerhighlight.lua | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/frontend/apps/reader/modules/readerhighlight.lua b/frontend/apps/reader/modules/readerhighlight.lua index 2de5b932531a..5d7edf03bd7a 100644 --- a/frontend/apps/reader/modules/readerhighlight.lua +++ b/frontend/apps/reader/modules/readerhighlight.lua @@ -214,11 +214,6 @@ function ReaderHighlight:init() } end) - -- default value for non-touch content selection speed-up rate - if G_reader_settings:hasNot("highlight_non_touch_spedup") then - G_reader_settings:makeTrue("highlight_non_touch_spedup") - end - self.ui:registerPostInitCallback(function() self.ui.menu:registerToMainMenu(self) end) @@ -617,30 +612,27 @@ Except when in two columns mode, where this is limited to showing only the previ value_step = 0.25, value_hold_step = 0.25, default_value = 4, - title_text = _("Rate of movement"), + title_text = _("Rate of movement"), info_text = _("Select a decimal value from 1 to 5, smaller values result in greater travel per keystroke."), callback = function(spin) G_reader_settings:saveSetting("highlight_non_touch_factor", spin.value) self.view.highlight.non_touch_factor = spin.value - UIManager:setDirty(self.dialog, "ui") if touchmenu_instance then touchmenu_instance:updateItems() end end } UIManager:show(spin_widget) end, }) - end - if not Device:isTouchDevice() and Device:hasDPad() then table.insert(menu_items.long_press.sub_item_table, { - text = _("Speed-up rate on consecutive keystrokes"), + text = _("Speed-up rate on multiple keystrokes"), checked_func = function() - return G_reader_settings:isTrue("highlight_non_touch_spedup") + return G_reader_settings:nilOrTrue("highlight_non_touch_spedup") end, enabled_func = function() return not self.view.highlight.disabled end, callback = function() - G_reader_settings:toggle("highlight_non_touch_spedup") + G_reader_settings:flipNilOrTrue("highlight_non_touch_spedup") end, }) end @@ -2240,7 +2232,7 @@ function ReaderHighlight:onMoveHighlightIndicator(args) -- double press: 4 single move distances, usually move to next word or line -- triple press: 16 single distances, usually skip several words or lines -- quadruple press: 54 single distances, almost move to screen edge - if G_reader_settings:isTrue("highlight_non_touch_spedup") then + if G_reader_settings:nilOrTrue("highlight_non_touch_spedup") then -- user selects whether to use 'constant' or [this] 'sped up' rate (speed-up on by default) if diff < time.s(1) then move_distance = self._last_indicator_move_args.distance * 4 From dbcce600b998a7736e7c22bb2b76ddfb88cb061a Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Tue, 14 May 2024 23:19:59 +0100 Subject: [PATCH 13/56] useDPadAsExtraButtons introduced --- frontend/device/generic/device.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/frontend/device/generic/device.lua b/frontend/device/generic/device.lua index 79b0e24b1406..b5960d5f228f 100644 --- a/frontend/device/generic/device.lua +++ b/frontend/device/generic/device.lua @@ -44,6 +44,7 @@ local Device = { hasPageUpDownKeys = no, canKeyRepeat = no, hasDPad = no, + useDPadAsExtraButtons = no, hasExitOptions = yes, hasFewKeys = no, hasWifiToggle = yes, @@ -232,6 +233,10 @@ function Device:init() end end + if not Device:hasKeyboard() and Device:hasDPad() and Device:hasPageUpDownKeys() then + self.useDpadAsExtraButtons = yes + end + if self:hasGSensor() then -- Setup our standard gyro event handler (EV_MSC:MSC_GYRO) if G_reader_settings:nilOrFalse("input_ignore_gsensor") then From fbcd112fd3c1c2e4bf092cb3ccd5b4d861f42c90 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Tue, 14 May 2024 23:22:27 +0100 Subject: [PATCH 14/56] typo --- frontend/device/generic/device.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/device/generic/device.lua b/frontend/device/generic/device.lua index b5960d5f228f..2cf47ae73576 100644 --- a/frontend/device/generic/device.lua +++ b/frontend/device/generic/device.lua @@ -234,7 +234,7 @@ function Device:init() end if not Device:hasKeyboard() and Device:hasDPad() and Device:hasPageUpDownKeys() then - self.useDpadAsExtraButtons = yes + self.useDPadAsExtraButtons = yes end if self:hasGSensor() then From a49e04b51756f5b16a794dde24d1c6d8190da406 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Tue, 14 May 2024 23:30:15 +0100 Subject: [PATCH 15/56] if Device:useDPadAsExtraButtons() then --- frontend/apps/reader/modules/readerbookmark.lua | 2 +- frontend/apps/reader/modules/readerhighlight.lua | 2 +- frontend/apps/reader/modules/readerpaging.lua | 2 +- frontend/apps/reader/modules/readerrolling.lua | 4 ++-- frontend/apps/reader/modules/readertoc.lua | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/frontend/apps/reader/modules/readerbookmark.lua b/frontend/apps/reader/modules/readerbookmark.lua index 9e939c6f0911..87028a87abf8 100644 --- a/frontend/apps/reader/modules/readerbookmark.lua +++ b/frontend/apps/reader/modules/readerbookmark.lua @@ -61,7 +61,7 @@ function ReaderBookmark:onGesture() end function ReaderBookmark:registerKeyEvents() if Device:hasKeyboard() then self.key_events.ShowBookmark = { { "B" } } - elseif Device:hasPageUpDownKeys() and Device:hasDPad() then + elseif Device:useDPadAsExtraButtons() then self.key_events.ShowBookmark = { { "ScreenKB", "Left" } } self.key_events.ToggleBookmark = { { "ScreenKB", "Right" } } end diff --git a/frontend/apps/reader/modules/readerhighlight.lua b/frontend/apps/reader/modules/readerhighlight.lua index 5d7edf03bd7a..81387da27634 100644 --- a/frontend/apps/reader/modules/readerhighlight.lua +++ b/frontend/apps/reader/modules/readerhighlight.lua @@ -246,7 +246,7 @@ function ReaderHighlight:registerKeyEvents() self.key_events.QuickLeftHighlightIndicator = { { "Shift", "Left" }, event = "MoveHighlightIndicator", args = {-1, 0, QUICK_INDICATOR_MOVE} } self.key_events.QuickRightHighlightIndicator = { { "Shift", "Right" }, event = "MoveHighlightIndicator", args = {1, 0, QUICK_INDICATOR_MOVE} } self.key_events.StartHighlightIndicator = { { "H" } } - elseif Device:hasPageUpDownKeys() and Device:hasDPad() then + elseif Device:useDPadAsExtraButtons() then local QUICK_INDICATOR_MOVE = true self.key_events.QuickUpHighlightIndicator = { { "ScreenKB", "Up" }, event = "MoveHighlightIndicator", args = {0, -1, QUICK_INDICATOR_MOVE} } self.key_events.QuickDownHighlightIndicator = { { "ScreenKB", "Down" }, event = "MoveHighlightIndicator", args = {0, 1, QUICK_INDICATOR_MOVE} } diff --git a/frontend/apps/reader/modules/readerpaging.lua b/frontend/apps/reader/modules/readerpaging.lua index 6e010ee7f2d8..f8f55893a1be 100644 --- a/frontend/apps/reader/modules/readerpaging.lua +++ b/frontend/apps/reader/modules/readerpaging.lua @@ -51,7 +51,7 @@ end function ReaderPaging:onGesture() end function ReaderPaging:registerKeyEvents() - if Device:hasPageUpDownKeys() and Device:hasDPad() then + if Device:useDPadAsExtraButtons() then self.key_events.GotoNextPage = { { { "RPgFwd", "LPgFwd" } }, event = "GotoViewRel", diff --git a/frontend/apps/reader/modules/readerrolling.lua b/frontend/apps/reader/modules/readerrolling.lua index bfed552fecda..9a50bfcd2db0 100644 --- a/frontend/apps/reader/modules/readerrolling.lua +++ b/frontend/apps/reader/modules/readerrolling.lua @@ -116,7 +116,7 @@ end function ReaderRolling:onGesture() end function ReaderRolling:registerKeyEvents() - if Device:hasPageUpDownKeys() and Device:hasDPad() then + if Device:useDPadAsExtraButtons() then self.key_events.GotoNextView = { { { "RPgFwd", "LPgFwd" } }, event = "GotoViewRel", @@ -139,7 +139,7 @@ function ReaderRolling:registerKeyEvents() args = -1, } end - if Device:hasPageUpDownKeys() and Device:hasDPad() then + if Device:useDPadAsExtraButtons() then self.key_events.ContentSelection = { { { "Up", "Down" } }, event = "ContentSelection", diff --git a/frontend/apps/reader/modules/readertoc.lua b/frontend/apps/reader/modules/readertoc.lua index 33e41f39dd34..af298fff4b7f 100644 --- a/frontend/apps/reader/modules/readertoc.lua +++ b/frontend/apps/reader/modules/readertoc.lua @@ -62,7 +62,7 @@ function ReaderToc:onGesture() end function ReaderToc:registerKeyEvents() if Device:hasKeyboard() then self.key_events.ShowToc = { { "T" } } - elseif Device:hasPageUpDownKeys() and Device:hasDPad() then + elseif Device:useDPadAsExtraButtons() then self.key_events.ShowToc = { { "ScreenKB", "Up" } } end end From 358a4ec52755744751de6b130f7d2a148e51837a Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Tue, 14 May 2024 23:52:25 +0100 Subject: [PATCH 16/56] Update readerpaging dPad support --- frontend/apps/reader/modules/readerpaging.lua | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/frontend/apps/reader/modules/readerpaging.lua b/frontend/apps/reader/modules/readerpaging.lua index f8f55893a1be..a1bba67aaa53 100644 --- a/frontend/apps/reader/modules/readerpaging.lua +++ b/frontend/apps/reader/modules/readerpaging.lua @@ -52,26 +52,20 @@ function ReaderPaging:onGesture() end function ReaderPaging:registerKeyEvents() if Device:useDPadAsExtraButtons() then - self.key_events.GotoNextPage = { - { { "RPgFwd", "LPgFwd" } }, - event = "GotoViewRel", - args = 1, - } - self.key_events.GotoPrevPage = { - { { "RPgBack", "LPgBack" } }, - event = "GotoViewRel", - args = -1, - } self.key_events.GotoNextPos = { - { "Down" }, + { { "RPgFwd", "LPgFwd" } }, event = "GotoPosRel", args = 1, } self.key_events.GotoPrevPos = { - { "Up" }, + { { "RPgBack", "LPgBack" } }, event = "GotoPosRel", args = -1, } + self.key_events.ContentSelection = { + { { "Up", "Down" } }, + event = "ContentSelection", + } self.key_events.GotoNextChapter = { { "Right" }, event = "GotoNextChapter", @@ -82,6 +76,12 @@ function ReaderPaging:registerKeyEvents() event = "GotoPrevChapter", args = -1, } + --[[ upcoming + self.key_events.PrevDocument = { + { "ScreenKB", "Back" }, + event = "PrevDocument", + args = 0, + } ]] elseif Device:hasKeys() then self.key_events.GotoNextPage = { { { "RPgFwd", "LPgFwd", not Device:hasFewKeys() and "Right" } }, @@ -164,6 +164,10 @@ function ReaderPaging:onReaderReady() self:setupTouchZones() end +function ReaderPaging:onContentSelection() + return self.ui.highlight:onStartHighlightIndicator() +end + function ReaderPaging:setupTouchZones() if not Device:isTouchDevice() then return end @@ -233,6 +237,10 @@ function ReaderPaging:onSaveSettings() self.ui.doc_settings:saveSetting("flipping_scroll_mode", self.flipping_scroll_mode) end +function ReaderPaging:onPrevDocument() + return self.ui:onOpenLastDoc() +end + function ReaderPaging:getLastProgress() return self:getTopPage() end From 5780db6d242342e0013ef8806dee817519e7787b Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Tue, 14 May 2024 23:57:49 +0100 Subject: [PATCH 17/56] Update readerrolling dPad support --- frontend/apps/reader/modules/readerrolling.lua | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/frontend/apps/reader/modules/readerrolling.lua b/frontend/apps/reader/modules/readerrolling.lua index 9a50bfcd2db0..e8669db7b42b 100644 --- a/frontend/apps/reader/modules/readerrolling.lua +++ b/frontend/apps/reader/modules/readerrolling.lua @@ -154,6 +154,12 @@ function ReaderRolling:registerKeyEvents() event = "GotoPrevChapter", args = -1, } + --[[ upcoming + self.key_events.PrevDocument = { + { "ScreenKB", "Back" }, + event = "PrevDocument", + args = 0, + } ]] elseif Device:hasDPad() then self.key_events.MoveUp = { { "Up" }, @@ -376,6 +382,10 @@ function ReaderRolling:onCloseDocument() -- if namespaces ~= "" then logger.info("cre unknown namespaces: ", namespaces) end end +function ReaderRolling:onPrevDocument() + return self.ui:onOpenLastDoc() +end + function ReaderRolling:onCheckDomStyleCoherence() if self.ui.document and self.ui.document:isBuiltDomStale() then local has_bookmarks_warn_txt = "" From 8f2c7674581526d98137b9137ab7a78f7d28b465 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Wed, 15 May 2024 00:39:57 +0100 Subject: [PATCH 18/56] content selection, user adjustments added --- .../apps/reader/modules/readerhighlight.lua | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/frontend/apps/reader/modules/readerhighlight.lua b/frontend/apps/reader/modules/readerhighlight.lua index 81387da27634..f1be2d3fc7f2 100644 --- a/frontend/apps/reader/modules/readerhighlight.lua +++ b/frontend/apps/reader/modules/readerhighlight.lua @@ -635,6 +635,35 @@ Except when in two columns mode, where this is limited to showing only the previ G_reader_settings:flipNilOrTrue("highlight_non_touch_spedup") end, }) + table.insert(menu_items.long_press.sub_item_table, { + text_func = function() + return T(_("Interval to speed-up rate: %1 second(s)"), G_reader_settings:readSetting("highlight_non_touch_interval", 1)) + end, + enabled_func = function() + return not self.view.highlight.disabled and G_reader_settings:nilOrTrue("highlight_non_touch_spedup") + end, + callback = function(touchmenu_instance) + local SpinWidget = require("ui/widget/spinwidget") + local curr_val = G_reader_settings:readSetting("highlight_non_touch_interval", 1) + local spin_widget = SpinWidget:new{ + value = curr_val, + value_min = 0.1, + value_max = 1, + precision = "%.1f", + value_step = 0.1, + value_hold_step = 0.1, + default_value = 1, + title_text = _("Time interval"), + info_text = _("Select a decimal value up to 1 second. This is the period of time within which multiple keystrokes will speed-up rate of travel"), + callback = function(spin) + G_reader_settings:saveSetting("highlight_non_touch_interval", spin.value) + self.view.highlight.non_touch_factor = spin.value + if touchmenu_instance then touchmenu_instance:updateItems() end + end + } + UIManager:show(spin_widget) + end, + }) end -- long_press menu is under taps_and_gestures menu which is not available for non touch device @@ -2228,13 +2257,14 @@ function ReaderHighlight:onMoveHighlightIndicator(args) local now = time:now() if dx == self._last_indicator_move_args.dx and dy == self._last_indicator_move_args.dy then local diff = now - self._last_indicator_move_args.time - -- if user presses same arrow key within 1 second, speed up + -- if user presses same arrow key within 1 second (default, user adjustable), speed up -- double press: 4 single move distances, usually move to next word or line -- triple press: 16 single distances, usually skip several words or lines -- quadruple press: 54 single distances, almost move to screen edge if G_reader_settings:nilOrTrue("highlight_non_touch_spedup") then -- user selects whether to use 'constant' or [this] 'sped up' rate (speed-up on by default) - if diff < time.s(1) then + local x_inter = G_reader_settings:readSetting("highlight_non_touch_interval") + if diff < time.s( x_inter ) then move_distance = self._last_indicator_move_args.distance * 4 end end From 62c55e52b60dcb0239a3f1468f24708abad25b1c Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Wed, 15 May 2024 01:40:41 +0100 Subject: [PATCH 19/56] reverting changes --- frontend/apps/reader/modules/readerpaging.lua | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/frontend/apps/reader/modules/readerpaging.lua b/frontend/apps/reader/modules/readerpaging.lua index a1bba67aaa53..a0bae019a9fb 100644 --- a/frontend/apps/reader/modules/readerpaging.lua +++ b/frontend/apps/reader/modules/readerpaging.lua @@ -51,7 +51,8 @@ end function ReaderPaging:onGesture() end function ReaderPaging:registerKeyEvents() - if Device:useDPadAsExtraButtons() then + if Device:hasPageUpDownKeys() and Device:hasDPad() then + -- this targets all devices (kindles) non-touch with dPads (i.e dx, kk, k4 and others) self.key_events.GotoNextPos = { { { "RPgFwd", "LPgFwd" } }, event = "GotoPosRel", @@ -76,12 +77,6 @@ function ReaderPaging:registerKeyEvents() event = "GotoPrevChapter", args = -1, } - --[[ upcoming - self.key_events.PrevDocument = { - { "ScreenKB", "Back" }, - event = "PrevDocument", - args = 0, - } ]] elseif Device:hasKeys() then self.key_events.GotoNextPage = { { { "RPgFwd", "LPgFwd", not Device:hasFewKeys() and "Right" } }, @@ -104,6 +99,15 @@ function ReaderPaging:registerKeyEvents() args = -1, } end + --[[ upcoming + if Device:useDPadAsExtraButtons() then + -- targets exclusively kindle 4 + self.key_events.PrevDocument = { + { "ScreenKB", "Back" }, + event = "PrevDocument", + args = 0, + } + end ]] if Device:hasKeyboard() then self.key_events.GotoFirst = { { "1" }, From 6d3447d99012438f88b943a69e9fdae7a7ebffb3 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Wed, 15 May 2024 01:48:26 +0100 Subject: [PATCH 20/56] reverting changes --- .../apps/reader/modules/readerrolling.lua | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/frontend/apps/reader/modules/readerrolling.lua b/frontend/apps/reader/modules/readerrolling.lua index e8669db7b42b..67f63307b4de 100644 --- a/frontend/apps/reader/modules/readerrolling.lua +++ b/frontend/apps/reader/modules/readerrolling.lua @@ -116,7 +116,8 @@ end function ReaderRolling:onGesture() end function ReaderRolling:registerKeyEvents() - if Device:useDPadAsExtraButtons() then + if Device:hasPageUpDownKeys() and Device:hasDPad() then + -- targetting all non-touch kindles self.key_events.GotoNextView = { { { "RPgFwd", "LPgFwd" } }, event = "GotoViewRel", @@ -139,7 +140,7 @@ function ReaderRolling:registerKeyEvents() args = -1, } end - if Device:useDPadAsExtraButtons() then + if Device:hasPageUpDownKeys() and Device:hasDPad() then self.key_events.ContentSelection = { { { "Up", "Down" } }, event = "ContentSelection", @@ -154,12 +155,6 @@ function ReaderRolling:registerKeyEvents() event = "GotoPrevChapter", args = -1, } - --[[ upcoming - self.key_events.PrevDocument = { - { "ScreenKB", "Back" }, - event = "PrevDocument", - args = 0, - } ]] elseif Device:hasDPad() then self.key_events.MoveUp = { { "Up" }, @@ -172,6 +167,14 @@ function ReaderRolling:registerKeyEvents() args = {0, 1}, } end + --[[ upcoming + if Device:useDPadAsExtraButtons() then + self.key_events.PrevDocument = { + { "ScreenKB", "Back" }, + event = "PrevDocument", + args = 0, + } + end]] if Device:hasKeyboard() then self.key_events.GotoFirst = { { "1" }, From 357963284a57116fa02756d3d7daf5c9512d6627 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Wed, 15 May 2024 10:26:10 +0100 Subject: [PATCH 21/56] Apply suggestions from code review (hius07) slight adjustment to "text_func" and fix typo --- frontend/apps/reader/modules/readerhighlight.lua | 10 +++++----- frontend/apps/reader/modules/readerrolling.lua | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/frontend/apps/reader/modules/readerhighlight.lua b/frontend/apps/reader/modules/readerhighlight.lua index f1be2d3fc7f2..76f00b0f577a 100644 --- a/frontend/apps/reader/modules/readerhighlight.lua +++ b/frontend/apps/reader/modules/readerhighlight.lua @@ -610,13 +610,11 @@ Except when in two columns mode, where this is limited to showing only the previ value_max = 5, precision = "%.2f", value_step = 0.25, - value_hold_step = 0.25, default_value = 4, title_text = _("Rate of movement"), info_text = _("Select a decimal value from 1 to 5, smaller values result in greater travel per keystroke."), callback = function(spin) G_reader_settings:saveSetting("highlight_non_touch_factor", spin.value) - self.view.highlight.non_touch_factor = spin.value if touchmenu_instance then touchmenu_instance:updateItems() end end } @@ -637,7 +635,11 @@ Except when in two columns mode, where this is limited to showing only the previ }) table.insert(menu_items.long_press.sub_item_table, { text_func = function() - return T(_("Interval to speed-up rate: %1 second(s)"), G_reader_settings:readSetting("highlight_non_touch_interval", 1)) + if G_reader_settings:readSetting("highlight_non_touch_interval") == 1 then + return T(_("Interval to speed-up rate: %1 second"), G_reader_settings:readSetting("highlight_non_touch_interval", 1)) + else + return T(_("Interval to speed-up rate: %1 seconds"), G_reader_settings:readSetting("highlight_non_touch_interval", 1)) + end end, enabled_func = function() return not self.view.highlight.disabled and G_reader_settings:nilOrTrue("highlight_non_touch_spedup") @@ -651,13 +653,11 @@ Except when in two columns mode, where this is limited to showing only the previ value_max = 1, precision = "%.1f", value_step = 0.1, - value_hold_step = 0.1, default_value = 1, title_text = _("Time interval"), info_text = _("Select a decimal value up to 1 second. This is the period of time within which multiple keystrokes will speed-up rate of travel"), callback = function(spin) G_reader_settings:saveSetting("highlight_non_touch_interval", spin.value) - self.view.highlight.non_touch_factor = spin.value if touchmenu_instance then touchmenu_instance:updateItems() end end } diff --git a/frontend/apps/reader/modules/readerrolling.lua b/frontend/apps/reader/modules/readerrolling.lua index 67f63307b4de..98ddbe9c6962 100644 --- a/frontend/apps/reader/modules/readerrolling.lua +++ b/frontend/apps/reader/modules/readerrolling.lua @@ -117,7 +117,7 @@ function ReaderRolling:onGesture() end function ReaderRolling:registerKeyEvents() if Device:hasPageUpDownKeys() and Device:hasDPad() then - -- targetting all non-touch kindles + -- targetting all non-touch kindles self.key_events.GotoNextView = { { { "RPgFwd", "LPgFwd" } }, event = "GotoViewRel", From 74fc56e128bed6a5f416f261c249486768e3dfdc Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Wed, 15 May 2024 10:26:57 +0100 Subject: [PATCH 22/56] Update frontend/apps/reader/modules/readerhighlight.lua --- frontend/apps/reader/modules/readerhighlight.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/apps/reader/modules/readerhighlight.lua b/frontend/apps/reader/modules/readerhighlight.lua index 76f00b0f577a..68a9ed78fc3a 100644 --- a/frontend/apps/reader/modules/readerhighlight.lua +++ b/frontend/apps/reader/modules/readerhighlight.lua @@ -2260,7 +2260,7 @@ function ReaderHighlight:onMoveHighlightIndicator(args) -- if user presses same arrow key within 1 second (default, user adjustable), speed up -- double press: 4 single move distances, usually move to next word or line -- triple press: 16 single distances, usually skip several words or lines - -- quadruple press: 54 single distances, almost move to screen edge + -- quadruple press: 64 single distances, almost move to screen edge if G_reader_settings:nilOrTrue("highlight_non_touch_spedup") then -- user selects whether to use 'constant' or [this] 'sped up' rate (speed-up on by default) local x_inter = G_reader_settings:readSetting("highlight_non_touch_interval") From dc0e40150f48c2d1d116d9eb99f67b41b7aec107 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Wed, 15 May 2024 11:22:57 +0100 Subject: [PATCH 23/56] Apply suggestions from code review support for very large font sizes --- frontend/apps/reader/modules/readerhighlight.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/apps/reader/modules/readerhighlight.lua b/frontend/apps/reader/modules/readerhighlight.lua index 68a9ed78fc3a..aa1bd9d54e0c 100644 --- a/frontend/apps/reader/modules/readerhighlight.lua +++ b/frontend/apps/reader/modules/readerhighlight.lua @@ -606,13 +606,13 @@ Except when in two columns mode, where this is limited to showing only the previ local curr_val = G_reader_settings:readSetting("highlight_non_touch_factor", 4) local spin_widget = SpinWidget:new{ value = curr_val, - value_min = 1, + value_min = 0.25, value_max = 5, precision = "%.2f", value_step = 0.25, default_value = 4, title_text = _("Rate of movement"), - info_text = _("Select a decimal value from 1 to 5, smaller values result in greater travel per keystroke."), + info_text = _("Select a decimal value from 0.25 to 5, smaller values result in greater travel per keystroke. Font size and this value are inversely correlated, i.e smaller font size requires a larger value and vice versa."), callback = function(spin) G_reader_settings:saveSetting("highlight_non_touch_factor", spin.value) if touchmenu_instance then touchmenu_instance:updateItems() end From e8452b5aaaa3c46b1a549221d795b055eaa5356b Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Thu, 16 May 2024 00:57:25 +0100 Subject: [PATCH 24/56] Apply suggestions from review (hasFiveWay) --- frontend/apps/reader/modules/readerbookmark.lua | 2 +- frontend/apps/reader/modules/readerhighlight.lua | 2 +- frontend/apps/reader/modules/readerpaging.lua | 4 ++-- frontend/apps/reader/modules/readerrolling.lua | 6 +++--- frontend/apps/reader/modules/readertoc.lua | 2 +- frontend/device/generic/device.lua | 7 +------ frontend/device/kindle/device.lua | 12 ++++-------- 7 files changed, 13 insertions(+), 22 deletions(-) diff --git a/frontend/apps/reader/modules/readerbookmark.lua b/frontend/apps/reader/modules/readerbookmark.lua index 87028a87abf8..e793ea2c7bc4 100644 --- a/frontend/apps/reader/modules/readerbookmark.lua +++ b/frontend/apps/reader/modules/readerbookmark.lua @@ -61,7 +61,7 @@ function ReaderBookmark:onGesture() end function ReaderBookmark:registerKeyEvents() if Device:hasKeyboard() then self.key_events.ShowBookmark = { { "B" } } - elseif Device:useDPadAsExtraButtons() then + elseif Device:hasFiveWay() then self.key_events.ShowBookmark = { { "ScreenKB", "Left" } } self.key_events.ToggleBookmark = { { "ScreenKB", "Right" } } end diff --git a/frontend/apps/reader/modules/readerhighlight.lua b/frontend/apps/reader/modules/readerhighlight.lua index aa1bd9d54e0c..0b4b7566ce90 100644 --- a/frontend/apps/reader/modules/readerhighlight.lua +++ b/frontend/apps/reader/modules/readerhighlight.lua @@ -246,7 +246,7 @@ function ReaderHighlight:registerKeyEvents() self.key_events.QuickLeftHighlightIndicator = { { "Shift", "Left" }, event = "MoveHighlightIndicator", args = {-1, 0, QUICK_INDICATOR_MOVE} } self.key_events.QuickRightHighlightIndicator = { { "Shift", "Right" }, event = "MoveHighlightIndicator", args = {1, 0, QUICK_INDICATOR_MOVE} } self.key_events.StartHighlightIndicator = { { "H" } } - elseif Device:useDPadAsExtraButtons() then + elseif Device:hasFiveWay() then local QUICK_INDICATOR_MOVE = true self.key_events.QuickUpHighlightIndicator = { { "ScreenKB", "Up" }, event = "MoveHighlightIndicator", args = {0, -1, QUICK_INDICATOR_MOVE} } self.key_events.QuickDownHighlightIndicator = { { "ScreenKB", "Down" }, event = "MoveHighlightIndicator", args = {0, 1, QUICK_INDICATOR_MOVE} } diff --git a/frontend/apps/reader/modules/readerpaging.lua b/frontend/apps/reader/modules/readerpaging.lua index a0bae019a9fb..4619a98acbca 100644 --- a/frontend/apps/reader/modules/readerpaging.lua +++ b/frontend/apps/reader/modules/readerpaging.lua @@ -51,7 +51,7 @@ end function ReaderPaging:onGesture() end function ReaderPaging:registerKeyEvents() - if Device:hasPageUpDownKeys() and Device:hasDPad() then + if Device:hasFiveWay() then -- this targets all devices (kindles) non-touch with dPads (i.e dx, kk, k4 and others) self.key_events.GotoNextPos = { { { "RPgFwd", "LPgFwd" } }, @@ -100,7 +100,7 @@ function ReaderPaging:registerKeyEvents() } end --[[ upcoming - if Device:useDPadAsExtraButtons() then + if Device:hasFiveWay() and not Device:hasKeyboard() then -- targets exclusively kindle 4 self.key_events.PrevDocument = { { "ScreenKB", "Back" }, diff --git a/frontend/apps/reader/modules/readerrolling.lua b/frontend/apps/reader/modules/readerrolling.lua index 98ddbe9c6962..9034dff94545 100644 --- a/frontend/apps/reader/modules/readerrolling.lua +++ b/frontend/apps/reader/modules/readerrolling.lua @@ -116,7 +116,7 @@ end function ReaderRolling:onGesture() end function ReaderRolling:registerKeyEvents() - if Device:hasPageUpDownKeys() and Device:hasDPad() then + if Device:hasFiveWay() then -- targetting all non-touch kindles self.key_events.GotoNextView = { { { "RPgFwd", "LPgFwd" } }, @@ -140,7 +140,7 @@ function ReaderRolling:registerKeyEvents() args = -1, } end - if Device:hasPageUpDownKeys() and Device:hasDPad() then + if Device:hasFiveWay() then self.key_events.ContentSelection = { { { "Up", "Down" } }, event = "ContentSelection", @@ -168,7 +168,7 @@ function ReaderRolling:registerKeyEvents() } end --[[ upcoming - if Device:useDPadAsExtraButtons() then + if Device:hasFiveWay() and not Device:hasKeyboard() then self.key_events.PrevDocument = { { "ScreenKB", "Back" }, event = "PrevDocument", diff --git a/frontend/apps/reader/modules/readertoc.lua b/frontend/apps/reader/modules/readertoc.lua index af298fff4b7f..be01701ce07c 100644 --- a/frontend/apps/reader/modules/readertoc.lua +++ b/frontend/apps/reader/modules/readertoc.lua @@ -62,7 +62,7 @@ function ReaderToc:onGesture() end function ReaderToc:registerKeyEvents() if Device:hasKeyboard() then self.key_events.ShowToc = { { "T" } } - elseif Device:useDPadAsExtraButtons() then + elseif Device:hasFiveWay() then self.key_events.ShowToc = { { "ScreenKB", "Up" } } end end diff --git a/frontend/device/generic/device.lua b/frontend/device/generic/device.lua index 2cf47ae73576..4a0137f2a7f2 100644 --- a/frontend/device/generic/device.lua +++ b/frontend/device/generic/device.lua @@ -41,10 +41,9 @@ local Device = { hasAuxBattery = no, hasKeyboard = no, hasKeys = no, - hasPageUpDownKeys = no, + hasFiveWay = no, canKeyRepeat = no, hasDPad = no, - useDPadAsExtraButtons = no, hasExitOptions = yes, hasFewKeys = no, hasWifiToggle = yes, @@ -233,10 +232,6 @@ function Device:init() end end - if not Device:hasKeyboard() and Device:hasDPad() and Device:hasPageUpDownKeys() then - self.useDPadAsExtraButtons = yes - end - if self:hasGSensor() then -- Setup our standard gyro event handler (EV_MSC:MSC_GYRO) if G_reader_settings:nilOrFalse("input_ignore_gsensor") then diff --git a/frontend/device/kindle/device.lua b/frontend/device/kindle/device.lua index ef2d1a6f5130..2ac7baf2066b 100644 --- a/frontend/device/kindle/device.lua +++ b/frontend/device/kindle/device.lua @@ -458,7 +458,7 @@ local Kindle2 = Kindle:extend{ isREAGL = no, hasKeyboard = yes, hasKeys = yes, - hasPageUpDownKeys = yes, + hasFiveWay = yes, hasDPad = yes, canHWInvert = no, canModifyFBInfo = no, @@ -472,7 +472,7 @@ local KindleDXG = Kindle:extend{ isREAGL = no, hasKeyboard = yes, hasKeys = yes, - hasPageUpDownKeys = yes, + hasFiveWay = yes, hasDPad = yes, canHWInvert = no, canModifyFBInfo = no, @@ -486,7 +486,7 @@ local Kindle3 = Kindle:extend{ isREAGL = no, hasKeyboard = yes, hasKeys = yes, - hasPageUpDownKeys = yes, + hasFiveWay = yes, hasDPad = yes, canHWInvert = no, canModifyFBInfo = no, @@ -498,7 +498,7 @@ local Kindle4 = Kindle:extend{ model = "Kindle4", isREAGL = no, hasKeys = yes, - hasPageUpDownKeys = yes, + hasFiveWay = yes, hasDPad = yes, canHWInvert = no, canModifyFBInfo = no, @@ -547,7 +547,6 @@ local KindleVoyage = Kindle:extend{ canTurnFrontlightOff = no, hasLightSensor = yes, hasKeys = yes, - hasPageUpDownKeys = yes, display_dpi = 300, touch_dev = "/dev/input/event1", } @@ -566,7 +565,6 @@ local KindleOasis = Kindle:extend{ isTouchDevice = yes, hasFrontlight = yes, hasKeys = yes, - hasPageUpDownKeys = yes, hasGSensor = yes, display_dpi = 300, --[[ @@ -585,7 +583,6 @@ local KindleOasis2 = Kindle:extend{ hasFrontlight = yes, hasLightSensor = yes, hasKeys = yes, - hasPageUpDownKeys = yes, hasGSensor = yes, display_dpi = 300, touch_dev = "/dev/input/by-path/platform-30a30000.i2c-event", @@ -600,7 +597,6 @@ local KindleOasis3 = Kindle:extend{ hasNaturalLightMixer = yes, hasLightSensor = yes, hasKeys = yes, - hasPageUpDownKeys = yes, hasGSensor = yes, display_dpi = 300, touch_dev = "/dev/input/by-path/platform-30a30000.i2c-event", From 281f1bd28d6e0336d6210db144e4edb10b2fec1d Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Thu, 16 May 2024 11:11:56 +0100 Subject: [PATCH 25/56] Update Frenzie's suggestion to remove comment Co-authored-by: Frans de Jonge --- frontend/apps/reader/modules/readerrolling.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/apps/reader/modules/readerrolling.lua b/frontend/apps/reader/modules/readerrolling.lua index 9034dff94545..bc2a0d5de86b 100644 --- a/frontend/apps/reader/modules/readerrolling.lua +++ b/frontend/apps/reader/modules/readerrolling.lua @@ -117,7 +117,6 @@ function ReaderRolling:onGesture() end function ReaderRolling:registerKeyEvents() if Device:hasFiveWay() then - -- targetting all non-touch kindles self.key_events.GotoNextView = { { { "RPgFwd", "LPgFwd" } }, event = "GotoViewRel", From 8939045daaed6bfbe9d69658a0da28b5d7cc1323 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Thu, 16 May 2024 11:39:33 +0100 Subject: [PATCH 26/56] Apply suggestions from Frenzie's code review Co-authored-by: Frans de Jonge --- frontend/apps/reader/modules/readerhighlight.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/apps/reader/modules/readerhighlight.lua b/frontend/apps/reader/modules/readerhighlight.lua index 0b4b7566ce90..5ec7b5df1d17 100644 --- a/frontend/apps/reader/modules/readerhighlight.lua +++ b/frontend/apps/reader/modules/readerhighlight.lua @@ -612,7 +612,7 @@ Except when in two columns mode, where this is limited to showing only the previ value_step = 0.25, default_value = 4, title_text = _("Rate of movement"), - info_text = _("Select a decimal value from 0.25 to 5, smaller values result in greater travel per keystroke. Font size and this value are inversely correlated, i.e smaller font size requires a larger value and vice versa."), + info_text = _("Select a decimal value from 0.25 to 5. A smaller value results in a larger travel distance per keystroke. Font size and this value are inversely correlated, meaning a smaller font size requires a larger value and vice versa."), callback = function(spin) G_reader_settings:saveSetting("highlight_non_touch_factor", spin.value) if touchmenu_instance then touchmenu_instance:updateItems() end @@ -655,7 +655,7 @@ Except when in two columns mode, where this is limited to showing only the previ value_step = 0.1, default_value = 1, title_text = _("Time interval"), - info_text = _("Select a decimal value up to 1 second. This is the period of time within which multiple keystrokes will speed-up rate of travel"), + info_text = _("Select a decimal value up to 1 second. This is the period of time within which multiple keystrokes will speed-up rate of travel."), callback = function(spin) G_reader_settings:saveSetting("highlight_non_touch_interval", spin.value) if touchmenu_instance then touchmenu_instance:updateItems() end From 515fb0468af37c1d5166568f7d90bb7b4b4e8eeb Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Fri, 17 May 2024 01:17:23 +0100 Subject: [PATCH 27/56] panning is back: ScreenKB + PgTurner --- .../apps/reader/modules/readerrolling.lua | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/frontend/apps/reader/modules/readerrolling.lua b/frontend/apps/reader/modules/readerrolling.lua index bc2a0d5de86b..f14ba3bbb30f 100644 --- a/frontend/apps/reader/modules/readerrolling.lua +++ b/frontend/apps/reader/modules/readerrolling.lua @@ -127,6 +127,18 @@ function ReaderRolling:registerKeyEvents() event = "GotoViewRel", args = -1, } + if Device:hasKeyboard() then + self.key_events.MoveUp = { + { "Shift", { "RPgBack", "LPgBack" } }, + event = "Panning", + args = {0, -1}, + } + self.key_events.MoveDown = { + { "Shift", { "RPgFwd", "LPgFwd" } }, + event = "Panning", + args = {0, 1}, + } + end elseif Device:hasKeys() then self.key_events.GotoNextView = { { { "RPgFwd", "LPgFwd", "Right" } }, @@ -166,14 +178,25 @@ function ReaderRolling:registerKeyEvents() args = {0, 1}, } end - --[[ upcoming + if Device:hasFiveWay() and not Device:hasKeyboard() then + --[[ upcoming self.key_events.PrevDocument = { { "ScreenKB", "Back" }, event = "PrevDocument", args = 0, + } ]] + self.key_events.MoveUp = { + { "ScreenKB", { "RPgBack", "LPgBack" } }, + event = "Panning", + args = {0, -1}, } - end]] + self.key_events.MoveDown = { + { "ScreenKB", { "RPgFwd", "LPgFwd" } }, + event = "Panning", + args = {0, 1}, + } + end if Device:hasKeyboard() then self.key_events.GotoFirst = { { "1" }, From 8bd68d06ceb0d518bcf973e173a4f3d9ce9a9947 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Fri, 17 May 2024 21:22:28 +0100 Subject: [PATCH 28/56] stop docswitch input inhibition from eating release -- Nothing to see, move along! --- frontend/device/input.lua | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/frontend/device/input.lua b/frontend/device/input.lua index 0f84c3c6918e..bb08ad0ed905 100644 --- a/frontend/device/input.lua +++ b/frontend/device/input.lua @@ -732,6 +732,16 @@ function Input:handlePowerManagementOnlyEv(ev) end end + -- Make sure we don't leave modifiers in an inconsistent state + if self.modifiers[keycode] ~= nil then + if ev.value == KEY_PRESS then + self.modifiers[keycode] = true + elseif ev.value == KEY_RELEASE then + self.modifiers[keycode] = false + end + return + end + -- Nothing to see, move along! return end From 456fdd2e2c09de9b39d6977c70ce69b3a6230558 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Fri, 17 May 2024 21:29:25 +0100 Subject: [PATCH 29/56] open last doc goes live --- frontend/apps/reader/modules/readerpaging.lua | 3 +-- frontend/apps/reader/modules/readerrolling.lua | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/frontend/apps/reader/modules/readerpaging.lua b/frontend/apps/reader/modules/readerpaging.lua index 4619a98acbca..fbc9bd353287 100644 --- a/frontend/apps/reader/modules/readerpaging.lua +++ b/frontend/apps/reader/modules/readerpaging.lua @@ -99,7 +99,6 @@ function ReaderPaging:registerKeyEvents() args = -1, } end - --[[ upcoming if Device:hasFiveWay() and not Device:hasKeyboard() then -- targets exclusively kindle 4 self.key_events.PrevDocument = { @@ -107,7 +106,7 @@ function ReaderPaging:registerKeyEvents() event = "PrevDocument", args = 0, } - end ]] + end if Device:hasKeyboard() then self.key_events.GotoFirst = { { "1" }, diff --git a/frontend/apps/reader/modules/readerrolling.lua b/frontend/apps/reader/modules/readerrolling.lua index f14ba3bbb30f..1a65f2bf6778 100644 --- a/frontend/apps/reader/modules/readerrolling.lua +++ b/frontend/apps/reader/modules/readerrolling.lua @@ -180,12 +180,11 @@ function ReaderRolling:registerKeyEvents() end if Device:hasFiveWay() and not Device:hasKeyboard() then - --[[ upcoming self.key_events.PrevDocument = { { "ScreenKB", "Back" }, event = "PrevDocument", args = 0, - } ]] + } self.key_events.MoveUp = { { "ScreenKB", { "RPgBack", "LPgBack" } }, event = "Panning", From 36e3a9473e59074db9497f022c329f5260e319ea Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Fri, 17 May 2024 22:48:59 +0100 Subject: [PATCH 30/56] remove args --- frontend/apps/reader/modules/readerpaging.lua | 1 - frontend/apps/reader/modules/readerrolling.lua | 1 - 2 files changed, 2 deletions(-) diff --git a/frontend/apps/reader/modules/readerpaging.lua b/frontend/apps/reader/modules/readerpaging.lua index fbc9bd353287..30fd7296f208 100644 --- a/frontend/apps/reader/modules/readerpaging.lua +++ b/frontend/apps/reader/modules/readerpaging.lua @@ -104,7 +104,6 @@ function ReaderPaging:registerKeyEvents() self.key_events.PrevDocument = { { "ScreenKB", "Back" }, event = "PrevDocument", - args = 0, } end if Device:hasKeyboard() then diff --git a/frontend/apps/reader/modules/readerrolling.lua b/frontend/apps/reader/modules/readerrolling.lua index 1a65f2bf6778..2081a794ed6b 100644 --- a/frontend/apps/reader/modules/readerrolling.lua +++ b/frontend/apps/reader/modules/readerrolling.lua @@ -183,7 +183,6 @@ function ReaderRolling:registerKeyEvents() self.key_events.PrevDocument = { { "ScreenKB", "Back" }, event = "PrevDocument", - args = 0, } self.key_events.MoveUp = { { "ScreenKB", { "RPgBack", "LPgBack" } }, From dc39874ea02629833dc4ca1452ca1335fc322ef5 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Sat, 18 May 2024 01:42:15 +0100 Subject: [PATCH 31/56] content selection removed from menu (kindle only) --- frontend/apps/reader/modules/readerhighlight.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/apps/reader/modules/readerhighlight.lua b/frontend/apps/reader/modules/readerhighlight.lua index 5ec7b5df1d17..42801aa7d63a 100644 --- a/frontend/apps/reader/modules/readerhighlight.lua +++ b/frontend/apps/reader/modules/readerhighlight.lua @@ -373,7 +373,7 @@ local highlight_dialog_position = { function ReaderHighlight:addToMainMenu(menu_items) -- insert table to main reader menu - if not Device:isTouchDevice() and Device:hasDPad() then + if not Device:isTouchDevice() and Device:hasDPad() and not Device:hasFiveWay() then menu_items.start_content_selection = { text = _("Start content selection"), callback = function() From 4d20bcc31c3d976a10cabbea3c4e87111c08a747 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Sat, 18 May 2024 13:56:41 +0100 Subject: [PATCH 32/56] AddCurrentLocationToStack --- frontend/apps/reader/modules/readerlink.lua | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/frontend/apps/reader/modules/readerlink.lua b/frontend/apps/reader/modules/readerlink.lua index 88ce4b29ffac..4886d841afb5 100644 --- a/frontend/apps/reader/modules/readerlink.lua +++ b/frontend/apps/reader/modules/readerlink.lua @@ -247,6 +247,13 @@ function ReaderLink:registerKeyEvents() -- when G_reader_settings:readSetting("back_in_reader") == "previous_location" } end + if Device:isKindle() then + if Device:hasKeyboard() then + self.key_events.AddCurrentLocationToStack = { { "Shift", "Down" } } + else + self.key_events.AddCurrentLocationToStack = { { "ScreenKB", "Down" } } + end + end end ReaderLink.onPhysicalKeyboardConnected = ReaderLink.registerKeyEvents From dcb5b35ec58db402fede0c741273d7f72240315a Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Sat, 18 May 2024 14:14:54 +0100 Subject: [PATCH 33/56] keep walking, nothing to see here --- frontend/apps/reader/modules/readerlink.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/apps/reader/modules/readerlink.lua b/frontend/apps/reader/modules/readerlink.lua index 4886d841afb5..79d3c842ee14 100644 --- a/frontend/apps/reader/modules/readerlink.lua +++ b/frontend/apps/reader/modules/readerlink.lua @@ -247,7 +247,7 @@ function ReaderLink:registerKeyEvents() -- when G_reader_settings:readSetting("back_in_reader") == "previous_location" } end - if Device:isKindle() then + if Device:hasFiveWay() then if Device:hasKeyboard() then self.key_events.AddCurrentLocationToStack = { { "Shift", "Down" } } else From 8482123ca2496514d335d00c804c47e5fb0f1e9c Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Sat, 18 May 2024 14:54:40 +0100 Subject: [PATCH 34/56] -open last book- shortcut from file manager --- frontend/apps/filemanager/filemanagermenu.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/frontend/apps/filemanager/filemanagermenu.lua b/frontend/apps/filemanager/filemanagermenu.lua index 328412ad0a09..ba060d72eebb 100644 --- a/frontend/apps/filemanager/filemanagermenu.lua +++ b/frontend/apps/filemanager/filemanagermenu.lua @@ -61,6 +61,9 @@ end function FileManagerMenu:registerKeyEvents() if Device:hasKeys() then self.key_events.ShowMenu = { { "Menu" } } + if Device:hasFiveWay() and not Device:hasKeyboard() then + self.key_events.OpenLastDoc = { { "ScreenKB", "Back" } } + end end end From a677de91f8bfe8f39baf69700f36ccb8d32b4884 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Sat, 18 May 2024 22:52:37 +0100 Subject: [PATCH 35/56] poire-z insulting people, Again. ;) --- frontend/apps/reader/modules/readerhighlight.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/frontend/apps/reader/modules/readerhighlight.lua b/frontend/apps/reader/modules/readerhighlight.lua index 42801aa7d63a..3fd1db9b582b 100644 --- a/frontend/apps/reader/modules/readerhighlight.lua +++ b/frontend/apps/reader/modules/readerhighlight.lua @@ -2208,6 +2208,8 @@ function ReaderHighlight:onHighlightPress() end function ReaderHighlight:onStartHighlightIndicator() + -- disable that long-press icon, as, as NT device owners, we are slow people, and we are slow at selecting text. -- poire-z (2024) + self.long_hold_reached_action = function() end if self.view.visible_area and not self._current_indicator_pos then -- set start position to centor of page local rect = self._previous_indicator_pos From 8d6f3722f107b805cb16fa1fac78d813bf37cae1 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Sun, 19 May 2024 00:44:21 +0100 Subject: [PATCH 36/56] toggle wifi from reader --- frontend/apps/reader/modules/readerpaging.lua | 8 ++++++++ frontend/apps/reader/modules/readerrolling.lua | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/frontend/apps/reader/modules/readerpaging.lua b/frontend/apps/reader/modules/readerpaging.lua index 30fd7296f208..37fcc5448db6 100644 --- a/frontend/apps/reader/modules/readerpaging.lua +++ b/frontend/apps/reader/modules/readerpaging.lua @@ -105,6 +105,10 @@ function ReaderPaging:registerKeyEvents() { "ScreenKB", "Back" }, event = "PrevDocument", } + self.key_events.ToggleWifi = { + { "ScreenKB", "Home" }, + event = "ToggleWifi", + } end if Device:hasKeyboard() then self.key_events.GotoFirst = { @@ -170,6 +174,10 @@ function ReaderPaging:onContentSelection() return self.ui.highlight:onStartHighlightIndicator() end +function ReaderPaging:onToggleWifi() + return self.ui.networklistener:onToggleWifi() +end + function ReaderPaging:setupTouchZones() if not Device:isTouchDevice() then return end diff --git a/frontend/apps/reader/modules/readerrolling.lua b/frontend/apps/reader/modules/readerrolling.lua index 2081a794ed6b..9c3601fdd504 100644 --- a/frontend/apps/reader/modules/readerrolling.lua +++ b/frontend/apps/reader/modules/readerrolling.lua @@ -194,6 +194,10 @@ function ReaderRolling:registerKeyEvents() event = "Panning", args = {0, 1}, } + self.key_events.ToggleWifi = { + { "ScreenKB", "Home" }, + event = "ToggleWifi", + } end if Device:hasKeyboard() then self.key_events.GotoFirst = { @@ -843,6 +847,10 @@ function ReaderRolling:onContentSelection() return self.ui.highlight:onStartHighlightIndicator() end +function ReaderRolling:onToggleWifi() + return self.ui.networklistener:onToggleWifi() +end + function ReaderRolling:onNotCharging() self:updateBatteryState() end From cc03cc6c9b4b17390be5534fdfe3aee39ac63d04 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Sun, 19 May 2024 01:20:30 +0100 Subject: [PATCH 37/56] exit menu with "Menu" key --- frontend/ui/widget/touchmenu.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/ui/widget/touchmenu.lua b/frontend/ui/widget/touchmenu.lua index 28cce7f49f44..2d6d8ddde97a 100644 --- a/frontend/ui/widget/touchmenu.lua +++ b/frontend/ui/widget/touchmenu.lua @@ -511,6 +511,7 @@ function TouchMenu:init() } self.key_events.Back = { { Input.group.Back } } + self.key_events.Close = { { "Menu" } } if Device:hasFewKeys() then self.key_events.Back = { { "Left" } } end From a4def067a649917440c891d9738fa4e8c0635b89 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Sun, 19 May 2024 12:04:16 +0100 Subject: [PATCH 38/56] wifi shortcut on filemanager --- frontend/apps/filemanager/filemanager.lua | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/frontend/apps/filemanager/filemanager.lua b/frontend/apps/filemanager/filemanager.lua index cbf535e1e803..05ad8f3a92d5 100644 --- a/frontend/apps/filemanager/filemanager.lua +++ b/frontend/apps/filemanager/filemanager.lua @@ -23,6 +23,7 @@ local InputDialog = require("ui/widget/inputdialog") local LanguageSupport = require("languagesupport") local Menu = require("ui/widget/menu") local MultiConfirmBox = require("ui/widget/multiconfirmbox") +local NetworkListener = require("ui/network/networklistener") local PluginLoader = require("pluginloader") local ReadCollection = require("readcollection") local ReaderDeviceStatus = require("apps/reader/modules/readerdevicestatus") @@ -379,6 +380,7 @@ function FileManager:registerKeyEvents() self.key_events.Home = { { "Home" } } -- Override the menu.lua way of handling the back key self.file_chooser.key_events.Back = { { Device.input.group.Back } } + self.key_events.ToggleWifi = { { "ScreenKB", "Home" } } if not Device:hasFewKeys() then -- Also remove the handler assigned to the "Back" key by menu.lua self.file_chooser.key_events.Close = nil @@ -423,6 +425,7 @@ function FileManager:init() self:registerModule("wikipedia", ReaderWikipedia:new{ ui = self }) self:registerModule("devicestatus", ReaderDeviceStatus:new{ ui = self }) self:registerModule("devicelistener", DeviceListener:new{ ui = self }) + self:registerModule("networklistener", NetworkListener:new{ ui = self }) -- koreader plugins for _, plugin_module in ipairs(PluginLoader:loadPlugins()) do @@ -455,6 +458,10 @@ function FileManager:init() FileManager.instance = self end +function FileManager:onToggleWifi() + return self.networklistener:onToggleWifi() +end + function FileChooser:onBack() local back_to_exit = G_reader_settings:readSetting("back_to_exit", "prompt") local back_in_filemanager = G_reader_settings:readSetting("back_in_filemanager", "default") From 746a9bb1bb0fae00e5094347e28d6ab9aa41bdfe Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Sun, 19 May 2024 12:12:17 +0100 Subject: [PATCH 39/56] Update frontend/apps/filemanager/filemanager.lua --- frontend/apps/filemanager/filemanager.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/apps/filemanager/filemanager.lua b/frontend/apps/filemanager/filemanager.lua index 05ad8f3a92d5..d9f1c705bc81 100644 --- a/frontend/apps/filemanager/filemanager.lua +++ b/frontend/apps/filemanager/filemanager.lua @@ -380,7 +380,9 @@ function FileManager:registerKeyEvents() self.key_events.Home = { { "Home" } } -- Override the menu.lua way of handling the back key self.file_chooser.key_events.Back = { { Device.input.group.Back } } - self.key_events.ToggleWifi = { { "ScreenKB", "Home" } } + if Device:hasFiveWay() and not Device:hasKeyboard() then + self.key_events.ToggleWifi = { { "ScreenKB", "Home" } } + end if not Device:hasFewKeys() then -- Also remove the handler assigned to the "Back" key by menu.lua self.file_chooser.key_events.Close = nil From a9b76879cf63f4168692c696e0cf219ede22aa14 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Sun, 19 May 2024 12:25:19 +0100 Subject: [PATCH 40/56] Home, takes you to home folder --- frontend/apps/filemanager/filemanager.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/apps/filemanager/filemanager.lua b/frontend/apps/filemanager/filemanager.lua index d9f1c705bc81..2983193d6773 100644 --- a/frontend/apps/filemanager/filemanager.lua +++ b/frontend/apps/filemanager/filemanager.lua @@ -380,6 +380,7 @@ function FileManager:registerKeyEvents() self.key_events.Home = { { "Home" } } -- Override the menu.lua way of handling the back key self.file_chooser.key_events.Back = { { Device.input.group.Back } } + self.key_events.Home = { { "Home" } } if Device:hasFiveWay() and not Device:hasKeyboard() then self.key_events.ToggleWifi = { { "ScreenKB", "Home" } } end From cb115c32221c2fbbaa4b64aa6f4fd45a0ac93e4d Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Sun, 19 May 2024 13:13:34 +0100 Subject: [PATCH 41/56] Apply suggestions from poire-z's code review --- frontend/apps/filemanager/filemanager.lua | 4 ++-- .../apps/reader/modules/readerhighlight.lua | 2 +- frontend/apps/reader/modules/readerpaging.lua | 18 +++++++++--------- frontend/apps/reader/modules/readerrolling.lua | 18 +++++++++--------- 4 files changed, 21 insertions(+), 21 deletions(-) diff --git a/frontend/apps/filemanager/filemanager.lua b/frontend/apps/filemanager/filemanager.lua index 2983193d6773..4e26588bc60f 100644 --- a/frontend/apps/filemanager/filemanager.lua +++ b/frontend/apps/filemanager/filemanager.lua @@ -382,7 +382,7 @@ function FileManager:registerKeyEvents() self.file_chooser.key_events.Back = { { Device.input.group.Back } } self.key_events.Home = { { "Home" } } if Device:hasFiveWay() and not Device:hasKeyboard() then - self.key_events.ToggleWifi = { { "ScreenKB", "Home" } } + self.key_events.KeyToggleWifi = { { "ScreenKB", "Home" } } end if not Device:hasFewKeys() then -- Also remove the handler assigned to the "Back" key by menu.lua @@ -461,7 +461,7 @@ function FileManager:init() FileManager.instance = self end -function FileManager:onToggleWifi() +function FileManager:onKeyToggleWifi() return self.networklistener:onToggleWifi() end diff --git a/frontend/apps/reader/modules/readerhighlight.lua b/frontend/apps/reader/modules/readerhighlight.lua index 3fd1db9b582b..9efdca672bd3 100644 --- a/frontend/apps/reader/modules/readerhighlight.lua +++ b/frontend/apps/reader/modules/readerhighlight.lua @@ -2208,7 +2208,7 @@ function ReaderHighlight:onHighlightPress() end function ReaderHighlight:onStartHighlightIndicator() - -- disable that long-press icon, as, as NT device owners, we are slow people, and we are slow at selecting text. -- poire-z (2024) + -- disable long-press icon (poke-ball), as it is triggered constantly due to NT devices needing a workaround for text selection to work. self.long_hold_reached_action = function() end if self.view.visible_area and not self._current_indicator_pos then -- set start position to centor of page diff --git a/frontend/apps/reader/modules/readerpaging.lua b/frontend/apps/reader/modules/readerpaging.lua index 37fcc5448db6..01b332f003d7 100644 --- a/frontend/apps/reader/modules/readerpaging.lua +++ b/frontend/apps/reader/modules/readerpaging.lua @@ -63,9 +63,9 @@ function ReaderPaging:registerKeyEvents() event = "GotoPosRel", args = -1, } - self.key_events.ContentSelection = { + self.key_events.KeyContentSelection = { { { "Up", "Down" } }, - event = "ContentSelection", + event = "KeyContentSelection", } self.key_events.GotoNextChapter = { { "Right" }, @@ -101,13 +101,13 @@ function ReaderPaging:registerKeyEvents() end if Device:hasFiveWay() and not Device:hasKeyboard() then -- targets exclusively kindle 4 - self.key_events.PrevDocument = { + self.key_events.PreviousDocument = { { "ScreenKB", "Back" }, - event = "PrevDocument", + event = "PreviousDocument", } - self.key_events.ToggleWifi = { + self.key_events.KeyToggleWifi = { { "ScreenKB", "Home" }, - event = "ToggleWifi", + event = "KeyToggleWifi", } end if Device:hasKeyboard() then @@ -170,11 +170,11 @@ function ReaderPaging:onReaderReady() self:setupTouchZones() end -function ReaderPaging:onContentSelection() +function ReaderPaging:onKeyContentSelection() return self.ui.highlight:onStartHighlightIndicator() end -function ReaderPaging:onToggleWifi() +function ReaderPaging:onKeyToggleWifi() return self.ui.networklistener:onToggleWifi() end @@ -247,7 +247,7 @@ function ReaderPaging:onSaveSettings() self.ui.doc_settings:saveSetting("flipping_scroll_mode", self.flipping_scroll_mode) end -function ReaderPaging:onPrevDocument() +function ReaderPaging:onPreviousDocument() return self.ui:onOpenLastDoc() end diff --git a/frontend/apps/reader/modules/readerrolling.lua b/frontend/apps/reader/modules/readerrolling.lua index 9c3601fdd504..6e8f7bd6731d 100644 --- a/frontend/apps/reader/modules/readerrolling.lua +++ b/frontend/apps/reader/modules/readerrolling.lua @@ -152,9 +152,9 @@ function ReaderRolling:registerKeyEvents() } end if Device:hasFiveWay() then - self.key_events.ContentSelection = { + self.key_events.KeyContentSelection = { { { "Up", "Down" } }, - event = "ContentSelection", + event = "KeyContentSelection", } self.key_events.GotoNextChapter = { { "Right" }, @@ -180,9 +180,9 @@ function ReaderRolling:registerKeyEvents() end if Device:hasFiveWay() and not Device:hasKeyboard() then - self.key_events.PrevDocument = { + self.key_events.PreviousDocument = { { "ScreenKB", "Back" }, - event = "PrevDocument", + event = "PreviousDocument", } self.key_events.MoveUp = { { "ScreenKB", { "RPgBack", "LPgBack" } }, @@ -194,9 +194,9 @@ function ReaderRolling:registerKeyEvents() event = "Panning", args = {0, 1}, } - self.key_events.ToggleWifi = { + self.key_events.KeyToggleWifi = { { "ScreenKB", "Home" }, - event = "ToggleWifi", + event = "KeyToggleWifi", } end if Device:hasKeyboard() then @@ -409,7 +409,7 @@ function ReaderRolling:onCloseDocument() -- if namespaces ~= "" then logger.info("cre unknown namespaces: ", namespaces) end end -function ReaderRolling:onPrevDocument() +function ReaderRolling:onPreviousDocument() return self.ui:onOpenLastDoc() end @@ -843,11 +843,11 @@ function ReaderRolling:onGotoPrevChapter() return true end -function ReaderRolling:onContentSelection() +function ReaderRolling:onKeyContentSelection() return self.ui.highlight:onStartHighlightIndicator() end -function ReaderRolling:onToggleWifi() +function ReaderRolling:onKeyToggleWifi() return self.ui.networklistener:onToggleWifi() end From 5f2fc5969a9a3bbd96b510fa845197cbf4a9bd67 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Mon, 20 May 2024 00:06:25 +0100 Subject: [PATCH 42/56] Update readerrolling to avoid duplication --- .../apps/reader/modules/readerrolling.lua | 24 ------------------- 1 file changed, 24 deletions(-) diff --git a/frontend/apps/reader/modules/readerrolling.lua b/frontend/apps/reader/modules/readerrolling.lua index 6e8f7bd6731d..4073d2ed45a5 100644 --- a/frontend/apps/reader/modules/readerrolling.lua +++ b/frontend/apps/reader/modules/readerrolling.lua @@ -152,10 +152,6 @@ function ReaderRolling:registerKeyEvents() } end if Device:hasFiveWay() then - self.key_events.KeyContentSelection = { - { { "Up", "Down" } }, - event = "KeyContentSelection", - } self.key_events.GotoNextChapter = { { "Right" }, event = "GotoNextChapter", @@ -180,10 +176,6 @@ function ReaderRolling:registerKeyEvents() end if Device:hasFiveWay() and not Device:hasKeyboard() then - self.key_events.PreviousDocument = { - { "ScreenKB", "Back" }, - event = "PreviousDocument", - } self.key_events.MoveUp = { { "ScreenKB", { "RPgBack", "LPgBack" } }, event = "Panning", @@ -194,10 +186,6 @@ function ReaderRolling:registerKeyEvents() event = "Panning", args = {0, 1}, } - self.key_events.KeyToggleWifi = { - { "ScreenKB", "Home" }, - event = "KeyToggleWifi", - } end if Device:hasKeyboard() then self.key_events.GotoFirst = { @@ -409,10 +397,6 @@ function ReaderRolling:onCloseDocument() -- if namespaces ~= "" then logger.info("cre unknown namespaces: ", namespaces) end end -function ReaderRolling:onPreviousDocument() - return self.ui:onOpenLastDoc() -end - function ReaderRolling:onCheckDomStyleCoherence() if self.ui.document and self.ui.document:isBuiltDomStale() then local has_bookmarks_warn_txt = "" @@ -843,14 +827,6 @@ function ReaderRolling:onGotoPrevChapter() return true end -function ReaderRolling:onKeyContentSelection() - return self.ui.highlight:onStartHighlightIndicator() -end - -function ReaderRolling:onKeyToggleWifi() - return self.ui.networklistener:onToggleWifi() -end - function ReaderRolling:onNotCharging() self:updateBatteryState() end From 2a882c335a3ec98facddeb8257262f3f54f4662f Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Mon, 20 May 2024 00:09:09 +0100 Subject: [PATCH 43/56] Update readerpaging.lua to avoid duplication --- frontend/apps/reader/modules/readerpaging.lua | 27 ------------------- 1 file changed, 27 deletions(-) diff --git a/frontend/apps/reader/modules/readerpaging.lua b/frontend/apps/reader/modules/readerpaging.lua index 01b332f003d7..256d96f31446 100644 --- a/frontend/apps/reader/modules/readerpaging.lua +++ b/frontend/apps/reader/modules/readerpaging.lua @@ -63,10 +63,6 @@ function ReaderPaging:registerKeyEvents() event = "GotoPosRel", args = -1, } - self.key_events.KeyContentSelection = { - { { "Up", "Down" } }, - event = "KeyContentSelection", - } self.key_events.GotoNextChapter = { { "Right" }, event = "GotoNextChapter", @@ -99,17 +95,6 @@ function ReaderPaging:registerKeyEvents() args = -1, } end - if Device:hasFiveWay() and not Device:hasKeyboard() then - -- targets exclusively kindle 4 - self.key_events.PreviousDocument = { - { "ScreenKB", "Back" }, - event = "PreviousDocument", - } - self.key_events.KeyToggleWifi = { - { "ScreenKB", "Home" }, - event = "KeyToggleWifi", - } - end if Device:hasKeyboard() then self.key_events.GotoFirst = { { "1" }, @@ -170,14 +155,6 @@ function ReaderPaging:onReaderReady() self:setupTouchZones() end -function ReaderPaging:onKeyContentSelection() - return self.ui.highlight:onStartHighlightIndicator() -end - -function ReaderPaging:onKeyToggleWifi() - return self.ui.networklistener:onToggleWifi() -end - function ReaderPaging:setupTouchZones() if not Device:isTouchDevice() then return end @@ -247,10 +224,6 @@ function ReaderPaging:onSaveSettings() self.ui.doc_settings:saveSetting("flipping_scroll_mode", self.flipping_scroll_mode) end -function ReaderPaging:onPreviousDocument() - return self.ui:onOpenLastDoc() -end - function ReaderPaging:getLastProgress() return self:getTopPage() end From dc04dbd1333eb42c64de941d3a2c920115c30659 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Mon, 20 May 2024 00:25:39 +0100 Subject: [PATCH 44/56] Update readerui.lua --- frontend/apps/reader/readerui.lua | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/frontend/apps/reader/readerui.lua b/frontend/apps/reader/readerui.lua index abc346a3a724..117dee31ae48 100644 --- a/frontend/apps/reader/readerui.lua +++ b/frontend/apps/reader/readerui.lua @@ -524,6 +524,16 @@ function ReaderUI:registerKeyEvents() if Device:hasKeys() then self.key_events.Home = { { "Home" } } self.key_events.Reload = { { "F5" } } + if Device:hasFiveWay() then + self.key_events.KeyContentSelection = { { { "Up", "Down" } } } + if Device:hasKeyboard() then + self.key_events.KeyToggleWifi = { { "Shift", "Home" } } + self.key_events.OpenLastDoc = { { "Shift", "Back" } } + else -- targets exclusively kindle 4 + self.key_events.KeyToggleWifi = { { "ScreenKB", "Home" } } + self.key_events.OpenLastDoc = { { "ScreenKB", "Back" } } + end + end end end @@ -898,6 +908,14 @@ function ReaderUI:onOpenLastDoc() self:switchDocument(self.menu:getPreviousFile()) end +function ReaderUI:onKeyContentSelection() + return self.highlight:onStartHighlightIndicator() +end + +function ReaderUI:onKeyToggleWifi() + return self.networklistener:onToggleWifi() +end + function ReaderUI:getCurrentPage() return self.paging and self.paging.current_page or self.document:getCurrentPage() end From bb79800df5f1aa18e76bd37c71b17c089e069496 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Mon, 20 May 2024 01:12:26 +0100 Subject: [PATCH 45/56] Update readerui.lua --- frontend/apps/reader/readerui.lua | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/frontend/apps/reader/readerui.lua b/frontend/apps/reader/readerui.lua index 117dee31ae48..b0c3e28a5f42 100644 --- a/frontend/apps/reader/readerui.lua +++ b/frontend/apps/reader/readerui.lua @@ -525,12 +525,12 @@ function ReaderUI:registerKeyEvents() self.key_events.Home = { { "Home" } } self.key_events.Reload = { { "F5" } } if Device:hasFiveWay() then - self.key_events.KeyContentSelection = { { { "Up", "Down" } } } + self.key_events.KeyContentSelection = { { { "Up", "Down" } }, event = "StartHighlightIndicator" } if Device:hasKeyboard() then - self.key_events.KeyToggleWifi = { { "Shift", "Home" } } + self.key_events.KeyToggleWifi = { { "Shift", "Home" }, event = "ToggleWifi" } self.key_events.OpenLastDoc = { { "Shift", "Back" } } else -- targets exclusively kindle 4 - self.key_events.KeyToggleWifi = { { "ScreenKB", "Home" } } + self.key_events.KeyToggleWifi = { { "ScreenKB", "Home" }, event = "ToggleWifi" } self.key_events.OpenLastDoc = { { "ScreenKB", "Back" } } end end @@ -908,14 +908,6 @@ function ReaderUI:onOpenLastDoc() self:switchDocument(self.menu:getPreviousFile()) end -function ReaderUI:onKeyContentSelection() - return self.highlight:onStartHighlightIndicator() -end - -function ReaderUI:onKeyToggleWifi() - return self.networklistener:onToggleWifi() -end - function ReaderUI:getCurrentPage() return self.paging and self.paging.current_page or self.document:getCurrentPage() end From 74abaedd3ac068916c3b60905b0835496cae800a Mon Sep 17 00:00:00 2001 From: Frans de Jonge Date: Mon, 20 May 2024 09:32:02 +0200 Subject: [PATCH 46/56] Update frontend/apps/reader/readerui.lua --- frontend/apps/reader/readerui.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/apps/reader/readerui.lua b/frontend/apps/reader/readerui.lua index b0c3e28a5f42..0a333445745a 100644 --- a/frontend/apps/reader/readerui.lua +++ b/frontend/apps/reader/readerui.lua @@ -529,7 +529,7 @@ function ReaderUI:registerKeyEvents() if Device:hasKeyboard() then self.key_events.KeyToggleWifi = { { "Shift", "Home" }, event = "ToggleWifi" } self.key_events.OpenLastDoc = { { "Shift", "Back" } } - else -- targets exclusively kindle 4 + else -- Currently exclusively targets Kindle 4. self.key_events.KeyToggleWifi = { { "ScreenKB", "Home" }, event = "ToggleWifi" } self.key_events.OpenLastDoc = { { "ScreenKB", "Back" } } end From 576f6afae36aded237a66480395277fe61627587 Mon Sep 17 00:00:00 2001 From: Frans de Jonge Date: Mon, 20 May 2024 09:34:58 +0200 Subject: [PATCH 47/56] Update frontend/apps/reader/modules/readerrolling.lua --- frontend/apps/reader/modules/readerrolling.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/apps/reader/modules/readerrolling.lua b/frontend/apps/reader/modules/readerrolling.lua index 4073d2ed45a5..8f2e4661301d 100644 --- a/frontend/apps/reader/modules/readerrolling.lua +++ b/frontend/apps/reader/modules/readerrolling.lua @@ -174,7 +174,6 @@ function ReaderRolling:registerKeyEvents() args = {0, 1}, } end - if Device:hasFiveWay() and not Device:hasKeyboard() then self.key_events.MoveUp = { { "ScreenKB", { "RPgBack", "LPgBack" } }, From 301ead0e44d6dec0f2cbb8c7feb093ca8040aad4 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Mon, 20 May 2024 09:56:14 +0100 Subject: [PATCH 48/56] remove whitespace --- frontend/apps/reader/modules/readerhighlight.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/apps/reader/modules/readerhighlight.lua b/frontend/apps/reader/modules/readerhighlight.lua index 9efdca672bd3..08150bd577d2 100644 --- a/frontend/apps/reader/modules/readerhighlight.lua +++ b/frontend/apps/reader/modules/readerhighlight.lua @@ -2208,7 +2208,7 @@ function ReaderHighlight:onHighlightPress() end function ReaderHighlight:onStartHighlightIndicator() - -- disable long-press icon (poke-ball), as it is triggered constantly due to NT devices needing a workaround for text selection to work. + -- disable long-press icon (poke-ball), as it is triggered constantly due to NT devices needing a workaround for text selection to work. self.long_hold_reached_action = function() end if self.view.visible_area and not self._current_indicator_pos then -- set start position to centor of page From 27e8ce08ca7143b55818c4fa58cb685286ed637b Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Mon, 20 May 2024 10:04:32 +0100 Subject: [PATCH 49/56] duplicated Home key_event removed --- frontend/apps/filemanager/filemanager.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/apps/filemanager/filemanager.lua b/frontend/apps/filemanager/filemanager.lua index 4e26588bc60f..fd601d276c78 100644 --- a/frontend/apps/filemanager/filemanager.lua +++ b/frontend/apps/filemanager/filemanager.lua @@ -380,7 +380,6 @@ function FileManager:registerKeyEvents() self.key_events.Home = { { "Home" } } -- Override the menu.lua way of handling the back key self.file_chooser.key_events.Back = { { Device.input.group.Back } } - self.key_events.Home = { { "Home" } } if Device:hasFiveWay() and not Device:hasKeyboard() then self.key_events.KeyToggleWifi = { { "ScreenKB", "Home" } } end From 2a75d4a1e63ca951a8ab454473924e19c41d7a0c Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Mon, 20 May 2024 12:33:58 +0100 Subject: [PATCH 50/56] ToggleWifi from filemanager Co-authored-by: Frans de Jonge --- frontend/apps/filemanager/filemanager.lua | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/frontend/apps/filemanager/filemanager.lua b/frontend/apps/filemanager/filemanager.lua index fd601d276c78..e939910e3537 100644 --- a/frontend/apps/filemanager/filemanager.lua +++ b/frontend/apps/filemanager/filemanager.lua @@ -23,7 +23,6 @@ local InputDialog = require("ui/widget/inputdialog") local LanguageSupport = require("languagesupport") local Menu = require("ui/widget/menu") local MultiConfirmBox = require("ui/widget/multiconfirmbox") -local NetworkListener = require("ui/network/networklistener") local PluginLoader = require("pluginloader") local ReadCollection = require("readcollection") local ReaderDeviceStatus = require("apps/reader/modules/readerdevicestatus") @@ -381,7 +380,7 @@ function FileManager:registerKeyEvents() -- Override the menu.lua way of handling the back key self.file_chooser.key_events.Back = { { Device.input.group.Back } } if Device:hasFiveWay() and not Device:hasKeyboard() then - self.key_events.KeyToggleWifi = { { "ScreenKB", "Home" } } + self.key_events.KeyToggleWifi = { { "ScreenKB", "Home" }, event = "ToggleWifi" } end if not Device:hasFewKeys() then -- Also remove the handler assigned to the "Back" key by menu.lua @@ -427,7 +426,6 @@ function FileManager:init() self:registerModule("wikipedia", ReaderWikipedia:new{ ui = self }) self:registerModule("devicestatus", ReaderDeviceStatus:new{ ui = self }) self:registerModule("devicelistener", DeviceListener:new{ ui = self }) - self:registerModule("networklistener", NetworkListener:new{ ui = self }) -- koreader plugins for _, plugin_module in ipairs(PluginLoader:loadPlugins()) do @@ -460,9 +458,6 @@ function FileManager:init() FileManager.instance = self end -function FileManager:onKeyToggleWifi() - return self.networklistener:onToggleWifi() -end function FileChooser:onBack() local back_to_exit = G_reader_settings:readSetting("back_to_exit", "prompt") From c87fe5a84d03831803570ccd8e4f30c9b3c287b6 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Mon, 20 May 2024 12:34:25 +0100 Subject: [PATCH 51/56] Update frontend/apps/filemanager/filemanager.lua --- frontend/apps/filemanager/filemanager.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/apps/filemanager/filemanager.lua b/frontend/apps/filemanager/filemanager.lua index e939910e3537..e1f63f38b77a 100644 --- a/frontend/apps/filemanager/filemanager.lua +++ b/frontend/apps/filemanager/filemanager.lua @@ -458,7 +458,6 @@ function FileManager:init() FileManager.instance = self end - function FileChooser:onBack() local back_to_exit = G_reader_settings:readSetting("back_to_exit", "prompt") local back_in_filemanager = G_reader_settings:readSetting("back_in_filemanager", "default") From 8f172d68ad0d815cfef294d412bcefb68360cda2 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Mon, 20 May 2024 14:45:35 +0100 Subject: [PATCH 52/56] last minute addition to support link selection as seen here #6562 --- frontend/apps/reader/modules/readerlink.lua | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/frontend/apps/reader/modules/readerlink.lua b/frontend/apps/reader/modules/readerlink.lua index 79d3c842ee14..627554836b43 100644 --- a/frontend/apps/reader/modules/readerlink.lua +++ b/frontend/apps/reader/modules/readerlink.lua @@ -228,7 +228,7 @@ end function ReaderLink:onGesture() end function ReaderLink:registerKeyEvents() - if Device:hasKeys() then + if Device:hasKeys() and not Device:hasFiveWay then self.key_events = { SelectNextPageLink = { { "Tab" }, @@ -248,10 +248,15 @@ function ReaderLink:registerKeyEvents() } end if Device:hasFiveWay() then + self.key_events.GotoSelectedPageLink = { { "Press" }, event = "GotoSelectedPageLink" } if Device:hasKeyboard() then self.key_events.AddCurrentLocationToStack = { { "Shift", "Down" } } + self.key_events.SelectNextPageLink = { { "Shift", "LPgFwd" }, event = "SelectNextPageLink" } + self.key_events.SelectPrevPageLink = { { "Shift", "LPgBack" }, event = "SelectPrevPageLink" } else self.key_events.AddCurrentLocationToStack = { { "ScreenKB", "Down" } } + self.key_events.SelectNextPageLink = { { "ScreenKB", "LPgFwd" }, event = "SelectNextPageLink" } + self.key_events.SelectPrevPageLink = { { "ScreenKB", "LPgBack" }, event = "SelectPrevPageLink" } end end end From 3dcef43ec83d7329e43300ecac9cb0d196934122 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Mon, 20 May 2024 14:50:22 +0100 Subject: [PATCH 53/56] Apply suggestions from code review --- frontend/apps/reader/modules/readerrolling.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/apps/reader/modules/readerrolling.lua b/frontend/apps/reader/modules/readerrolling.lua index 8f2e4661301d..a665a3865cb1 100644 --- a/frontend/apps/reader/modules/readerrolling.lua +++ b/frontend/apps/reader/modules/readerrolling.lua @@ -129,12 +129,12 @@ function ReaderRolling:registerKeyEvents() } if Device:hasKeyboard() then self.key_events.MoveUp = { - { "Shift", { "RPgBack", "LPgBack" } }, + { "Shift", "RPgBack" }, event = "Panning", args = {0, -1}, } self.key_events.MoveDown = { - { "Shift", { "RPgFwd", "LPgFwd" } }, + { "Shift", "RPgFwd" }, event = "Panning", args = {0, 1}, } @@ -176,12 +176,12 @@ function ReaderRolling:registerKeyEvents() end if Device:hasFiveWay() and not Device:hasKeyboard() then self.key_events.MoveUp = { - { "ScreenKB", { "RPgBack", "LPgBack" } }, + { "ScreenKB", "RPgBack" }, event = "Panning", args = {0, -1}, } self.key_events.MoveDown = { - { "ScreenKB", { "RPgFwd", "LPgFwd" } }, + { "ScreenKB", "RPgFwd" }, event = "Panning", args = {0, 1}, } From 00f17404886531adbe490d852137a9b9cad5c118 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Mon, 20 May 2024 14:53:58 +0100 Subject: [PATCH 54/56] Update frontend/apps/reader/modules/readerlink.lua nice save... :) Co-authored-by: Frans de Jonge --- frontend/apps/reader/modules/readerlink.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/apps/reader/modules/readerlink.lua b/frontend/apps/reader/modules/readerlink.lua index 627554836b43..b5f04379a00f 100644 --- a/frontend/apps/reader/modules/readerlink.lua +++ b/frontend/apps/reader/modules/readerlink.lua @@ -228,7 +228,7 @@ end function ReaderLink:onGesture() end function ReaderLink:registerKeyEvents() - if Device:hasKeys() and not Device:hasFiveWay then + if Device:hasKeys() and not Device:hasFiveWay() then self.key_events = { SelectNextPageLink = { { "Tab" }, From bc6829bdf9edfc9187afb97c84c5aaed3c92e97c Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Mon, 20 May 2024 18:58:50 +0100 Subject: [PATCH 55/56] Content selection mapping moved to reader highlight --- frontend/apps/reader/modules/readerhighlight.lua | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/frontend/apps/reader/modules/readerhighlight.lua b/frontend/apps/reader/modules/readerhighlight.lua index 08150bd577d2..992b54a83468 100644 --- a/frontend/apps/reader/modules/readerhighlight.lua +++ b/frontend/apps/reader/modules/readerhighlight.lua @@ -246,12 +246,16 @@ function ReaderHighlight:registerKeyEvents() self.key_events.QuickLeftHighlightIndicator = { { "Shift", "Left" }, event = "MoveHighlightIndicator", args = {-1, 0, QUICK_INDICATOR_MOVE} } self.key_events.QuickRightHighlightIndicator = { { "Shift", "Right" }, event = "MoveHighlightIndicator", args = {1, 0, QUICK_INDICATOR_MOVE} } self.key_events.StartHighlightIndicator = { { "H" } } + if Device:hasFiveWay() then + self.key_events.KeyContentSelection = { { { "Up", "Down" } }, event = "StartHighlightIndicator" } + end elseif Device:hasFiveWay() then local QUICK_INDICATOR_MOVE = true self.key_events.QuickUpHighlightIndicator = { { "ScreenKB", "Up" }, event = "MoveHighlightIndicator", args = {0, -1, QUICK_INDICATOR_MOVE} } self.key_events.QuickDownHighlightIndicator = { { "ScreenKB", "Down" }, event = "MoveHighlightIndicator", args = {0, 1, QUICK_INDICATOR_MOVE} } self.key_events.QuickLeftHighlightIndicator = { { "ScreenKB", "Left" }, event = "MoveHighlightIndicator", args = {-1, 0, QUICK_INDICATOR_MOVE} } self.key_events.QuickRightHighlightIndicator = { { "ScreenKB", "Right" }, event = "MoveHighlightIndicator", args = {1, 0, QUICK_INDICATOR_MOVE} } + self.key_events.KeyContentSelection = { { { "Up", "Down" } }, event = "StartHighlightIndicator" } end end From 5119f7f1e9d38c7bb84f037865ac831b7db09057 Mon Sep 17 00:00:00 2001 From: SomeGuy <97603719+Commodore64user@users.noreply.github.com> Date: Mon, 20 May 2024 19:00:32 +0100 Subject: [PATCH 56/56] Update readerui to remove content selection --- frontend/apps/reader/readerui.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/apps/reader/readerui.lua b/frontend/apps/reader/readerui.lua index 0a333445745a..3b671a854698 100644 --- a/frontend/apps/reader/readerui.lua +++ b/frontend/apps/reader/readerui.lua @@ -525,7 +525,6 @@ function ReaderUI:registerKeyEvents() self.key_events.Home = { { "Home" } } self.key_events.Reload = { { "F5" } } if Device:hasFiveWay() then - self.key_events.KeyContentSelection = { { { "Up", "Down" } }, event = "StartHighlightIndicator" } if Device:hasKeyboard() then self.key_events.KeyToggleWifi = { { "Shift", "Home" }, event = "ToggleWifi" } self.key_events.OpenLastDoc = { { "Shift", "Back" } }