From 779f1b5ac9e35dcff7097749802fae2e40a8cb6b Mon Sep 17 00:00:00 2001 From: Frans de Jonge Date: Thu, 29 Aug 2019 19:20:08 +0200 Subject: [PATCH] [feat, Kobo] Implement shutdown from suspend This allows to shutdown straight from suspend just like Nickel. Fixes . --- frontend/device/input.lua | 14 ++++---------- frontend/ui/uimanager.lua | 9 ++++++++- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/frontend/device/input.lua b/frontend/device/input.lua index 1b53155adb09..98f4e00990e4 100644 --- a/frontend/device/input.lua +++ b/frontend/device/input.lua @@ -343,16 +343,10 @@ function Input:handleKeyBoardEv(ev) if keycode == "Power" then -- Kobo generates Power keycode only, we need to decide whether it's -- power-on or power-off ourselves. - if self.device.screen_saver_mode then - if ev.value == EVENT_VALUE_KEY_RELEASE then - return "Resume" - end - else - if ev.value == EVENT_VALUE_KEY_PRESS then - return "PowerPress" - elseif ev.value == EVENT_VALUE_KEY_RELEASE then - return "PowerRelease" - end + if ev.value == EVENT_VALUE_KEY_PRESS then + return "PowerPress" + elseif ev.value == EVENT_VALUE_KEY_RELEASE then + return "PowerRelease" end end diff --git a/frontend/ui/uimanager.lua b/frontend/ui/uimanager.lua index 0274383d6018..81792c67e8a6 100644 --- a/frontend/ui/uimanager.lua +++ b/frontend/ui/uimanager.lua @@ -109,12 +109,19 @@ function UIManager:init() end end self.event_handlers["PowerPress"] = function() + -- Always schedule power off. + -- Press the power button for 2+ seconds to shutdown directly from suspend. UIManager:scheduleIn(2, self.poweroff_action) end self.event_handlers["PowerRelease"] = function() if not self._entered_poweroff_stage then UIManager:unschedule(self.poweroff_action) - self:suspend() + -- resume if we were suspended + if Device.screen_saver_mode then + self:resume() + else + self:suspend() + end end end -- Sleep Cover handling