From 622cafbfd6b308b01f1c63b57f32c0a500dea0fd Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Fri, 27 Sep 2024 09:24:44 +0800 Subject: [PATCH] fix Gson fromJson https://github.com/2dust/v2rayNG/issues/3534 --- .../com/v2ray/ang/util/AngConfigManager.kt | 38 ++++++++++++------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/AngConfigManager.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/AngConfigManager.kt index 14974e15..0be074f0 100644 --- a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/AngConfigManager.kt +++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/AngConfigManager.kt @@ -314,21 +314,31 @@ object AngConfigManager { e.printStackTrace() } - // For compatibility - val config = ServerConfig.create(EConfigType.CUSTOM) - config.subscriptionId = subid - config.fullConfig = Gson().fromJson(server, V2rayConfig::class.java) - config.remarks = config.fullConfig?.remarks ?: System.currentTimeMillis().toString() - val key = MmkvManager.encodeServerConfig("", config) - MmkvManager.encodeServerRaw(key, server) - return 1 + try { + // For compatibility + val config = ServerConfig.create(EConfigType.CUSTOM) + config.subscriptionId = subid + config.fullConfig = Gson().fromJson(server, V2rayConfig::class.java) + config.remarks = config.fullConfig?.remarks ?: System.currentTimeMillis().toString() + val key = MmkvManager.encodeServerConfig("", config) + MmkvManager.encodeServerRaw(key, server) + return 1 + } catch (e: Exception) { + e.printStackTrace() + } + return 0 } else if (server.startsWith("[Interface]") && server.contains("[Peer]")) { - val config = WireguardFmt.parseWireguardConfFile(server) - ?: return R.string.toast_incorrect_protocol - config.fullConfig?.remarks ?: System.currentTimeMillis().toString() - val key = MmkvManager.encodeServerConfig("", config) - MmkvManager.encodeServerRaw(key, server) - return 1 + try { + val config = WireguardFmt.parseWireguardConfFile(server) + ?: return R.string.toast_incorrect_protocol + config.fullConfig?.remarks ?: System.currentTimeMillis().toString() + val key = MmkvManager.encodeServerConfig("", config) + MmkvManager.encodeServerRaw(key, server) + return 1 + } catch (e: Exception) { + e.printStackTrace() + } + return 0 } else { return 0 }