From 8469f17b4c648e81451d759f862c0cee4b876be4 Mon Sep 17 00:00:00 2001 From: Kelvin Date: Sat, 31 Jan 2026 13:15:09 +0100 Subject: [PATCH] Fix threading for callbacks from browser --- .../platformplayer/engine/packages/PackageBrowser.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/futo/platformplayer/engine/packages/PackageBrowser.kt b/app/src/main/java/com/futo/platformplayer/engine/packages/PackageBrowser.kt index 4cf0ab09..36639ba4 100644 --- a/app/src/main/java/com/futo/platformplayer/engine/packages/PackageBrowser.kt +++ b/app/src/main/java/com/futo/platformplayer/engine/packages/PackageBrowser.kt @@ -168,7 +168,9 @@ class PackageBrowser: V8Package { browser.evaluateJavascript(js, object : ValueCallback { override fun onReceiveValue(value: String?) { Logger.i("PackageBrowser", "Browser run returned: " + (value ?: "")); - funcClone?.callVoid(null, arrayOf(value)); + StateApp.instance.scopeOrNull?.launch(Dispatchers.IO) { + funcClone?.callVoid(null, arrayOf(value)); + } } }) } @@ -184,8 +186,11 @@ class PackageBrowser: V8Package { fun callback(id: String, result: String) { Logger.i("PackageBrowser", "Browser Callback [${id}]: ${result}"); val callback = synchronized(pack._callbacks) { pack._callbacks.remove(id); }; - if(callback != null) - callback.invoke(result); + if(callback != null) { + StateApp.instance.scopeOrNull?.launch(Dispatchers.IO) { + callback.invoke(result); + } + } } @JavascriptInterface