From 55c0fc6190d1be330b4efb9a8447982b6c52daee Mon Sep 17 00:00:00 2001 From: poire-z Date: Mon, 8 Aug 2022 11:42:56 +0200 Subject: [PATCH] CanvasContext.hasEinkScreen(): avoid crash on Android (#9417) It is used by CoverBrowser, in a subprocess, when extracting metadata from PicDocuments, and crash on Android as calling android methods is only allowed from the main thread. --- frontend/document/canvascontext.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/frontend/document/canvascontext.lua b/frontend/document/canvascontext.lua index 0bdd14609..6622341f3 100644 --- a/frontend/document/canvascontext.lua +++ b/frontend/document/canvascontext.lua @@ -52,7 +52,11 @@ function CanvasContext:init(device) Mupdf.bgr = true end - self.hasEinkScreen = device.hasEinkScreen + -- This one may be called by a subprocess, and would crash on Android when + -- calling android.isEink() which is only allowed from the main thread. + local hasEinkScreen = device.hasEinkScreen() + self.hasEinkScreen = function() return hasEinkScreen end + self.canHWDither = device.canHWDither self.fb_bpp = device.screen.fb_bpp end