diff --git a/frontend/device/android/device.lua b/frontend/device/android/device.lua index 9e135cda8..9e4ca3b49 100644 --- a/frontend/device/android/device.lua +++ b/frontend/device/android/device.lua @@ -214,9 +214,14 @@ function Device:init() self:toggleFullscreen() end + -- check if we allow haptic feedback in spite of system settings + if G_reader_settings:isTrue("haptic_feedback_override") then + android.setHapticOverride(true) + end + -- check if we ignore volume keys and then they're forwarded to system services. if G_reader_settings:isTrue("android_ignore_volume_keys") then - android.setVolumeKeysIgnored(true); + android.setVolumeKeysIgnored(true) end -- check if we enable a custom light level for this activity diff --git a/frontend/ui/elements/common_settings_menu_table.lua b/frontend/ui/elements/common_settings_menu_table.lua index 0cc15247c..5b867bba6 100644 --- a/frontend/ui/elements/common_settings_menu_table.lua +++ b/frontend/ui/elements/common_settings_menu_table.lua @@ -211,6 +211,16 @@ if Device:isAndroid() then -- screen timeout options, disabled if device needs wakelocks. common_settings.screen_timeout = require("ui/elements/screen_android"):getTimeoutMenuTable() + -- haptic feedback override + common_settings.android_haptic_feedback = { + text = _("Force haptic feedback"), + checked_func = function() return G_reader_settings:isTrue("haptic_feedback_override") end, + callback = function() + G_reader_settings:flipNilOrFalse("haptic_feedback_override") + android.setHapticOverride(G_reader_settings:isTrue("haptic_feedback_override")) + end, + } + -- volume key events common_settings.android_volume_keys = { text = _("Volume key page turning"), diff --git a/frontend/ui/elements/filemanager_menu_order.lua b/frontend/ui/elements/filemanager_menu_order.lua index 1f3484d02..49e6988bd 100644 --- a/frontend/ui/elements/filemanager_menu_order.lua +++ b/frontend/ui/elements/filemanager_menu_order.lua @@ -54,6 +54,7 @@ local order = { "enable_back_history", "android_volume_keys", "android_camera_key", + "android_haptic_feedback", "----------------------------", "invert_page_turn_buttons", }, diff --git a/frontend/ui/elements/reader_menu_order.lua b/frontend/ui/elements/reader_menu_order.lua index 0aad5ab18..388c50bf1 100644 --- a/frontend/ui/elements/reader_menu_order.lua +++ b/frontend/ui/elements/reader_menu_order.lua @@ -74,6 +74,7 @@ local order = { "enable_back_history", "android_volume_keys", "android_camera_key", + "android_haptic_feedback", "----------------------------", "invert_page_turn_gestures", "invert_page_turn_buttons",