From 19d13b1876e38a45c5f98cd26bc13b83743eddec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Fern=C3=A1ndez?= Date: Fri, 1 Feb 2019 09:18:27 +0100 Subject: [PATCH] [feat, Android] Add basic support for android eink refreshes on some rockchip devices (#4517) Supported devices: - Boyue T61 and *some* clones - Boyue T62 and *some* clones - Onyx C67 - Energy Sistem (which are in fact Boyue T62 clones). Was tested on a energy pro 4. Others may work with the same controller too, but are disabled by default. Requires https://github.com/koreader/koreader-base/pull/798 Requires https://github.com/koreader/android-luajit-launcher/pull/96 Fixes #4373 Fixes #1613 (supported devices will show the "full refresh rate" option under eink settings. Others won't) Related #4228 (need to add support for this specific device to work) --- frontend/device/android/device.lua | 1 + frontend/device/generic/device.lua | 1 + frontend/device/sdl/device.lua | 2 ++ frontend/ui/elements/screen_eink_opt_menu_table.lua | 3 +-- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/frontend/device/android/device.lua b/frontend/device/android/device.lua index 83312f9b5..1e7fa7c66 100644 --- a/frontend/device/android/device.lua +++ b/frontend/device/android/device.lua @@ -13,6 +13,7 @@ local Device = Generic:new{ hasKeys = yes, hasDPad = no, isAndroid = yes, + hasEinkScreen = android.isEink(), hasFrontlight = yes, firmware_rev = android.app.activity.sdkVersion, display_dpi = android.lib.AConfiguration_getDensity(android.app.config), diff --git a/frontend/device/generic/device.lua b/frontend/device/generic/device.lua index e6d536b5b..c9bf84996 100644 --- a/frontend/device/generic/device.lua +++ b/frontend/device/generic/device.lua @@ -25,6 +25,7 @@ local Device = { hasFrontlight = no, needsTouchScreenProbe = no, hasClipboard = yes, -- generic internal clipboard on all devices + hasEinkScreen = yes, hasColorScreen = no, hasBGRFrameBuffer = no, canToggleGSensor = no, diff --git a/frontend/device/sdl/device.lua b/frontend/device/sdl/device.lua index 6e4eb1e4b..4384c99f0 100644 --- a/frontend/device/sdl/device.lua +++ b/frontend/device/sdl/device.lua @@ -15,6 +15,7 @@ local Device = Generic:new{ isTouchDevice = yes, needsScreenRefreshAfterResume = no, hasColorScreen = yes, + hasEinkScreen = no, } local AppImage = Device:new{ @@ -24,6 +25,7 @@ local AppImage = Device:new{ local Emulator = Device:new{ model = "Emulator", isEmulator = yes, + hasEinkScreen = yes, hasFrontlight = yes, } diff --git a/frontend/ui/elements/screen_eink_opt_menu_table.lua b/frontend/ui/elements/screen_eink_opt_menu_table.lua index 9cd8611b7..a1d513e54 100644 --- a/frontend/ui/elements/screen_eink_opt_menu_table.lua +++ b/frontend/ui/elements/screen_eink_opt_menu_table.lua @@ -25,8 +25,7 @@ local eink_settings_table = { }, } --- TODO reactivate if someone reverse engineers Android E Ink stuff -if not Device:isAndroid() then +if Device.hasEinkScreen then table.insert(eink_settings_table.sub_item_table, 1, require("ui/elements/refresh_menu_table")) end