diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/handler/AngConfigManager.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/handler/AngConfigManager.kt index d3eb6751..49adbcef 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/handler/AngConfigManager.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/handler/AngConfigManager.kt @@ -280,7 +280,7 @@ object AngConfigManager { val config = CustomFmt.parse(JsonUtil.toJson(srv)) ?: continue config.subscriptionId = subid val key = MmkvManager.encodeServerConfig("", config) - MmkvManager.encodeServerRaw(key, JsonUtil.toJsonPretty(srv)) + MmkvManager.encodeServerRaw(key, JsonUtil.toJsonPretty(srv)?:"") count += 1 } return count 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 b89b52ff..be109de0 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 @@ -2,6 +2,8 @@ package com.v2ray.ang.util import com.google.gson.Gson import com.google.gson.GsonBuilder +import com.google.gson.JsonObject +import com.google.gson.JsonParser import com.google.gson.JsonPrimitive import com.google.gson.JsonSerializationContext import com.google.gson.JsonSerializer @@ -15,11 +17,13 @@ object JsonUtil { return gson.toJson(src) } - fun fromJson(json: String, cls: Class): T { - return gson.fromJson(json, cls) + fun fromJson(src: String, cls: Class): T { + return gson.fromJson(src, cls) } - fun toJsonPretty(src: Any?): String { + fun toJsonPretty(src: Any?): String? { + if (src == null) + return null val gsonPre = GsonBuilder() .setPrettyPrinting() .disableHtmlEscaping() @@ -34,4 +38,11 @@ object JsonUtil { .create() return gsonPre.toJson(src) } + + fun parseString(src: String?): JsonObject? { + if (src == null) + return null + return JsonParser.parseString(src).getAsJsonObject() + } + } \ No newline at end of file diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/util/Utils.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/util/Utils.kt index 58b6e05d..69bdffd9 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/util/Utils.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/util/Utils.kt @@ -295,7 +295,7 @@ object Utils { fun urlEncode(url: String): String { return try { - URLEncoder.encode(url, Charsets.UTF_8.toString()) + URLEncoder.encode(url, Charsets.UTF_8.toString()).replace("+", "%20") } catch (e: Exception) { e.printStackTrace() url