Skip to content

Commit ca16c22

Browse files
2dustAnGgIt886
authored andcommitted
Add preset ruleset routing
1 parent c1ee5e8 commit ca16c22

File tree

8 files changed

+45
-19
lines changed

8 files changed

+45
-19
lines changed

app/src/main/assets/custom_routing_block

Lines changed: 0 additions & 3 deletions
This file was deleted.

app/src/main/assets/custom_routing_direct

Lines changed: 0 additions & 1 deletion
This file was deleted.

app/src/main/assets/custom_routing_proxy

Lines changed: 0 additions & 1 deletion
This file was deleted.

app/src/main/kotlin/com/neko/v2ray/ui/RoutingSettingActivity.kt

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ class RoutingSettingActivity : BaseActivity() {
3131
private val routing_domain_strategy: Array<out String> by lazy {
3232
resources.getStringArray(R.array.routing_domain_strategy)
3333
}
34+
private val preset_rulesets: Array<out String> by lazy {
35+
resources.getStringArray(R.array.preset_rulesets)
36+
}
3437

3538
override fun onCreate(savedInstanceState: Bundle?) {
3639
super.onCreate(savedInstanceState)
@@ -80,13 +83,21 @@ class RoutingSettingActivity : BaseActivity() {
8083
R.id.import_rulesets -> {
8184
AlertDialog.Builder(this).setMessage(R.string.routing_settings_import_rulesets_tip)
8285
.setPositiveButton(android.R.string.ok) { _, _ ->
83-
lifecycleScope.launch(Dispatchers.IO) {
84-
SettingsManager.resetRoutingRulesets(this@RoutingSettingActivity)
85-
launch(Dispatchers.Main) {
86-
refreshData()
87-
toast(R.string.toast_success)
86+
AlertDialog.Builder(this).setItems(preset_rulesets.asList().toTypedArray()) { _, i ->
87+
try {
88+
lifecycleScope.launch(Dispatchers.IO) {
89+
SettingsManager.resetRoutingRulesets(this@RoutingSettingActivity, i)
90+
launch(Dispatchers.Main) {
91+
refreshData()
92+
toast(R.string.toast_success)
93+
}
94+
}
95+
} catch (e: Exception) {
96+
e.printStackTrace()
8897
}
89-
}
98+
}.show()
99+
100+
90101
}
91102
.setNegativeButton(android.R.string.no) { _, _ ->
92103
//do noting

app/src/main/kotlin/com/neko/v2ray/util/SettingsManager.kt

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,34 @@ package com.neko.v2ray.util
22

33
import android.content.Context
44
import android.text.TextUtils
5-
import android.util.Log
65
import com.google.gson.Gson
76
import com.neko.v2ray.dto.RulesetItem
87

98
object SettingsManager {
109

11-
fun initRoutingRulesets(context: Context) {
12-
Log.d("=====", "initRoutingRuleset")
10+
fun initRoutingRulesets(context: Context, index: Int = 0) {
1311
val exist = MmkvManager.decodeRoutingRulesets()
1412

13+
val fileName = when (index) {
14+
0 -> "custom_routing_white"
15+
1 -> "custom_routing_black"
16+
2 -> "custom_routing_global"
17+
else -> "custom_routing_white"
18+
}
1519
if (exist.isNullOrEmpty()) {
16-
Log.d("=====", "isNullOrEmpty")
17-
val assets = Utils.readTextFromAssets(context, "custom_routing_white")
20+
val assets = Utils.readTextFromAssets(context, fileName)
1821
if (TextUtils.isEmpty(assets)) {
1922
return
2023
}
2124

2225
val rulesetList = Gson().fromJson(assets, Array<RulesetItem>::class.java).toMutableList()
23-
Log.d("=====", "rulesetList==" + rulesetList.count())
2426
MmkvManager.encodeRoutingRulesets(rulesetList)
2527
}
2628
}
2729

28-
fun resetRoutingRulesets(context: Context) {
30+
fun resetRoutingRulesets(context: Context, index: Int) {
2931
MmkvManager.encodeRoutingRulesets(null)
30-
initRoutingRulesets(context)
32+
initRoutingRulesets(context, index)
3133
}
3234

3335
fun getRoutingRuleset(index: Int): RulesetItem? {

app/src/main/res/values-zh-rCN/arrays.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,10 @@
2121
<item>VPN</item>
2222
<item>仅代理</item>
2323
</string-array>
24+
25+
<string-array name="preset_rulesets">
26+
<item>绕过大陆(Whitelist)</item>
27+
<item>黑名单(Blacklist)</item>
28+
<item>全局(Global)</item>
29+
</string-array>
2430
</resources>

app/src/main/res/values-zh-rTW/arrays.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,10 @@
2121
<item>VPN</item>
2222
<item>僅 Proxy</item>
2323
</string-array>
24+
25+
<string-array name="preset_rulesets">
26+
<item>绕过大陆(Whitelist)</item>
27+
<item>黑名单(Blacklist)</item>
28+
<item>全局(Global)</item>
29+
</string-array>
2430
</resources>

app/src/main/res/values/arrays.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,10 @@
2121
<item>VPN</item>
2222
<item>Proxy only</item>
2323
</string-array>
24+
25+
<string-array name="preset_rulesets">
26+
<item>China Whitelist</item>
27+
<item>China Blacklist</item>
28+
<item>Global</item>
29+
</string-array>
2430
</resources>

0 commit comments

Comments
 (0)