logic optimization

https://github.com/2dust/v2rayNG/issues/3470
This commit is contained in:
2dust committed 2024-08-14 15:06:21 +08:00
1 parent 7f6a526b25
commit a0223a3eee
2 files changed
+10 -6

No files matched your search

@@ -22,7 +22,7 @@ class UrlSchemeActivity : BaseActivity() {
if (action == Intent.ACTION_SEND) {
if ("text/plain" == type) {
intent.getStringExtra(Intent.EXTRA_TEXT)?.let {
parseUri(it)
parseUri(it, null)
}
}
} else if (action == Intent.ACTION_VIEW) {
@@ -30,13 +30,13 @@ class UrlSchemeActivity : BaseActivity() {
"install-config" -> {
val uri: Uri? = intent.data
val shareUrl = uri?.getQueryParameter("url") ?: ""
parseUri(shareUrl)
parseUri(shareUrl, uri?.fragment)
}
"install-sub" -> {
val uri: Uri? = intent.data
val shareUrl = uri?.getQueryParameter("url") ?: ""
parseUri(shareUrl)
parseUri(shareUrl, uri?.fragment)
}
else -> {
@@ -53,15 +53,19 @@ class UrlSchemeActivity : BaseActivity() {
}
}
private fun parseUri(uriString: String?) {
private fun parseUri(uriString: String?, fragment: String?) {
if (uriString.isNullOrEmpty()) {
return
}
Log.d("UrlScheme", uriString)
val decodedUrl = URLDecoder.decode(uriString, "UTF-8")
var decodedUrl = URLDecoder.decode(uriString, "UTF-8")
val uri = Uri.parse(decodedUrl)
if (uri != null) {
if (uri.fragment.isNullOrEmpty() && !fragment.isNullOrEmpty()) {
decodedUrl += "#${fragment}"
}
Log.d("UrlScheme-decodedUrl", decodedUrl)
val (count, countSub) = AngConfigManager.importBatchConfig(decodedUrl, "", false)
if (count + countSub > 0) {
toast(R.string.import_subscription_success)
@@ -147,7 +147,7 @@ object MmkvManager {
}
val uri = URI(Utils.fixIllegalUrl(url))
val subItem = SubscriptionItem()
subItem.remarks = Utils.urlDecode(uri.fragment ?: "import sub")
subItem.remarks = uri.fragment ?: "import sub"
subItem.url = url
subStorage?.encode(Utils.getUuid(), Gson().toJson(subItem))
return 1