[feat, UX] Ignore hold corners (#5404)

Closes <https://github.com/koreader/koreader/issues/5401>.
pull/5406/head
Frans de Jonge 5 years ago committed by GitHub
parent 28e2e664b1
commit d456a076af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -69,6 +69,7 @@ local action_strings = {
decrease_frontlight = _("Decrease frontlight brightness"),
increase_frontlight_warmth = _("Increase frontlight warmth"),
decrease_frontlight_warmth = _("Decrease frontlight warmth"),
toggle_hold_corners = _("Toggle hold corners"),
toggle_gsensor = _("Toggle accelerometer"),
toggle_rotation = _("Toggle rotation"),
@ -156,6 +157,7 @@ These advanced gestures consist of either straight swipes or diagonal swipes. To
function ReaderGesture:init()
if not Device:isTouchDevice() then return end
self.ignore_hold_corners = G_reader_settings:readSetting("ignore_hold_corners")
self.multiswipes_enabled = G_reader_settings:readSetting("multiswipes_enabled")
self.is_docless = self.ui == nil or self.ui.document == nil
self.ges_mode = self.is_docless and "gesture_fm" or "gesture_reader"
@ -707,6 +709,7 @@ function ReaderGesture:buildMenu(ges, default)
{"increase_frontlight_warmth", Device:hasNaturalLight()},
{"decrease_frontlight_warmth", Device:hasNaturalLight(), true},
{"toggle_hold_corners", true},
{"toggle_gsensor", Device:canToggleGSensor()},
{"toggle_rotation", not self.is_docless, true},
@ -1185,6 +1188,7 @@ function ReaderGesture:registerGesture(ges, action, ges_type, zone, overrides, d
self.multiswipes_enabled = false
end,
})
return
else
return self:multiswipeAction(gest.multiswipe_directions, gest)
end
@ -1202,7 +1206,8 @@ local function lightFrontlight()
end
function ReaderGesture:gestureAction(action, ges)
if action == "ignore" then
if action == "ignore"
or (ges.ges == "hold" and self.ignore_hold_corners) then
return
elseif action == "reading_progress" and ReaderGesture.getReaderProgress then
UIManager:show(ReaderGesture.getReaderProgress())
@ -1363,6 +1368,8 @@ function ReaderGesture:gestureAction(action, ges)
end
Device:getPowerDevice():toggleFrontlight()
self:onShowFLOnOff()
elseif action == "toggle_hold_corners" then
self:onIgnoreHoldCorners()
elseif action == "toggle_gsensor" then
G_reader_settings:flipNilOrFalse("input_ignore_gsensor")
Device:toggleGSensor(not G_reader_settings:isTrue("input_ignore_gsensor"))
@ -1518,6 +1525,16 @@ function ReaderGesture:pageUpdate(page)
end
function ReaderGesture:onIgnoreHoldCorners(ignore_hold_corners)
if ignore_hold_corners == nil then
G_reader_settings:flipNilOrFalse("ignore_hold_corners")
else
G_reader_settings:saveSetting("ignore_hold_corners", ignore_hold_corners)
end
self.ignore_hold_corners = G_reader_settings:isTrue("ignore_hold_corners")
return true
end
function ReaderGesture:onShowFLOnOff()
local powerd = Device:getPowerDevice()
local new_text

@ -1,5 +1,6 @@
local DateWidget = require("ui/widget/datewidget")
local Device = require("device")
local Event = require("ui/event")
local InfoMessage = require("ui/widget/infomessage")
local Language = require("ui/language")
local NetworkMgr = require("ui/network/manager")
@ -171,6 +172,15 @@ common_settings.screen_dpi = require("ui/elements/screen_dpi_menu_table")
common_settings.screen_eink_opt = require("ui/elements/screen_eink_opt_menu_table")
common_settings.menu_activate = require("ui/elements/menu_activate")
common_settings.screen_disable_double_tab = require("ui/elements/screen_disable_double_tap_table")
common_settings.ignore_hold_corners = {
text = _("Ignore hold on corners"),
checked_func = function()
return G_reader_settings:isTrue("ignore_hold_corners")
end,
callback = function()
UIManager:broadcastEvent(Event:new("IgnoreHoldCorners"))
end,
}
if Device:canToggleGSensor() then
common_settings.screen_toggle_gsensor = require("ui/elements/screen_toggle_gsensor")

@ -83,6 +83,7 @@ local order = {
"gesture_intervals",
"----------------------------",
"menu_activate",
"ignore_hold_corners",
"screen_disable_double_tab",
},
tools = {

@ -105,6 +105,7 @@ local order = {
"follow_links",
"----------------------------",
"menu_activate",
"ignore_hold_corners",
"screen_disable_double_tab",
},
tools = {

Loading…
Cancel
Save