diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/handler/UpdateCheckerManager.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/handler/UpdateCheckerManager.kt index 37b55c2e..ce2a748b 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/handler/UpdateCheckerManager.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/handler/UpdateCheckerManager.kt @@ -100,8 +100,19 @@ object UpdateCheckerManager { } private fun getDownloadUrl(release: GitHubRelease, abi: String): String { - return release.assets.find { it.name.contains(abi) }?.browserDownloadUrl - ?: release.assets.firstOrNull()?.browserDownloadUrl + val fDroid = "fdroid" + + val assetsByAbi = release.assets.filter { + (it.name.contains(abi, true)) + } + + val asset = if (BuildConfig.APPLICATION_ID.contains(fDroid, ignoreCase = true)) { + assetsByAbi.firstOrNull { it.name.contains(fDroid) } + } else { + assetsByAbi.firstOrNull { !it.name.contains(fDroid) } + } + + return asset?.browserDownloadUrl ?: throw IllegalStateException("No compatible APK found") } }