From 52710020eae94b4c522285c2d47cef00b4fd4a4e Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Fri, 19 Jan 2024 17:44:35 +0800 Subject: [PATCH] update subscription 4 custom configuration --- .../v2ray/ang/service/SubscriptionUpdater.kt | 3 +++ .../kotlin/com/v2ray/ang/ui/MainActivity.kt | 3 +++ .../com/v2ray/ang/util/AngConfigManager.kt | 20 +++++++++++++++++++ 3 files changed, 26 insertions(+) diff --git a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/service/SubscriptionUpdater.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/service/SubscriptionUpdater.kt index acbe00403..6b836c1f8 100644 --- a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/service/SubscriptionUpdater.kt +++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/service/SubscriptionUpdater.kt @@ -73,5 +73,8 @@ object SubscriptionUpdater { if (count <= 0) { AngConfigManager.importBatchConfig(Utils.decode(server!!), subid, append) } + if (count <= 0) { + AngConfigManager.appendCustomConfigServer(server, subid) + } } } \ No newline at end of file diff --git a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/MainActivity.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/MainActivity.kt index 4c575d0bd..fa2d5f194 100644 --- a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/MainActivity.kt +++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/MainActivity.kt @@ -419,6 +419,9 @@ class MainActivity : BaseActivity(), NavigationView.OnNavigationItemSelectedList if (count <= 0) { count = AngConfigManager.importBatchConfig(Utils.decode(server!!), subid2, append) } + if (count <= 0) { + count = AngConfigManager.appendCustomConfigServer(server, subid2) + } if (count > 0) { toast(R.string.toast_success) mainViewModel.reloadServerList() 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 6e333acb0..ed886b9d7 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 @@ -975,4 +975,24 @@ object AngConfigManager { return true } + + fun appendCustomConfigServer(server: String?, subid: String): Int { + if (server == null) { + return 0 + } + if (server.contains("inbounds") + && server.contains("outbounds") + && server.contains("routing") + ) { + val config = ServerConfig.create(EConfigType.CUSTOM) + config.remarks = System.currentTimeMillis().toString() + config.subscriptionId = subid + config.fullConfig = Gson().fromJson(server, V2rayConfig::class.java) + val key = MmkvManager.encodeServerConfig("", config) + serverRawStorage?.encode(key, server) + return 1 + } else { + return 0 + } + } }