From 2009ffa12f52cd34f3b6be411dc8c0508790a3d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Fern=C3=A1ndez?= Date: Thu, 10 Jan 2019 03:11:06 +0100 Subject: [PATCH] android: keep screen awake toggle (using wakelocks) & bump luajit-launcher --- frontend/device/android/device.lua | 11 ++++++--- .../elements/common_settings_menu_table.lua | 1 + .../ui/elements/screen_keep_on_menu_table.lua | 24 +++++++++++++++++++ platform/android/luajit-launcher | 2 +- 4 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 frontend/ui/elements/screen_keep_on_menu_table.lua 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