From 835f9f62c6817a796d560c902e4806be42ef7c5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Fdez?= Date: Sat, 13 Jun 2020 12:57:08 +0200 Subject: [PATCH] fix ANRs in Kosync plugin login/register --- frontend/device/android/device.lua | 4 ++++ frontend/device/generic/device.lua | 3 +++ platform/android/luajit-launcher | 2 +- plugins/kosync.koplugin/main.lua | 7 +++++-- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/frontend/device/android/device.lua b/frontend/device/android/device.lua index 9e4ca3b49..b7529e1c1 100644 --- a/frontend/device/android/device.lua +++ b/frontend/device/android/device.lua @@ -257,6 +257,10 @@ function Device:performHapticFeedback(type) android.hapticFeedback(C["AHAPTIC_"..type]) end +function Device:setIgnoreInput(enable) + android.setIgnoreInput(enable) +end + function Device:retrieveNetworkInfo() local ok, type = android.getNetworkInfo() ok, type = tonumber(ok), tonumber(type) diff --git a/frontend/device/generic/device.lua b/frontend/device/generic/device.lua index 524f818df..2befd8125 100644 --- a/frontend/device/generic/device.lua +++ b/frontend/device/generic/device.lua @@ -315,6 +315,9 @@ Device specific method for performing haptic feedback. --]] function Device:performHapticFeedback(type) end +-- Device specific method for toggling input events +function Device:setIgnoreInput(enable) return true end + -- Device specific method for toggling the GSensor function Device:toggleGSensor(toggle) end diff --git a/platform/android/luajit-launcher b/platform/android/luajit-launcher index 8cb68727e..fc4982b4a 160000 --- a/platform/android/luajit-launcher +++ b/platform/android/luajit-launcher @@ -1 +1 @@ -Subproject commit 8cb68727e2b723759c468f25472191e3415676ec +Subproject commit fc4982b4afd50d2b86ae56e97b3bf09d191c81bb diff --git a/plugins/kosync.koplugin/main.lua b/plugins/kosync.koplugin/main.lua index c12640feb..79c507260 100644 --- a/plugins/kosync.koplugin/main.lua +++ b/plugins/kosync.koplugin/main.lua @@ -384,6 +384,7 @@ function KOSync:doRegister(username, password) custom_url = self.kosync_custom_server, service_spec = self.path .. "/api.json" } + Device:setIgnoreInput(true) local userkey = md5.sum(password) local ok, status, body = pcall(client.register, client, username, userkey) if not ok then @@ -409,7 +410,7 @@ function KOSync:doRegister(username, password) text = body and body.message or _("Unknown server error"), }) end - + Device:setIgnoreInput(false) self:saveSettings() end @@ -419,6 +420,7 @@ function KOSync:doLogin(username, password) custom_url = self.kosync_custom_server, service_spec = self.path .. "/api.json" } + Device:setIgnoreInput(true) local userkey = md5.sum(password) local ok, status, body = pcall(client.authorize, client, username, userkey) if not ok then @@ -432,6 +434,7 @@ function KOSync:doLogin(username, password) text = _("An unknown error occurred while logging in."), }) end + Device:setIgnoreInput(false) return elseif status then self.kosync_username = username @@ -445,7 +448,7 @@ function KOSync:doLogin(username, password) text = body and body.message or _("Unknown server error"), }) end - + Device:setIgnoreInput(false) self:saveSettings() end