fix wireguard issue (#3260)

fix crash when invalid wireguard config imported
This commit is contained in:
GFW-knocker
2024-06-28 05:11:55 +03:30
committed by GitHub
parent eba9545ccf
commit 838b346fcc
2 changed files with 13 additions and 6 deletions

View File

@@ -97,7 +97,13 @@ class MainRecyclerAdapter(val activity: MainActivity) : RecyclerView.Adapter<Mai
holder.itemMainBinding.tvType.text = config.configType.name.lowercase()
}
}
val strState = "${outbound?.getServerAddress()?.dropLast(3)}*** : ${outbound?.getServerPort()}"
val strState = try{
"${outbound?.getServerAddress()?.dropLast(3)}*** : ${outbound?.getServerPort()}"
}catch(e: Exception){
""
}
holder.itemMainBinding.tvStatistics.text = strState
holder.itemMainBinding.layoutShare.setOnClickListener {

View File

@@ -10,11 +10,11 @@ import java.net.URI
object WireguardFmt {
fun parseWireguard(str: String): ServerConfig? {
val config = ServerConfig.create(EConfigType.WIREGUARD)
val uri = URI(Utils.fixIllegalUrl(str))
config.remarks = Utils.urlDecode(uri.fragment ?: "")
if (uri.rawQuery != null) {
val config = ServerConfig.create(EConfigType.WIREGUARD)
config.remarks = Utils.urlDecode(uri.fragment ?: "")
val queryParam = uri.rawQuery.split("&")
.associate { it.split("=").let { (k, v) -> k to Utils.urlDecode(v) } }
@@ -31,9 +31,10 @@ object WireguardFmt {
(queryParam["reserved"] ?: "0,0,0").removeWhiteSpace().split(",")
.map { it.toInt() }
}
return config
}else {
return null
}
return config
}
fun toUri(config: ServerConfig): String {