Skip to content

Commit 8693ba8

Browse files
2dustAnGgIt886
authored andcommitted
Subscribe to add alias regular filter Add const LOOPBACK
1 parent bf6d43c commit 8693ba8

File tree

20 files changed

+55
-8
lines changed

20 files changed

+55
-8
lines changed

app/src/main/kotlin/com/neko/v2ray/AppConfig.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ object AppConfig {
116116
const val WIREGUARD_LOCAL_ADDRESS_V4 = "172.16.0.2/32"
117117
const val WIREGUARD_LOCAL_ADDRESS_V6 = "2606:4700:110:8f81:d551:a0:532e:a2b3/128"
118118
const val WIREGUARD_LOCAL_MTU = "1420"
119+
const val LOOPBACK = "127.0.0.1"
119120

120121
/** Message constants for communication. */
121122
const val MSG_REGISTER_CLIENT = 1

app/src/main/kotlin/com/neko/v2ray/dto/SubscriptionItem.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,6 @@ data class SubscriptionItem(
1010
val updateInterval: Int? = null,
1111
var prevProfile: String? = null,
1212
var nextProfile: String? = null,
13+
var filter: String? = null,
1314
)
1415

app/src/main/kotlin/com/neko/v2ray/service/V2RayVpnService.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import android.os.StrictMode
1717
import android.util.Log
1818
import androidx.annotation.RequiresApi
1919
import com.neko.v2ray.AppConfig
20+
import com.neko.v2ray.AppConfig.LOOPBACK
2021
import com.neko.v2ray.BuildConfig
2122
import com.neko.v2ray.R
2223
import com.neko.v2ray.util.MmkvManager.settingsStorage
@@ -207,7 +208,7 @@ class V2RayVpnService : VpnService(), ServiceControl {
207208
File(applicationContext.applicationInfo.nativeLibraryDir, TUN2SOCKS).absolutePath,
208209
"--netif-ipaddr", PRIVATE_VLAN4_ROUTER,
209210
"--netif-netmask", "255.255.255.252",
210-
"--socks-server-addr", "127.0.0.1:${socksPort}",
211+
"--socks-server-addr", "$LOOPBACK:${socksPort}",
211212
"--tunmtu", VPN_MTU.toString(),
212213
"--sock-path", "sock_path",//File(applicationContext.filesDir, "sock_path").absolutePath,
213214
"--enable-udprelay",
@@ -221,7 +222,7 @@ class V2RayVpnService : VpnService(), ServiceControl {
221222
if (settingsStorage?.decodeBool(AppConfig.PREF_LOCAL_DNS_ENABLED) == true) {
222223
val localDnsPort = Utils.parseInt(settingsStorage?.decodeString(AppConfig.PREF_LOCAL_DNS_PORT), AppConfig.PORT_LOCAL_DNS.toInt())
223224
cmd.add("--dnsgw")
224-
cmd.add("127.0.0.1:${localDnsPort}")
225+
cmd.add("$LOOPBACK:${localDnsPort}")
225226
}
226227
Log.d(packageName, cmd.toString())
227228

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ class SubEditActivity : BaseActivity() {
9696
private fun bindingServer(subItem: SubscriptionItem): Boolean {
9797
binding.etRemarks.text = Utils.getEditable(subItem.remarks)
9898
binding.etUrl.text = Utils.getEditable(subItem.url)
99+
binding.etFilter.text = Utils.getEditable(subItem.filter)
99100
binding.chkEnable.isChecked = subItem.enabled
100101
binding.autoUpdateCheck.isChecked = subItem.autoUpdate
101102
binding.etPreProfile.text = Utils.getEditable(subItem.prevProfile)
@@ -109,6 +110,7 @@ class SubEditActivity : BaseActivity() {
109110
private fun clearServer(): Boolean {
110111
binding.etRemarks.text = null
111112
binding.etUrl.text = null
113+
binding.etFilter.text = null
112114
binding.chkEnable.isChecked = true
113115
binding.etPreProfile.text = null
114116
binding.etNextProfile.text = null
@@ -119,10 +121,11 @@ class SubEditActivity : BaseActivity() {
119121
* save server config
120122
*/
121123
private fun saveServer(): Boolean {
122-
val subItem = MmkvManager.decodeSubscription(editSubId)?:SubscriptionItem()
124+
val subItem = MmkvManager.decodeSubscription(editSubId) ?: SubscriptionItem()
123125

124126
subItem.remarks = binding.etRemarks.text.toString()
125127
subItem.url = binding.etUrl.text.toString()
128+
subItem.filter = binding.etFilter.text.toString()
126129
subItem.enabled = binding.chkEnable.isChecked
127130
subItem.autoUpdate = binding.autoUpdateCheck.isChecked
128131
subItem.prevProfile = binding.etPreProfile.text.toString()

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,9 @@ import androidx.recyclerview.widget.LinearLayoutManager
2323
import androidx.recyclerview.widget.RecyclerView
2424
import com.tbruyelle.rxpermissions3.RxPermissions
2525
import com.neko.v2ray.AppConfig
26+
import com.neko.v2ray.AppConfig.LOOPBACK
2627
import com.neko.v2ray.R
27-
import com.neko.v2ray.databinding.ActivityUserAssetBinding
28+
import com.neko.v2ray.databinding.ActivitySubSettingBinding
2829
import com.neko.v2ray.databinding.ItemRecyclerUserAssetBinding
2930
import com.neko.v2ray.databinding.LayoutProgressBinding
3031
import com.neko.v2ray.dto.AssetUrlItem
@@ -218,7 +219,7 @@ class UserAssetActivity : BaseActivity() {
218219
URL(item.url).openConnection(
219220
Proxy(
220221
Proxy.Type.HTTP,
221-
InetSocketAddress("127.0.0.1", httpPort)
222+
InetSocketAddress(LOOPBACK, httpPort)
222223
)
223224
) as HttpURLConnection
224225
}

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

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ object AngConfigManager {
3232
private fun parseConfig(
3333
str: String?,
3434
subid: String,
35+
subItem: SubscriptionItem?,
3536
removedSelectedServer: ServerConfig?
3637
): Int {
3738
try {
@@ -59,6 +60,13 @@ object AngConfigManager {
5960
if (config == null) {
6061
return R.string.toast_incorrect_protocol
6162
}
63+
//filter
64+
if (subItem?.filter != null && subItem.filter?.isNotEmpty() == true && config.remarks.isNotEmpty()) {
65+
val matched = Regex(pattern = subItem.filter ?: "")
66+
.containsMatchIn(input = config.remarks)
67+
if (!matched) return -1
68+
}
69+
6270
config.subscriptionId = subid
6371
val guid = MmkvManager.encodeServerConfig("", config)
6472
if (removedSelectedServer != null &&
@@ -243,11 +251,12 @@ object AngConfigManager {
243251
MmkvManager.removeServerViaSubid(subid)
244252
}
245253

254+
val subItem = MmkvManager.decodeSubscription(subid)
246255
var count = 0
247256
servers.lines()
248257
.reversed()
249258
.forEach {
250-
val resId = parseConfig(it, subid, removedSelectedServer)
259+
val resId = parseConfig(it, subid, subItem, removedSelectedServer)
251260
if (resId == 0) {
252261
count++
253262
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import android.os.SystemClock
55
import android.text.TextUtils
66
import android.util.Log
77
import com.neko.v2ray.AppConfig
8+
import com.neko.v2ray.AppConfig.LOOPBACK
89
import com.neko.v2ray.R
910
import com.neko.v2ray.extension.responseLength
1011
import kotlinx.coroutines.isActive
@@ -108,7 +109,7 @@ object SpeedtestUtil {
108109
conn = url.openConnection(
109110
Proxy(
110111
Proxy.Type.HTTP,
111-
InetSocketAddress("127.0.0.1", port)
112+
InetSocketAddress(LOOPBACK, port)
112113
)
113114
) as HttpURLConnection
114115
conn.connectTimeout = 30000

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import android.webkit.URLUtil
1919
import androidx.appcompat.app.AppCompatDelegate
2020
import com.neko.v2ray.AppConfig
2121
import com.neko.v2ray.AppConfig.ANG_PACKAGE
22+
import com.neko.v2ray.AppConfig.LOOPBACK
2223
import com.neko.v2ray.BuildConfig
2324
import com.neko.v2ray.R
2425
import com.neko.v2ray.extension.toast
@@ -359,7 +360,7 @@ object Utils {
359360
url.openConnection(
360361
Proxy(
361362
Proxy.Type.HTTP,
362-
InetSocketAddress("127.0.0.1", httpPort)
363+
InetSocketAddress(LOOPBACK, httpPort)
363364
)
364365
)
365366
}

app/src/main/res/layout/activity_sub_edit.xml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,24 @@
439439
tools:ignore="TextFields" />
440440
</com.google.android.material.textfield.TextInputLayout>
441441
</LinearLayout>
442+
<LinearLayout
443+
android:orientation="vertical"
444+
android:layout_width="match_parent"
445+
android:layout_height="wrap_content"
446+
android:layout_marginTop="8.0dip"
447+
android:layout_marginBottom="8.0dip">
448+
<com.google.android.material.textfield.TextInputLayout
449+
android:layout_width="match_parent"
450+
android:layout_height="wrap_content"
451+
android:hint="@string/sub_setting_filter"
452+
style="@style/Outline_TextInputLayout">
453+
<com.google.android.material.textfield.TextInputEditText
454+
android:id="@+id/et_filter"
455+
android:layout_width="match_parent"
456+
android:layout_height="wrap_content"
457+
android:inputType="text" />
458+
</com.google.android.material.textfield.TextInputLayout>
459+
</LinearLayout>
442460
<LinearLayout
443461
android:orientation="vertical"
444462
android:layout_width="match_parent"

app/src/main/res/values-ar/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@
216216
<string name="title_sub_setting">الاشتراك</string>
217217
<string name="sub_setting_remarks">ملاحظات</string>
218218
<string name="sub_setting_url">عنوان URL اختياري</string>
219+
<string name="sub_setting_filter">ملاحظات الفلتر العادي</string>
219220
<string name="sub_setting_enable">تمكين التحديث</string>
220221
<string name="sub_auto_update">تمكين التحديث التلقائي</string>
221222
<string name="sub_setting_pre_profile">تصريحات الوكالة السابقة</string>

app/src/main/res/values-fa/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,7 @@
218218
<string name="title_sub_setting">اشتراک</string>
219219
<string name="sub_setting_remarks">ملاحظات</string>
220220
<string name="sub_setting_url">URL اختیاری</string>
221+
<string name="sub_setting_filter">اظهارات فیلتر معمولی</string>
221222
<string name="sub_setting_enable">فعال کردن آپدیت</string>
222223
<string name="sub_auto_update">فعال کردن به روز رسانی خودکار</string>
223224
<string name="sub_setting_pre_profile">اظهارات نیابتی قبلی</string>

app/src/main/res/values-in/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@
216216
<string name="title_sub_setting">Berlangganan</string>
217217
<string name="sub_setting_remarks">keterangan</string>
218218
<string name="sub_setting_url">URL Opsi</string>
219+
<string name="sub_setting_filter">Komentar filter biasa</string>
219220
<string name="sub_setting_enable">Aktifkan pembaruan</string>
220221
<string name="sub_auto_update">Aktifkan pembaruan otomatis</string>
221222
<string name="sub_setting_pre_profile">Pernyataan proksi sebelumnya</string>

app/src/main/res/values-ja/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@
216216
<string name="title_sub_setting">サブスクリプション</string>
217217
<string name="sub_setting_remarks">備考</string>
218218
<string name="sub_setting_url">オプションの URL</string>
219+
<string name="sub_setting_filter">備考 通常フィルター</string>
219220
<string name="sub_setting_enable">アップデートを有効にする</string>
220221
<string name="sub_auto_update">自動更新を有効にする</string>
221222
<string name="sub_setting_pre_profile">以前の代理人の発言</string>

app/src/main/res/values-jw/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@
216216
<string name="title_sub_setting">Langganan</string>
217217
<string name="sub_setting_remarks">deskripsi</string>
218218
<string name="sub_setting_url">URL Pilihan</string>
219+
<string name="sub_setting_filter">Cathetan filter biasa</string>
219220
<string name="sub_setting_enable">Aktifake nganyari</string>
220221
<string name="sub_auto_update">Aktifake nganyari otomatis</string>
221222
<string name="sub_setting_pre_profile">Komentar proxy sadurunge</string>

app/src/main/res/values-ru/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@
216216
<string name="title_sub_setting">Подписка</string>
217217
<string name="sub_setting_remarks">замечания</string>
218218
<string name="sub_setting_url">Необязательный URL-адрес</string>
219+
<string name="sub_setting_filter">Примечания регулярный фильтр</string>
219220
<string name="sub_setting_enable">Включить обновление</string>
220221
<string name="sub_auto_update">Включить автоматическое обновление</string>
221222
<string name="sub_setting_pre_profile">Предыдущие замечания доверенности</string>

app/src/main/res/values-su/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@
216216
<string name="title_sub_setting">Ngalangganan</string>
217217
<string name="sub_setting_remarks">inpormasi</string>
218218
<string name="sub_setting_url">URL pilihan</string>
219+
<string name="sub_setting_filter">Catetan filter biasa</string>
219220
<string name="sub_setting_enable">Aktipkeun apdet</string>
220221
<string name="sub_auto_update">Aktipkeun apdet otomatis</string>
221222
<string name="sub_setting_pre_profile">Ucapan proxy saméméhna</string>

app/src/main/res/values-vi/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@
216216
<string name="title_sub_setting">Đăng ký</string>
217217
<string name="sub_setting_remarks">nhận xét</string>
218218
<string name="sub_setting_url">URL tùy chọn</string>
219+
<string name="sub_setting_filter">Nhận xét bộ lọc thông thường</string>
219220
<string name="sub_setting_enable">Bật cập nhật</string>
220221
<string name="sub_auto_update">Bật cập nhật tự động</string>
221222
<string name="sub_setting_pre_profile">Nhận xét ủy quyền trước đó</string>

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@
216216
<string name="title_sub_setting">订阅</string>
217217
<string name="sub_setting_remarks">评论</string>
218218
<string name="sub_setting_url">可选网址</string>
219+
<string name="sub_setting_filter">备注常规过滤器</string>
219220
<string name="sub_setting_enable">启用更新</string>
220221
<string name="sub_auto_update">启用自动更新</string>
221222
<string name="sub_setting_pre_profile">先前的代理意见</string>

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@
216216
<string name="title_sub_setting">訂閱</string>
217217
<string name="sub_setting_remarks">評論</string>
218218
<string name="sub_setting_url">可選網址</string>
219+
<string name="sub_setting_filter">備註 常規過濾器</string>
219220
<string name="sub_setting_enable">啟用更新</string>
220221
<string name="sub_auto_update">啟用自動更新</string>
221222
<string name="sub_setting_pre_profile">之前的代理備註</string>

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,7 @@
218218
<string name="title_sub_setting">Subscription</string>
219219
<string name="sub_setting_remarks">remarks</string>
220220
<string name="sub_setting_url">Optional URL</string>
221+
<string name="sub_setting_filter">Remarks regular filter</string>
221222
<string name="sub_setting_enable">Enable update</string>
222223
<string name="sub_auto_update">Enable automatic update</string>
223224
<string name="sub_setting_pre_profile">Previous proxy remarks</string>

0 commit comments

Comments
 (0)