From f67af69ddaa5b223007c40e798b5979ca62e1404 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Tue, 19 Nov 2024 10:09:03 +0800 Subject: [PATCH] Improve Utils --- .../com/v2ray/ang/handler/AngConfigManager.kt | 2 +- .../main/java/com/v2ray/ang/util/JsonUtil.kt | 17 ++++++++++++++--- .../src/main/java/com/v2ray/ang/util/Utils.kt | 2 +- 3 files changed, 16 insertions(+), 5 deletions(-) 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