From 6f2c96c2b6e4acc9b28e708c5eb36641362e8b74 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Tue, 19 Nov 2024 20:38:44 +0800 Subject: [PATCH] Bug fix https://github.com/2dust/v2rayNG/issues/3988 --- .../main/java/com/v2ray/ang/ui/ServerActivity.kt | 13 ++++++++++--- .../src/main/java/com/v2ray/ang/util/JsonUtil.kt | 8 ++++++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/ServerActivity.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/ServerActivity.kt index a73b6961..f609a49b 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/ServerActivity.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/ServerActivity.kt @@ -26,6 +26,7 @@ import com.v2ray.ang.R import com.v2ray.ang.dto.EConfigType import com.v2ray.ang.dto.NetworkType import com.v2ray.ang.dto.ProfileItem +import com.v2ray.ang.extension.isNotNullEmpty import com.v2ray.ang.extension.toast import com.v2ray.ang.handler.MmkvManager import com.v2ray.ang.util.JsonUtil @@ -168,7 +169,7 @@ class ServerActivity : BaseActivity() { types, when (networks[position]) { NetworkType.GRPC.type -> config?.mode - NetworkType.SPLIT_HTTP.type, NetworkType.XHTTP.type -> config?.xhttpMode + NetworkType.SPLIT_HTTP.type, NetworkType.XHTTP.type -> config?.xhttpMode else -> config?.headerType }.orEmpty() ) @@ -221,7 +222,7 @@ class ServerActivity : BaseActivity() { ) et_extra?.text = Utils.getEditable( when (networks[position]) { - NetworkType.SPLIT_HTTP.type, NetworkType.XHTTP.type -> JsonUtil.toJsonPretty(JsonUtil.parseString(config?.xhttpExtra)) + NetworkType.SPLIT_HTTP.type, NetworkType.XHTTP.type -> config?.xhttpExtra else -> null }.orEmpty() ) @@ -468,6 +469,12 @@ class ServerActivity : BaseActivity() { return false } } + if (et_extra?.text?.toString().isNotNullEmpty()) { + if (JsonUtil.parseString(et_extra?.text?.toString()) == null) { + toast(R.string.server_lab_xhttp_extra) + return false + } + } saveCommon(config) saveStreamSettings(config) @@ -577,7 +584,7 @@ class ServerActivity : BaseActivity() { grpcModes } - NetworkType.SPLIT_HTTP.type, NetworkType.XHTTP.type -> { + NetworkType.SPLIT_HTTP.type, NetworkType.XHTTP.type -> { xhttpMode } diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/util/JsonUtil.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/util/JsonUtil.kt index be109de0..28e7e956 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/util/JsonUtil.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/util/JsonUtil.kt @@ -42,7 +42,11 @@ object JsonUtil { fun parseString(src: String?): JsonObject? { if (src == null) return null - return JsonParser.parseString(src).getAsJsonObject() + try { + return JsonParser.parseString(src).getAsJsonObject() + } catch (e: Exception) { + e.printStackTrace() + return null + } } - } \ No newline at end of file