From 6a5900b136f9f2edc6547cd1a3260b9fb3e76023 Mon Sep 17 00:00:00 2001 From: koalasat Date: Thu, 24 Jul 2025 16:21:53 +0200 Subject: [PATCH 1/2] Refactor android app messages --- .../src/main/java/com/robosats/WebAppInterface.kt | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/android/app/src/main/java/com/robosats/WebAppInterface.kt b/android/app/src/main/java/com/robosats/WebAppInterface.kt index dddfd2ea..0cfae1d2 100644 --- a/android/app/src/main/java/com/robosats/WebAppInterface.kt +++ b/android/app/src/main/java/com/robosats/WebAppInterface.kt @@ -319,14 +319,8 @@ class WebAppInterface(private val context: Context, private val webView: WebView } private fun onWsMessage(path: String?, message: String?) { - val escapedMessage = message - ?.replace("\\", "\\\\") - ?.replace("'", "\\'") - ?.replace("\"", "\\\"") - ?.replace("\n", "\\n") - ?.replace("\r", "\\r") - ?.replace("\t", "\\t") - safeEvaluateJavascript("javascript:window.AndroidRobosats.onWSMessage('$path', '$escapedMessage')") + val encodedMessage = encodeForJavaScript(message) + safeEvaluateJavascript("javascript:window.AndroidRobosats.onWSMessage('$path', '$encodedMessage')") } private fun onWsError(path: String?) { @@ -386,7 +380,9 @@ class WebAppInterface(private val context: Context, private val webView: WebView } } - private fun encodeForJavaScript(input: String): String { + private fun encodeForJavaScript(input: String?): String { + if (input == null) return "" + return input.replace("\\", "\\\\") .replace("'", "\\'") .replace("\"", "\\\"") From 34aefb99e5ead691c889e754f9eb931f72394b38 Mon Sep 17 00:00:00 2001 From: koalasat Date: Thu, 24 Jul 2025 16:23:09 +0200 Subject: [PATCH 2/2] Refactor android app messages 2 --- android/app/src/main/java/com/robosats/WebAppInterface.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/android/app/src/main/java/com/robosats/WebAppInterface.kt b/android/app/src/main/java/com/robosats/WebAppInterface.kt index 0cfae1d2..1d569bac 100644 --- a/android/app/src/main/java/com/robosats/WebAppInterface.kt +++ b/android/app/src/main/java/com/robosats/WebAppInterface.kt @@ -388,6 +388,7 @@ class WebAppInterface(private val context: Context, private val webView: WebView .replace("\"", "\\\"") .replace("\n", "\\n") .replace("\r", "\\r") + .replace("\t", "\\t") .replace("<", "\\u003C") .replace(">", "\\u003E") .replace("&", "\\u0026")