Compare commits

..

9 Commits

Author SHA1 Message Date
2dust a6af25ae88 up 1.8.15 2024-02-04 16:49:12 +08:00
2dust 3ac89d68fb Up implementation 2024-02-04 16:46:01 +08:00
2dust 267a43fd97 Refactor 2024-02-04 12:28:58 +08:00
2dust 6d0384b6f1 Bug fix 2024-02-02 16:47:22 +08:00
2dust 7ae4be402f Merge pull request #2785 from maskedeken/fix-wg
MUX should be disabled when using wireguard
2024-01-25 16:26:41 +08:00
2dust 46f0b7be5b Merge pull request #2783 from admarty/master
Update Vietnamese translation.
2024-01-25 16:26:19 +08:00
Eken Chan b253f2d947 MUX should be disabled when using wireguard 2024-01-24 16:15:44 +08:00
admarty 444ade8afe Update Vietnamese translation 2024-01-23 19:27:46 +07:00
admarty 522dbdd170 Update Vietnamese translation. 2024-01-23 19:00:37 +07:00
14 changed files with 46 additions and 44 deletions
+7 -7
View File
@@ -17,8 +17,8 @@ android {
minSdkVersion 21
targetSdkVersion Integer.parseInt("$targetSdkVer")
multiDexEnabled true
versionCode 539
versionName "1.8.14"
versionCode 540
versionName "1.8.15"
}
buildTypes {
@@ -101,13 +101,13 @@ dependencies {
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.9.0'
implementation 'com.google.android.material:material:1.11.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.preference:preference-ktx:1.2.0'
implementation 'androidx.recyclerview:recyclerview:1.3.0'
implementation 'androidx.recyclerview:recyclerview:1.3.2'
implementation 'androidx.fragment:fragment-ktx:1.5.7'
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.viewpager2:viewpager2:1.1.0-beta01'
implementation 'androidx.viewpager2:viewpager2:1.1.0-beta02'
// Androidx ktx
implementation 'androidx.activity:activity-ktx:1.7.1'
@@ -120,7 +120,7 @@ dependencies {
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4"
implementation 'com.tencent:mmkv-static:1.2.15'
implementation 'com.tencent:mmkv-static:1.3.3'
implementation 'com.google.code.gson:gson:2.10.1'
implementation 'io.reactivex:rxjava:1.3.8'
implementation 'io.reactivex:rxandroid:1.2.1'
@@ -131,7 +131,7 @@ dependencies {
implementation 'com.blacksquircle.ui:language-base:2.8.0'
implementation 'com.blacksquircle.ui:language-json:2.8.0'
implementation 'io.github.g00fy2.quickie:quickie-bundled:1.6.0'
implementation 'com.google.zxing:core:3.5.1'
implementation 'com.google.zxing:core:3.5.3'
def work_version = "2.8.1"
@@ -21,7 +21,6 @@ import com.v2ray.ang.extension.v2RayApplication
import com.v2ray.ang.util.AppManagerUtil
import com.v2ray.ang.util.Utils
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import rx.android.schedulers.AndroidSchedulers
import rx.schedulers.Schedulers
@@ -1,7 +1,7 @@
package com.v2ray.ang.ui
import android.Manifest
import android.app.Activity.RESULT_OK
import androidx.appcompat.app.AppCompatActivity.RESULT_OK
import android.content.Intent
import android.os.Bundle
import android.text.TextUtils
@@ -18,7 +18,6 @@ import com.v2ray.ang.extension.toast
import com.v2ray.ang.extension.v2RayApplication
import com.v2ray.ang.util.Utils
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
class RoutingSettingsFragment : Fragment() {
@@ -1,7 +1,7 @@
package com.v2ray.ang.ui
import android.Manifest
import android.app.Activity
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.content.Intent
import android.graphics.BitmapFactory
@@ -54,7 +54,7 @@ class ScannerActivity : BaseActivity(){
private fun finished(text: String) {
val intent = Intent()
intent.putExtra("SCAN_RESULT", text)
setResult(Activity.RESULT_OK, intent)
setResult(AppCompatActivity.RESULT_OK, intent)
finish()
}
@@ -1,6 +1,6 @@
package com.v2ray.ang.ui
import android.app.Activity
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.ArrayAdapter
@@ -90,7 +90,7 @@ class TaskerActivity : BaseActivity() {
intent.putExtra(AppConfig.TASKER_EXTRA_BUNDLE, extraBundle)
intent.putExtra(AppConfig.TASKER_EXTRA_STRING_BLURB, blurb)
setResult(Activity.RESULT_OK, intent)
setResult(AppCompatActivity.RESULT_OK, intent)
finish()
}
@@ -775,10 +775,11 @@ object AngConfigManager {
val dicQuery = HashMap<String, String>()
dicQuery["publickey"] =
Utils.urlEncode(outbound.settings?.peers?.get(0)?.publicKey.toString())
dicQuery["reserved"] = Utils.urlEncode(
Utils.removeWhiteSpace(outbound.settings?.reserved?.joinToString())
.toString()
)
if (outbound.settings?.reserved != null) {
dicQuery["reserved"] = Utils.urlEncode(
Utils.removeWhiteSpace(outbound.settings?.reserved?.joinToString())
.toString()
)}
dicQuery["address"] = Utils.urlEncode(
Utils.removeWhiteSpace((outbound.settings?.address as List<*>).joinToString())
.toString()
@@ -408,6 +408,7 @@ object V2rayConfigUtil {
if (protocol.equals(EConfigType.SHADOWSOCKS.name, true)
|| protocol.equals(EConfigType.SOCKS.name, true)
|| protocol.equals(EConfigType.TROJAN.name, true)
|| protocol.equals(EConfigType.WIREGUARD.name, true)
) {
muxEnabled = false
} else if (protocol.equals(EConfigType.VLESS.name, true)
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
@@ -11,5 +12,5 @@
android:layout_width="330dp"
android:layout_height="330dp"
android:scaleType="fitXY"
android:src="@drawable/ic_fab_check" />
app:srcCompat="@drawable/ic_fab_check" />
</LinearLayout>
@@ -4,7 +4,7 @@
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:background="@color/colorPrimary"
android:foreground="?android:attr/selectableItemBackground"
android:foreground="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true">
@@ -20,7 +20,7 @@
android:focusable="true"
android:nextFocusRight="@+id/layout_share"
android:background="@color/colorPrimary"
android:foreground="?android:attr/selectableItemBackground"
android:foreground="?attr/selectableItemBackground"
android:layout_width="match_parent"
android:layout_height="@dimen/server_height"
android:layout_gravity="center"
@@ -116,7 +116,7 @@
android:id="@+id/layout_share"
android:layout_width="wrap_content"
android:layout_height="@dimen/server_height"
android:background="?android:attr/selectableItemBackground"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:gravity="center"
@@ -127,7 +127,7 @@
<ImageView
android:layout_width="wrap_content"
android:layout_height="@dimen/png_height"
android:src="@drawable/ic_share_24dp"
app:srcCompat="@drawable/ic_share_24dp"
app:tint="?attr/colorMainText" />
</LinearLayout>
@@ -136,7 +136,7 @@
android:id="@+id/layout_edit"
android:layout_width="wrap_content"
android:layout_height="@dimen/server_height"
android:background="?android:attr/selectableItemBackground"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:gravity="center"
@@ -146,7 +146,7 @@
<ImageView
android:layout_width="@dimen/png_height"
android:layout_height="@dimen/png_height"
android:src="@drawable/ic_edit_24dp"
app:srcCompat="@drawable/ic_edit_24dp"
app:tint="?attr/colorMainText" />
</LinearLayout>
@@ -155,7 +155,7 @@
android:id="@+id/layout_remove"
android:layout_width="wrap_content"
android:layout_height="@dimen/server_height"
android:background="?android:attr/selectableItemBackground"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:gravity="center"
@@ -165,7 +165,7 @@
<ImageView
android:layout_width="@dimen/png_height"
android:layout_height="@dimen/png_height"
android:src="@drawable/ic_delete_24dp"
app:srcCompat="@drawable/ic_delete_24dp"
app:tint="?attr/colorMainText" />
</LinearLayout>
@@ -19,7 +19,7 @@
android:clickable="true"
android:focusable="true"
android:background="@color/colorPrimary"
android:foreground="?android:attr/selectableItemBackground"
android:foreground="?attr/selectableItemBackground"
android:nextFocusRight="@+id/layout_edit"
android:layout_width="match_parent"
android:layout_height="@dimen/server_height"
@@ -68,7 +68,7 @@
android:id="@+id/layout_share"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:gravity="center"
@@ -79,7 +79,7 @@
<ImageView
android:layout_width="@dimen/png_height"
android:layout_height="@dimen/png_height"
android:src="@drawable/ic_share_24dp"
app:srcCompat="@drawable/ic_share_24dp"
app:tint="?attr/colorMainText"/>
</LinearLayout>
@@ -88,7 +88,7 @@
android:id="@+id/layout_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:gravity="center"
@@ -99,7 +99,7 @@
<ImageView
android:layout_width="@dimen/png_height"
android:layout_height="@dimen/png_height"
android:src="@drawable/ic_edit_24dp"
app:srcCompat="@drawable/ic_edit_24dp"
app:tint="?attr/colorMainText" />
</LinearLayout>
@@ -17,7 +17,7 @@
android:orientation="horizontal"
android:gravity="center"
android:background="@color/colorPrimary"
android:foreground="?android:attr/selectableItemBackground"
android:foreground="?attr/selectableItemBackground"
android:padding="@dimen/nav_header_vertical_spacing">
<LinearLayout
@@ -46,7 +46,7 @@
android:id="@+id/layout_remove"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:padding="@dimen/nav_header_vertical_spacing">
@@ -54,7 +54,7 @@
<ImageView
android:layout_width="@dimen/png_height"
android:layout_height="@dimen/png_height"
android:src="@drawable/ic_delete_24dp"
app:srcCompat="@drawable/ic_delete_24dp"
app:tint="?attr/colorMainText" />
</LinearLayout>
</LinearLayout>
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_switch"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/layout_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
@@ -12,5 +13,5 @@
android:layout_width="40dp"
android:layout_height="40dp"
android:padding="10dp"
android:src="@drawable/ic_stat_name" />
app:srcCompat="@drawable/ic_stat_name" />
</LinearLayout>
@@ -98,7 +98,7 @@
<string name="title_advanced">Cài đặt nâng cao</string>
<string name="title_vpn_settings">Cài đặt VPN</string>
<string name="title_pref_per_app_proxy">Proxy Theo Ứng Dụng</string>
<string name="summary_pref_per_app_proxy">- Bình thường: Ứng dụng đã chọn sẽ kết nối thông qua Proxy, chưa lựa chọn sẽ kết nối trực tiếp. \n- Chế độ Bypass: Ứng dụng được chọn sẽ kết nối trực tiếp, không lựa chọn sẽ kết nối qua Proxy. \n- Nếu bạn ở Trung Quốc thì chọn Tự động chọn ứng dụng Proxy trong Menu.</string>
<string name="summary_pref_per_app_proxy">- Bình thường: Ứng dụng đã chọn sẽ kết nối thông qua Proxy, chưa chọn sẽ kết nối trực tiếp. \n- Chế độ Bypass: Ứng dụng đã chọn sẽ kết nối trực tiếp, chưa chọn sẽ kết nối qua Proxy. \n- Nếu bạn đang ở Trung Quốc thì vào Menu, chọn Tự động chọn ứng dụng Proxy.</string>
<string name="title_pref_mux_enabled">Bật Mux</string>
<string name="summary_pref_mux_enabled">Giảm độ trễ trong bước bắt tay của kết nối TCP. Mux phân phối dữ liệu từ nhiều kết nối TCP trên một kết nối TCP duy nhất. Không nên sử dụng Mux để xem video, download file hoặc chạy speedtest vì thường không hiệu quả.</string>
@@ -141,11 +141,11 @@
<string name="summary_pref_domestic_dns">DNS</string>
<string name="title_pref_proxy_sharing_enabled">Cho phép kết nối từ mạng LAN</string>
<string name="summary_pref_proxy_sharing_enabled">Các thiết bị khác trong cùng mạng LAN có thể kết nối đến SOCKS/HTTP proxy trên thiết bị của ban. \nChỉ bật tính năng này trong các mạng đáng tin cậy để tránh kết nối trái phép.</string>
<string name="summary_pref_proxy_sharing_enabled">Các thiết bị khác trong cùng mạng LAN có thể kết nối đến SOCKS/HTTP proxy trên thiết bị của bạn. \nChỉ bật tính năng này trong các mạng đáng tin cậy để tránh kết nối trái phép.</string>
<string name="toast_warning_pref_proxysharing_short">Đang bật cho phép kết nối từ mạng LAN</string>
<string name="title_pref_allow_insecure">allowInsecure</string>
<string name="summary_pref_allow_insecure">Khi nhập những cấu hình có bảo mật TLS, mặc định sẽ bỏ qua xác minh chứng chỉ (allowInsecure: true).</string>
<string name="summary_pref_allow_insecure">Khi nhập những cấu hình có bảo mật TLS, mặc định sẽ không xác minh chứng chỉ (allowInsecure: true).</string>
<string name="title_pref_socks_port">Cổng Proxy SOCKS5</string>
<string name="summary_pref_socks_port">Cổng Proxy SOCKS5</string>
@@ -215,7 +215,7 @@
<string name="connection_test_pending">Kiểm tra kết nối</string>
<string name="connection_test_testing">Đang kiểm tra kết nối mạng...</string>
<string name="connection_test_available">Test thành công: kết nối đến Google.com mất %d ms</string>
<string name="connection_test_available">Test thành công: truy cập www.Google.com mất %d ms</string>
<string name="connection_test_error">Lỗi kết nối mạng, hãy thử đổi cấu hình hoặc kiểm tra lại! Mã lỗi: %s</string>
<string name="connection_test_fail">Không có kết nối mạng!</string>
<string name="connection_test_error_status_code">Mã lỗi: #%d</string>
@@ -227,13 +227,13 @@
<string-array name="share_method">
<item>Xuất ra mã QR (Chụp màn hình để lưu)</item>
<item>Sao chép cấu hình này</item>
<item>Sao chép vào bảng nhớ tạm</item>
<item>Sao chép thành cấu hình tùy chỉnh</item>
</string-array>
<string-array name="share_sub_method">
<item>Xuất ra mã QR (Chụp màn hình để lưu)</item>
<item>Sao chép cấu hình này</item>
<item>Xuất gói ra mã QR (Chụp màn hình để lưu)</item>
<item>Xuất gói đăng ký vào bảng nhớ tạm</item>
</string-array>
<string-array name="routing_tag">