Fix threading for callbacks from browser

This commit is contained in:
Kelvin
2026-01-31 13:15:09 +01:00
parent 067abc415b
commit 8469f17b4c
@@ -168,8 +168,10 @@ class PackageBrowser: V8Package {
browser.evaluateJavascript(js, object : ValueCallback<String> {
override fun onReceiveValue(value: String?) {
Logger.i("PackageBrowser", "Browser run returned: " + (value ?: ""));
StateApp.instance.scopeOrNull?.launch(Dispatchers.IO) {
funcClone?.callVoid(null, arrayOf(value));
}
}
})
}
catch(ex: Throwable) {
@@ -184,9 +186,12 @@ 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)
if(callback != null) {
StateApp.instance.scopeOrNull?.launch(Dispatchers.IO) {
callback.invoke(result);
}
}
}
@JavascriptInterface
fun log(msg: String) {