diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/core/CoreConfigContextBuilder.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/core/CoreConfigContextBuilder.kt index 8bb48333..e23d8fd1 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/core/CoreConfigContextBuilder.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/core/CoreConfigContextBuilder.kt @@ -6,6 +6,7 @@ import com.v2ray.ang.dto.CoreConfigContext import com.v2ray.ang.dto.entities.ProfileItem import com.v2ray.ang.enums.CoreResolvedType import com.v2ray.ang.enums.EConfigType +import com.v2ray.ang.extension.isComplexType import com.v2ray.ang.extension.isNotNullEmpty import com.v2ray.ang.handler.MmkvManager import com.v2ray.ang.handler.SettingsManager @@ -163,9 +164,7 @@ object CoreConfigContextBuilder { } .filter { it.server.isNotNullEmpty() } .filter { !Utils.isPureIpAddress(it.server!!) || Utils.isValidUrl(it.server!!) } - .filter { it.configType != EConfigType.CUSTOM } - .filter { it.configType != EConfigType.POLICYGROUP } - .filter { it.configType != EConfigType.PROXYCHAIN } + .filter { !it.configType.isComplexType() } .toList() } catch (e: Exception) { LogUtil.e(AppConfig.TAG, "Failed to resolve policy group profiles for '${config.remarks}'", e) @@ -184,9 +183,7 @@ object CoreConfigContextBuilder { .mapNotNull { remark -> SettingsManager.getServerViaRemarks(remark) } .filter { it.server.isNotNullEmpty() } .filter { !Utils.isPureIpAddress(it.server!!) || Utils.isValidUrl(it.server!!) } - .filter { it.configType != EConfigType.CUSTOM } - .filter { it.configType != EConfigType.POLICYGROUP } - .filter { it.configType != EConfigType.PROXYCHAIN } + .filter { !it.configType.isComplexType() } .toList() .reversed() } catch (e: Exception) { diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/core/CoreServiceManager.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/core/CoreServiceManager.kt index 35d8559e..e6acf965 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/core/CoreServiceManager.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/core/CoreServiceManager.kt @@ -16,6 +16,7 @@ import com.v2ray.ang.contracts.ServiceControl import com.v2ray.ang.dto.OutboundTrafficStat import com.v2ray.ang.dto.entities.ProfileItem import com.v2ray.ang.enums.EConfigType +import com.v2ray.ang.extension.isComplexType import com.v2ray.ang.extension.toast import com.v2ray.ang.handler.MmkvManager import com.v2ray.ang.handler.NotificationManager @@ -145,9 +146,7 @@ object CoreServiceManager { error(context.getString(R.string.toast_config_file_invalid)) } - if (config.configType != EConfigType.CUSTOM - && config.configType != EConfigType.POLICYGROUP - && config.configType != EConfigType.PROXYCHAIN + if (!config.configType.isComplexType() && !Utils.isValidUrl(config.server) && !Utils.isPureIpAddress(config.server.orEmpty()) ) { diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/GroupServerFragment.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/GroupServerFragment.kt index 5ae354bf..6060859c 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/GroupServerFragment.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/GroupServerFragment.kt @@ -19,6 +19,7 @@ import com.v2ray.ang.databinding.FragmentGroupServerBinding import com.v2ray.ang.databinding.ItemQrcodeBinding import com.v2ray.ang.dto.entities.ProfileItem import com.v2ray.ang.enums.EConfigType +import com.v2ray.ang.extension.isComplexType import com.v2ray.ang.extension.toast import com.v2ray.ang.extension.toastError import com.v2ray.ang.extension.toastSuccess @@ -269,9 +270,7 @@ class GroupServerFragment : BaseFragment(), } override fun onShare(guid: String, profile: ProfileItem, position: Int, more: Boolean) { - val isCustom = profile.configType == EConfigType.CUSTOM - || profile.configType == EConfigType.POLICYGROUP - || profile.configType == EConfigType.PROXYCHAIN + val isCustom = profile.configType.isComplexType() val (shareOptions, skip) = if (more) { val options = if (isCustom) share_method_more.asList().takeLast(3) else share_method_more.asList() diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/ServerProxyChainActivity.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/ServerProxyChainActivity.kt index d5a6f740..f6264e71 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/ServerProxyChainActivity.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/ServerProxyChainActivity.kt @@ -13,6 +13,7 @@ import com.v2ray.ang.contracts.BaseAdapterListener import com.v2ray.ang.databinding.ActivityServerProxyChainBinding import com.v2ray.ang.dto.entities.ProfileItem import com.v2ray.ang.enums.EConfigType +import com.v2ray.ang.extension.isComplexType import com.v2ray.ang.extension.toast import com.v2ray.ang.extension.toastSuccess import com.v2ray.ang.handler.MmkvManager @@ -109,10 +110,7 @@ class ServerProxyChainActivity : BaseActivity() { val invalidMembers = chainMembers.filter { member -> val profile = SettingsManager.getServerViaRemarks(member) - profile == null - || profile.configType == EConfigType.CUSTOM - || profile.configType == EConfigType.POLICYGROUP - || profile.configType == EConfigType.PROXYCHAIN + profile == null || profile.configType.isComplexType() } if (invalidMembers.isNotEmpty()) { toast(getString(R.string.server_proxy_chain_members_invalid, invalidMembers.joinToString(", ")))