diff --git a/frontend/device/android/device.lua b/frontend/device/android/device.lua index 7f1962501..50fd8a773 100644 --- a/frontend/device/android/device.lua +++ b/frontend/device/android/device.lua @@ -30,9 +30,9 @@ function Device:init() logger.dbg("Android application event", ev.code) if ev.code == C.APP_CMD_SAVE_STATE then return "SaveState" - elseif ev.code == C.APP_CMD_GAINED_FOCUS then - this.device.screen:refreshFull() - elseif ev.code == C.APP_CMD_WINDOW_REDRAW_NEEDED then + elseif ev.code == C.APP_CMD_GAINED_FOCUS + or ev.code == C.APP_CMD_INIT_WINDOW + or ev.code == C.APP_CMD_WINDOW_REDRAW_NEEDED then this.device.screen:refreshFull() end end, @@ -60,6 +60,11 @@ function Device:init() self.isTouchDevice = yes end + -- check if we disabled support for wakelocks + if G_reader_settings:isTrue("disable_android_wakelock") then + android.setWakeLock(false) + end + Generic.init(self) end diff --git a/frontend/ui/elements/common_settings_menu_table.lua b/frontend/ui/elements/common_settings_menu_table.lua index a923ae483..131ea6911 100644 --- a/frontend/ui/elements/common_settings_menu_table.lua +++ b/frontend/ui/elements/common_settings_menu_table.lua @@ -125,6 +125,7 @@ else end if Device:isAndroid() then table.insert(common_settings.screen.sub_item_table, require("ui/elements/screen_fullscreen_menu_table")) + table.insert(common_settings.screen.sub_item_table, require("ui/elements/screen_keep_on_menu_table")) end if Device:hasKeys() then diff --git a/frontend/ui/elements/screen_keep_on_menu_table.lua b/frontend/ui/elements/screen_keep_on_menu_table.lua new file mode 100644 index 000000000..b97a46bf3 --- /dev/null +++ b/frontend/ui/elements/screen_keep_on_menu_table.lua @@ -0,0 +1,24 @@ +local isAndroid, android = pcall(require, "android") +local _ = require("gettext") + +if not isAndroid then return end + +local function isWakeLock() + return not G_reader_settings:isTrue("disable_android_wakelock") +end + +local function setWakeLock(enable) + G_reader_settings:saveSetting("disable_android_wakelock", not enable) +end + +return { + text = _("Keep screen on"), + checked_func = function() + return isWakeLock() + end, + callback = function() + local current = isWakeLock() + android.setWakeLock(not current) + setWakeLock(not current) + end, +} diff --git a/platform/android/luajit-launcher b/platform/android/luajit-launcher index 0e99e3388..c63947f68 160000 --- a/platform/android/luajit-launcher +++ b/platform/android/luajit-launcher @@ -1 +1 @@ -Subproject commit 0e99e33882674633a7460e9f139d4e1151fd60eb +Subproject commit c63947f682dea5a7627def03c6a0eda3f667f854