mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
[feat, Kobo] Implement shutdown from suspend (#5280)
This allows to shutdown straight from suspend just like Nickel. Fixes <https://github.com/koreader/koreader/issues/2431>.
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user