mirror of
https://github.com/MatsuriDayo/NekoBoxForAndroid.git
synced 2025-12-19 22:50:05 +08:00
Refactor rule provider selection (#547)
This commit is contained in:
parent
fb55430f67
commit
89ef91cebe
@ -249,25 +249,25 @@ class AssetsActivity : ThemedActivity() {
|
||||
|
||||
}
|
||||
|
||||
private val rulesProviders = listOf(
|
||||
RuleAssetsProvider(
|
||||
"SagerNet/sing-geoip",
|
||||
"SagerNet/sing-geosite",
|
||||
),
|
||||
RuleAssetsProvider(
|
||||
"soffchen/sing-geoip",
|
||||
"soffchen/sing-geosite",
|
||||
),
|
||||
RuleAssetsProvider(
|
||||
"Chocolate4U/Iran-sing-box-rules"
|
||||
),
|
||||
)
|
||||
|
||||
suspend fun updateAsset(file: File, versionFile: File, localVersion: String) {
|
||||
val repo: String
|
||||
var fileName = file.name
|
||||
|
||||
if (DataStore.rulesProvider == 0) {
|
||||
if (file.name == assetNames[0]) {
|
||||
repo = "SagerNet/sing-geoip"
|
||||
} else {
|
||||
repo = "SagerNet/sing-geosite"
|
||||
}
|
||||
} else if (DataStore.rulesProvider == 1) {
|
||||
if (file.name == assetNames[0]) {
|
||||
repo = "soffchen/sing-geoip"
|
||||
} else {
|
||||
repo = "soffchen/sing-geosite"
|
||||
}
|
||||
} else {
|
||||
repo = "Chocolate4U/Iran-sing-box-rules"
|
||||
}
|
||||
val ruleProvider = rulesProviders[DataStore.rulesProvider]
|
||||
val repo = ruleProvider.repoByFileName[fileName]
|
||||
|
||||
val client = Libcore.newHttpClient().apply {
|
||||
modernTLS()
|
||||
@ -340,5 +340,17 @@ class AssetsActivity : ThemedActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private data class RuleAssetsProvider(
|
||||
val repoByFileName: Map<String, String>
|
||||
) {
|
||||
constructor(
|
||||
geoipRepo: String,
|
||||
geositeRepo: String = geoipRepo,
|
||||
) : this(
|
||||
mapOf(
|
||||
"geoip.db" to geoipRepo,
|
||||
"geosite.db" to geositeRepo,
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user