2
0
mirror of https://github.com/koreader/koreader synced 2024-11-16 06:12:56 +00:00
koreader/frontend/ui/elements/screen_android.lua
2019-01-22 14:27:14 +01:00

53 lines
1.8 KiB
Lua

local isAndroid, android = pcall(require, "android")
local Device = require("device")
local Geom = require("ui/geometry")
local logger = require("logger")
local Input = Device.input
local Screen = Device.screen
if not isAndroid then return end
local ScreenHelper = {}
-- toggle android status bar visibility
function ScreenHelper:toggleFullscreen()
-- toggle android status bar visibility
local is_fullscreen = android.isFullscreen()
android.setFullscreen(not is_fullscreen)
logger.dbg(string.format("requesting fullscreen: %s", not is_fullscreen))
local screen_width = android.getScreenWidth()
local screen_height = android.getScreenHeight()
local status_bar_height = android.getStatusBarHeight()
local new_height = screen_height - status_bar_height
if not is_fullscreen and Screen.viewport then
status_bar_height = 0
-- reset touchTranslate to normal
Input:registerEventAdjustHook(
Input.adjustTouchTranslate,
{x = 0 + Screen.viewport.x, y = 0 + Screen.viewport.y})
end
local viewport = Geom:new{x=0, y=status_bar_height, w=screen_width, h=new_height}
logger.info(string.format("Switching viewport to new geometry [x=%d,y=%d,w=%d,h=%d]",
0, status_bar_height, screen_width, new_height))
Screen:setViewport(viewport)
if is_fullscreen and Screen.viewport then
Input:registerEventAdjustHook(
Input.adjustTouchTranslate,
{x = 0 - Screen.viewport.x, y = 0 - Screen.viewport.y})
end
end
-- toggle android wakelock support
function ScreenHelper:toggleWakelock()
local is_wakelock = G_reader_settings:isTrue("enable_android_wakelock")
android.setWakeLock(not is_wakelock)
G_reader_settings:saveSetting("enable_android_wakelock", not is_wakelock)
end
return ScreenHelper