diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/MainRecyclerAdapter.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/MainRecyclerAdapter.kt index 38949a76..7e927858 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/MainRecyclerAdapter.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/MainRecyclerAdapter.kt @@ -1,3 +1,4 @@ + package com.v2ray.ang.ui import android.annotation.SuppressLint @@ -58,7 +59,7 @@ class MainRecyclerAdapter( //Name address holder.itemMainBinding.tvName.text = profile.remarks holder.itemMainBinding.tvStatistics.text = getAddress(profile) - holder.itemMainBinding.tvType.text = profile.configType.name + holder.itemMainBinding.tvType.text = getProtocolDescription(profile) //TestResult val aff = MmkvManager.decodeServerAffiliationInfo(guid) @@ -140,6 +141,28 @@ class MainRecyclerAdapter( return subRemarks?.toString() ?: "" } + private fun getProtocolDescription(profile: ProfileItem): String { + val parts = mutableListOf() + + parts.add(profile.configType.name) + + // Transport: hide tcp or blank + profile.network?.let { net -> + if (net.isNotBlank() && !net.equals("tcp", ignoreCase = true)) { + parts.add(net) + } + } + + // Security: hide blank or tls + profile.security?.let { sec -> + if (sec.isNotBlank() && !sec.equals("tls", ignoreCase = true)) { + parts.add(sec) + } + } + + return parts.joinToString("/") + } + fun removeServerSub(guid: String, position: Int) { val idx = data.indexOfFirst { it.guid == guid } if (idx >= 0) { @@ -203,4 +226,4 @@ class MainRecyclerAdapter( override fun onItemDismiss(position: Int) { } -} \ No newline at end of file +}