diff --git a/.github/ISSUE_TEMPLATE/bug_vi.md b/.github/ISSUE_TEMPLATE/bug_vi.md
new file mode 100644
index 0000000..619a833
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_vi.md
@@ -0,0 +1,33 @@
+---
+name: Sự cố trên v2rayNG
+about: Tạo báo cáo để giúp chúng tôi cải thiện.
+---
+
+Vui lòng tự khắc phục sự cố phía máy chủ trước khi đặt câu hỏi và cũng thực hiện tìm kiếm để xem có ai khác đã đặt câu hỏi tương tự hay không.
+
+
+ ### Hành vi mong đợi
+ mô tả những gì bạn nghĩ sẽ xảy ra
+
+ ### Hành vi thực tế
+ mô tả những gì thực sự đã xảy ra
+
+ ### Phương pháp sao chép
+ 1.
+ 2.
+ 3.
+
+ ### Thông tin nhật ký
+
+
+ Nhận nhật ký qua `adb logcat -s com.v2ray.ang GoLog V2rayConfigUtilGoLog Main`. Vui lòng xóa thông tin nhạy cảm có thể xuất hiện trong nhật ký của chính bạn.
+
+ Nếu sự cố có thể được tái tạo, bạn nên thực thi `adb logcat -c` để xóa nhật ký hệ thống trước khi thực hiện lệnh trên, sau đó thao tác để tái tạo sự cố.
+ `` '
+ dán nhật ký vào đây
+ `` '
+
+
+ ### Thông tin Môi trường
+
+ ### Thông tin bổ sung (tùy chọn)
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000..8ca20ac
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,5 @@
+blank_issues_enabled: false
+contact_links:
+ - name: Sự cố trên V2Ray
+ url: https://github.com/v2fly/v2ray-core/
+ about: Nếu bạn gặp vấn đề với V2Ray thay vì v2rayNG, vui lòng truy cập liên kết này để thảo luận.
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0963c50
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+*.dat
+*.jks
+V2rayNG/app/release/output.json
+.idea/
+.gradle/
diff --git a/CR.md b/CR.md
new file mode 100644
index 0000000..764086b
--- /dev/null
+++ b/CR.md
@@ -0,0 +1,27 @@
+Chính sách quyền riêng tư của v2rayNG
+
+ Cập nhật lần cuối 2017-11-22
+
+v2rayNG tôn trọng và bảo vệ quyền riêng tư cá nhân của tất cả người dùng, vì vậy chúng tôi công khai chính sách bảo mật này với mọi người. **Việc bạn sử dụng v2rayNG có nghĩa là bạn đã đọc và đồng ý với các điều khoản, nếu không đồng ý với các điều khoản, vui lòng ngừng sử dụng và gỡ cài đặt v2rayNG ngay lập tức.**
+
+1. Thu thập thông tin
+
+Bản thân phần mềm v2rayNG không gửi bất kỳ thông tin nào cho nhà phát triển, nhưng thị trường ứng dụng nơi bạn tải xuống phần mềm (chẳng hạn như Google Play) có thể thu thập thông tin liên quan về trạng thái đang chạy của ứng dụng và cung cấp cho nhà phát triển v2rayNG. Để biết thông tin này, vui lòng đọc chính sách bảo mật được cung cấp bởi thị trường bạn sử dụng.
+
+
+2. Chia sẻ thông tin
+
+Chúng tôi không bán dữ liệu người dùng đã thu thập cho bất kỳ bên thứ ba nào. Chúng tôi có thể cung cấp thông tin cho các nhà phát triển bên ngoài để hỗ trợ phát triển phần mềm, nhưng chúng tôi sẽ thông báo các nghĩa vụ bảo mật liên quan và xác định rằng chúng có thể được tuân thủ trước khi cung cấp thông tin.
+
+3. Lưu trữ thông tin
+
+Trừ khi luật pháp yêu cầu, chúng tôi sẽ xóa dữ liệu người dùng không còn cần thiết trong vòng 30 ngày hoặc tổng hợp số liệu thống kê thành các báo cáo tổng hợp không xác định người dùng cá nhân.
+
+
+4. Lộ thông tin
+
+ Chúng tôi sẽ cố gắng hết sức để bảo vệ dữ liệu của người dùng bằng các phương tiện kỹ thuật và bảo mật hợp lý, nhưng chúng tôi không thể đảm bảo tính bảo mật tuyệt đối của dữ liệu. Nếu chúng tôi xác nhận rằng dữ liệu đã bị xâm phạm, chúng tôi sẽ thông báo cho người dùng thông qua các kênh khả dụng trong vòng 7 ngày. **Bạn đồng ý không chịu trách nhiệm cho chúng tôi về bất kỳ tổn thất nào do nguyên nhân bất khả kháng.**
+
+5. Sửa đổi điều khoản
+
+Chúng tôi có quyền sửa đổi Chính sách Bảo mật này, nhưng sẽ đảm bảo rằng người dùng được thông báo qua các kênh có sẵn và cảnh báo trong ứng dụng của chúng tôi ít nhất 30 ngày trước khi cập nhật các điều khoản. **Bằng cách tiếp tục sử dụng phần mềm sau khi các điều khoản mới có hiệu lực, bạn đồng ý với các điều khoản bảo mật đã sửa đổi.**
diff --git a/README.md b/README.md
index 8e49a29..a7c0508 100644
--- a/README.md
+++ b/README.md
@@ -1,24 +1,40 @@
-# [Switch to English](https://github.com/cuynu/v2rayvn/wiki/English)
+## [Switch to English](https://github.com/cuynu/v2rayvn/wiki/English)
# v2rayNG Tiếng Việt / Vietnamese Language
v2rayNG với ngôn ngữ Tiếng Việt! ,hỗ trợ [Xray core](https://github.com/XTLS/Xray-core) và [v2fly core](https://github.com/v2fly/v2ray-core)
-Tính năng bổ sung so với phiên bản gốc : Mux (Tăng tốc kết nối, giảm ping nhưng gây áp lực lên máy chủ) và tự động cập nhật gói đăng ký (subscription)
+Chất lượng mã nguồn (Source Code)
-Phiên bản mới nhất : 1.8.25-cuynu
+[](https://www.codefactor.io/repository/github/cuynu/v2rayvn)
-Ngày dựng/cập nhật : (10/03/2024)
+Tính năng bổ sung so với phiên bản gốc : Mux (Tăng tốc kết nối, giảm ping nhưng gây áp lực lên máy chủ)
+
+Thống kê số lần v2rayNG/v2flyNG Tiếng Việt được tải xuống
+
+
+
+
+Phiên bản APK đóng gói mới nhất : 1.8.5-cuynu
+
+Phiên bản thử nghiệm : 1.8.12-cuynu
+
+Ngày cập nhật : (00:48 27/03/2023)
Dịch Tiếng Việt bởi : Cuynu, [user09283](https://github.com/user09283)
+
+Bạn đang muốn tìm v2flyNG Tiếng Việt? [Tải xuống v2flyNG Tiếng Việt](https://github.com/cuynu/v2rayvn#v2flyng-ti%E1%BA%BFng-vi%E1%BB%87t)
____________________________________________________
## Tải xuống v2rayNG Tiếng Việt phiên bản mới nhất tại:
-
-
+
+
+### Phiên bản thử nghiệm có thể có lỗi !
+[Tải xuống phiên bản thử nghiệm](https://github.com/cuynu/v2rayvn/releases/download/1.8.12-cuynu/v2rayNG_1.8.12-cuynu.apk)
+
**Từ phiên bản 1.7.4, Bản dịch Tiếng Việt của v2rayNG bởi Cuynu và [user09283](https://github.com/user09283)
đã có sẵn trên [Google Play](https://play.app.goo.gl/?link=https://play.google.com/store/apps/details?id=com.v2ray.ang&ddl=1&pcampaignid=web_ddl_1) dưới dạng phiên bản chính thức, tuy nhiên bạn vẫn có thể tải xuống APK bên trên nếu bạn không muốn tải xuống từ Google Play.**
@@ -30,8 +46,19 @@ v2rayNG hiện chỉ có sẵn cho Android và là ứng dụng mã nguồn mở
____________________________________________________
+## v2flyNG Tiếng Việt
+
+v2flyNG là v2rayNG được đổi tên nhằm mục đích mua để ủng hộ nhà phát triển trên Google Play.
+
+Phiên bản hiện tại của v2flyNG : v1.7.17
+
+### Tải xuống v2flyNG tại đây :
+
+[Tải xuống v2flyNG Tiếng Việt v1.7.17](https://github.com/cuynu/v2rayvn/releases/download/1.7.17/v2flyNG_1.7.17_sign.apk)
+
+____________________________________________________
+
## Mã nguồn / Source code
v2rayNG là ứng dụng "mã nguồn mở", bạn có thể tự tải xuống mã nguồn trên repository và chỉnh sửa bằng Gradle hay Android Studio theo ý của bạn theo giấy phép GPL-3.0.
-
diff --git a/V2rayNG/.gitignore b/V2rayNG/.gitignore
new file mode 100644
index 0000000..16eb6ec
--- /dev/null
+++ b/V2rayNG/.gitignore
@@ -0,0 +1,10 @@
+*.iml
+.gradle
+/local.properties
+/.idea
+.DS_Store
+/build
+/captures
+*.apk
+signing.properties
+*.aar
diff --git a/app/.gitignore b/V2rayNG/app/.gitignore
similarity index 100%
rename from app/.gitignore
rename to V2rayNG/app/.gitignore
diff --git a/app/build.gradle b/V2rayNG/app/build.gradle
similarity index 80%
rename from app/build.gradle
rename to V2rayNG/app/build.gradle
index 22acda7..b5b6a83 100644
--- a/app/build.gradle
+++ b/V2rayNG/app/build.gradle
@@ -9,8 +9,8 @@ android {
buildToolsVersion "$buildToolsVer"
compileOptions {
- sourceCompatibility = "8"
targetCompatibility = "8"
+ sourceCompatibility = "8"
}
defaultConfig {
@@ -18,8 +18,8 @@ android {
minSdkVersion 21
targetSdk 33
multiDexEnabled true
- versionCode 590
- versionName "1.8.25-cuynu"
+ versionCode 524
+ versionName "1.8.13-cuynu"
}
buildTypes {
@@ -86,19 +86,19 @@ 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.11.0'
+ implementation 'com.google.android.material:material:1.8.0'
implementation 'androidx.cardview:cardview:1.0.0'
- implementation 'androidx.preference:preference-ktx:1.2.1'
- implementation 'androidx.recyclerview:recyclerview:1.3.2'
- implementation 'androidx.fragment:fragment-ktx:1.6.2'
+ implementation 'androidx.preference:preference-ktx:1.2.0'
+ implementation 'androidx.recyclerview:recyclerview:1.3.0'
+ implementation 'androidx.fragment:fragment-ktx:1.5.6'
implementation 'androidx.multidex:multidex:2.0.1'
- implementation 'androidx.viewpager2:viewpager2:1.1.0-beta02'
+ implementation 'androidx.viewpager2:viewpager2:1.1.0-beta01'
// Androidx ktx
- implementation 'androidx.activity:activity-ktx:1.8.2'
- implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0'
- implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.7.0'
- implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.7.0'
+ implementation 'androidx.activity:activity-ktx:1.7.0'
+ implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1'
+ implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.1'
+ implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.6.1'
//kotlin
implementation "org.jetbrains.kotlin:kotlin-reflect:1.8.0"
@@ -112,15 +112,10 @@ dependencies {
implementation 'com.tbruyelle.rxpermissions:rxpermissions:0.9.4@aar'
implementation 'com.github.jorgecastilloprz:fabprogresscircle:1.01@aar'
implementation 'me.drakeet.support:toastcompat:1.1.0'
- implementation 'com.blacksquircle.ui:editorkit:2.8.0'
- implementation 'com.blacksquircle.ui:language-base:2.8.0'
- implementation 'com.blacksquircle.ui:language-json:2.8.0'
+ implementation 'com.blacksquircle.ui:editorkit:2.1.1'
+ implementation 'com.blacksquircle.ui:language-base:2.1.1'
+ implementation 'com.blacksquircle.ui:language-json:2.1.1'
implementation 'io.github.g00fy2.quickie:quickie-bundled:1.6.0'
implementation 'com.google.zxing:core:3.5.1'
-
- def work_version = "2.8.1"
-
- implementation "androidx.work:work-runtime-ktx:$work_version"
- implementation "androidx.work:work-multiprocess:$work_version"
}
diff --git a/app/libs/arm64-v8a/libtun2socks.so b/V2rayNG/app/libs/arm64-v8a/libtun2socks.so
similarity index 100%
rename from app/libs/arm64-v8a/libtun2socks.so
rename to V2rayNG/app/libs/arm64-v8a/libtun2socks.so
diff --git a/app/libs/armeabi-v7a/libtun2socks.so b/V2rayNG/app/libs/armeabi-v7a/libtun2socks.so
similarity index 100%
rename from app/libs/armeabi-v7a/libtun2socks.so
rename to V2rayNG/app/libs/armeabi-v7a/libtun2socks.so
diff --git a/app/libs/libv2ray.aar b/V2rayNG/app/libs/libv2ray.aar
similarity index 100%
rename from app/libs/libv2ray.aar
rename to V2rayNG/app/libs/libv2ray.aar
diff --git a/app/libs/x86/libtun2socks.so b/V2rayNG/app/libs/x86/libtun2socks.so
similarity index 100%
rename from app/libs/x86/libtun2socks.so
rename to V2rayNG/app/libs/x86/libtun2socks.so
diff --git a/app/libs/x86_64/libtun2socks.so b/V2rayNG/app/libs/x86_64/libtun2socks.so
similarity index 100%
rename from app/libs/x86_64/libtun2socks.so
rename to V2rayNG/app/libs/x86_64/libtun2socks.so
diff --git a/app/proguard-rules.pro b/V2rayNG/app/proguard-rules.pro
similarity index 100%
rename from app/proguard-rules.pro
rename to V2rayNG/app/proguard-rules.pro
diff --git a/app/src/androidTest/java/com/v2ray/ang/ApplicationTest.java b/V2rayNG/app/src/androidTest/java/com/v2ray/ang/ApplicationTest.java
similarity index 100%
rename from app/src/androidTest/java/com/v2ray/ang/ApplicationTest.java
rename to V2rayNG/app/src/androidTest/java/com/v2ray/ang/ApplicationTest.java
diff --git a/app/src/main/AndroidManifest.xml b/V2rayNG/app/src/main/AndroidManifest.xml
similarity index 91%
rename from app/src/main/AndroidManifest.xml
rename to V2rayNG/app/src/main/AndroidManifest.xml
index 747fcc4..fc5bd7c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/V2rayNG/app/src/main/AndroidManifest.xml
@@ -9,8 +9,6 @@
android:largeScreens="true"
android:xlargeScreens="true"/>
-
-
@@ -63,26 +61,26 @@
android:name=".ui.ServerCustomConfigActivity"
android:windowSoftInputMode="stateUnchanged" />
-
-
-
-
-
-
diff --git a/app/src/main/assets/custom_routing_block b/V2rayNG/app/src/main/assets/custom_routing_block
similarity index 100%
rename from app/src/main/assets/custom_routing_block
rename to V2rayNG/app/src/main/assets/custom_routing_block
diff --git a/app/src/main/assets/custom_routing_direct b/V2rayNG/app/src/main/assets/custom_routing_direct
similarity index 100%
rename from app/src/main/assets/custom_routing_direct
rename to V2rayNG/app/src/main/assets/custom_routing_direct
diff --git a/app/src/main/assets/custom_routing_proxy b/V2rayNG/app/src/main/assets/custom_routing_proxy
similarity index 100%
rename from app/src/main/assets/custom_routing_proxy
rename to V2rayNG/app/src/main/assets/custom_routing_proxy
diff --git a/app/src/main/assets/proxy_packagename.txt b/V2rayNG/app/src/main/assets/proxy_packagename.txt
similarity index 100%
rename from app/src/main/assets/proxy_packagename.txt
rename to V2rayNG/app/src/main/assets/proxy_packagename.txt
diff --git a/app/src/main/assets/v2ray_config.json b/V2rayNG/app/src/main/assets/v2ray_config.json
similarity index 100%
rename from app/src/main/assets/v2ray_config.json
rename to V2rayNG/app/src/main/assets/v2ray_config.json
diff --git a/app/src/main/ic_launcher-web.png b/V2rayNG/app/src/main/ic_launcher-web.png
similarity index 100%
rename from app/src/main/ic_launcher-web.png
rename to V2rayNG/app/src/main/ic_launcher-web.png
diff --git a/app/src/main/java/com/v2ray/ang/helper/ItemTouchHelperAdapter.java b/V2rayNG/app/src/main/java/com/v2ray/ang/helper/ItemTouchHelperAdapter.java
similarity index 100%
rename from app/src/main/java/com/v2ray/ang/helper/ItemTouchHelperAdapter.java
rename to V2rayNG/app/src/main/java/com/v2ray/ang/helper/ItemTouchHelperAdapter.java
diff --git a/app/src/main/java/com/v2ray/ang/helper/ItemTouchHelperViewHolder.java b/V2rayNG/app/src/main/java/com/v2ray/ang/helper/ItemTouchHelperViewHolder.java
similarity index 100%
rename from app/src/main/java/com/v2ray/ang/helper/ItemTouchHelperViewHolder.java
rename to V2rayNG/app/src/main/java/com/v2ray/ang/helper/ItemTouchHelperViewHolder.java
diff --git a/app/src/main/java/com/v2ray/ang/helper/OnStartDragListener.java b/V2rayNG/app/src/main/java/com/v2ray/ang/helper/OnStartDragListener.java
similarity index 100%
rename from app/src/main/java/com/v2ray/ang/helper/OnStartDragListener.java
rename to V2rayNG/app/src/main/java/com/v2ray/ang/helper/OnStartDragListener.java
diff --git a/app/src/main/java/com/v2ray/ang/helper/SimpleItemTouchHelperCallback.java b/V2rayNG/app/src/main/java/com/v2ray/ang/helper/SimpleItemTouchHelperCallback.java
similarity index 100%
rename from app/src/main/java/com/v2ray/ang/helper/SimpleItemTouchHelperCallback.java
rename to V2rayNG/app/src/main/java/com/v2ray/ang/helper/SimpleItemTouchHelperCallback.java
diff --git a/app/src/main/kotlin/com/v2ray/ang/AngApplication.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/AngApplication.kt
similarity index 61%
rename from app/src/main/kotlin/com/v2ray/ang/AngApplication.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/AngApplication.kt
index ed6bbae..aa1ef7d 100644
--- a/app/src/main/kotlin/com/v2ray/ang/AngApplication.kt
+++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/AngApplication.kt
@@ -1,20 +1,12 @@
package com.v2ray.ang
-import android.content.Context
import androidx.multidex.MultiDexApplication
import androidx.preference.PreferenceManager
import com.tencent.mmkv.MMKV
-import androidx.work.Configuration
-class AngApplication : MultiDexApplication(), Configuration.Provider {
+class AngApplication : MultiDexApplication() {
companion object {
const val PREF_LAST_VERSION = "pref_last_version"
- lateinit var application: AngApplication
- }
-
- override fun attachBaseContext(base: Context?) {
- super.attachBaseContext(base)
- application = this
}
var firstRun = false
@@ -33,10 +25,4 @@ class AngApplication : MultiDexApplication(), Configuration.Provider {
//Logger.init().logLevel(if (BuildConfig.DEBUG) LogLevel.FULL else LogLevel.NONE)
MMKV.initialize(this)
}
-
- override fun getWorkManagerConfiguration(): Configuration {
- return Configuration.Builder()
- .setDefaultProcessName("${BuildConfig.APPLICATION_ID}:bg")
- .build()
- }
}
diff --git a/app/src/main/kotlin/com/v2ray/ang/AppConfig.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/AppConfig.kt
similarity index 89%
rename from app/src/main/kotlin/com/v2ray/ang/AppConfig.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/AppConfig.kt
index 36106ec..0e3ffb0 100644
--- a/app/src/main/kotlin/com/v2ray/ang/AppConfig.kt
+++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/AppConfig.kt
@@ -10,6 +10,7 @@ object AppConfig {
// legacy
const val ANG_CONFIG = "ang_config"
+ const val PREF_INAPP_BUY_IS_PREMIUM = "pref_inapp_buy_is_premium"
const val PREF_ROUTING_CUSTOM = "pref_routing_custom"
// Preferences mapped to MMKV
@@ -61,7 +62,8 @@ object AppConfig {
const val androidpackagenamelistUrl = "https://raw.githubusercontent.com/2dust/androidpackagenamelist/master/proxy.txt"
const val v2rayCustomRoutingListUrl = "https://raw.githubusercontent.com/2dust/v2rayCustomRoutingList/master/"
- const val v2rayNGIssues = "https://gitlab.com/cuynu/v2rayvn/issues"
+ const val v2rayNGIssues = "https://github.com/cuynu/v2rayvn/issues"
+ const val v2rayNGWikiMode = "https://github.com/cuynu/v2rayvn/wiki/V%E1%BA%A5n-%C4%91%E1%BB%81-th%C6%B0%E1%BB%9Dng-g%E1%BA%B7p-tr%C3%AAn-v2rayNG"
const val geoUrl = "https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/";
const val DNS_AGENT = "8.8.8.8"
@@ -87,10 +89,4 @@ object AppConfig {
const val MSG_MEASURE_CONFIG = 7
const val MSG_MEASURE_CONFIG_SUCCESS = 71
const val MSG_MEASURE_CONFIG_CANCEL = 72
-
- // subscription settings (https://github.com/2dust/v2rayNG/pull/2471/commits/062c0d8ddbe56da3ca1db9a7969a487706bb441f)
- const val SUBSCRIPTION_AUTO_UPDATE = "pref_auto_update_subscription"
- const val SUBSCRIPTION_AUTO_UPDATE_INTERVAL = "pref_auto_update_interval"
- const val DEFAULT_UPDATE_INTERVAL = "1440" // 24 hours
- const val UPDATE_TASK_NAME = "subscription-updater"
}
diff --git a/app/src/main/kotlin/com/v2ray/ang/dto/AngConfig.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/AngConfig.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/dto/AngConfig.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/AngConfig.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/dto/AppInfo.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/AppInfo.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/dto/AppInfo.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/AppInfo.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/dto/EConfigType.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/EConfigType.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/dto/EConfigType.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/EConfigType.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/dto/ERoutingMode.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/ERoutingMode.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/dto/ERoutingMode.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/ERoutingMode.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/dto/ServerAffiliationInfo.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/ServerAffiliationInfo.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/dto/ServerAffiliationInfo.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/ServerAffiliationInfo.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/dto/ServerConfig.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/ServerConfig.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/dto/ServerConfig.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/ServerConfig.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/dto/ServersCache.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/ServersCache.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/dto/ServersCache.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/ServersCache.kt
diff --git a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/SubscriptionItem.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/SubscriptionItem.kt
new file mode 100644
index 0000000..0fe950f
--- /dev/null
+++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/SubscriptionItem.kt
@@ -0,0 +1,8 @@
+package com.v2ray.ang.dto
+
+data class SubscriptionItem(
+ var remarks: String = "C",
+ var url: String = "",
+ var enabled: Boolean = true,
+ val addedTime: Long = System.currentTimeMillis()) {
+}
diff --git a/app/src/main/kotlin/com/v2ray/ang/dto/V2rayConfig.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/V2rayConfig.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/dto/V2rayConfig.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/V2rayConfig.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/dto/VmessQRCode.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/VmessQRCode.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/dto/VmessQRCode.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/dto/VmessQRCode.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/extension/_Ext.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/extension/_Ext.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/extension/_Ext.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/extension/_Ext.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/receiver/TaskerReceiver.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/receiver/TaskerReceiver.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/receiver/TaskerReceiver.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/receiver/TaskerReceiver.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/receiver/WidgetProvider.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/receiver/WidgetProvider.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/receiver/WidgetProvider.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/receiver/WidgetProvider.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/service/QSTileService.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/service/QSTileService.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/service/QSTileService.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/service/QSTileService.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/service/ServiceControl.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/service/ServiceControl.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/service/ServiceControl.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/service/ServiceControl.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/service/V2RayProxyOnlyService.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/service/V2RayProxyOnlyService.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/service/V2RayProxyOnlyService.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/service/V2RayProxyOnlyService.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/service/V2RayServiceManager.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/service/V2RayServiceManager.kt
similarity index 99%
rename from app/src/main/kotlin/com/v2ray/ang/service/V2RayServiceManager.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/service/V2RayServiceManager.kt
index 333fe83..09c7ba0 100644
--- a/app/src/main/kotlin/com/v2ray/ang/service/V2RayServiceManager.kt
+++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/service/V2RayServiceManager.kt
@@ -61,7 +61,9 @@ object V2RayServiceManager {
fun startV2Ray(context: Context) {
if (settingsStorage?.decodeBool(AppConfig.PREF_PROXY_SHARING) == true) {
+ context.toast(R.string.toast_warning_pref_proxysharing_short)
} else {
+ context.toast(R.string.toast_services_start)
}
val intent = if (settingsStorage?.decodeString(AppConfig.PREF_MODE) ?: "VPN" == "VPN") {
Intent(context.applicationContext, V2RayVpnService::class.java)
diff --git a/app/src/main/kotlin/com/v2ray/ang/service/V2RayTestService.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/service/V2RayTestService.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/service/V2RayTestService.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/service/V2RayTestService.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/service/V2RayVpnService.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/service/V2RayVpnService.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/service/V2RayVpnService.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/service/V2RayVpnService.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/ui/BaseActivity.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/BaseActivity.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/ui/BaseActivity.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/BaseActivity.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/ui/FragmentAdapter.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/FragmentAdapter.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/ui/FragmentAdapter.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/FragmentAdapter.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/ui/LogcatActivity.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/LogcatActivity.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/ui/LogcatActivity.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/LogcatActivity.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/ui/MainActivity.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/MainActivity.kt
similarity index 97%
rename from app/src/main/kotlin/com/v2ray/ang/ui/MainActivity.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/MainActivity.kt
index 13859d3..aefe575 100644
--- a/app/src/main/kotlin/com/v2ray/ang/ui/MainActivity.kt
+++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/MainActivity.kt
@@ -113,6 +113,8 @@ class MainActivity : BaseActivity(), NavigationView.OnNavigationItemSelectedList
RxPermissions(this)
.request(Manifest.permission.POST_NOTIFICATIONS)
.subscribe {
+ if (!it)
+ toast(R.string.toast_permission_denied)
}
}
}
@@ -408,8 +410,10 @@ class MainActivity : BaseActivity(), NavigationView.OnNavigationItemSelectedList
count = AngConfigManager.importBatchConfig(Utils.decode(server!!), subid2, append)
}
if (count > 0) {
+ toast(R.string.toast_success)
mainViewModel.reloadServerList()
} else {
+ toast(R.string.toast_failure)
}
}
@@ -635,7 +639,6 @@ class MainActivity : BaseActivity(), NavigationView.OnNavigationItemSelectedList
@Deprecated("Deprecated in Java")
override fun onBackPressed() {
- super.onBackPressed()
if (binding.drawerLayout.isDrawerOpen(GravityCompat.START)) {
binding.drawerLayout.closeDrawer(GravityCompat.START)
} else {
@@ -649,7 +652,6 @@ class MainActivity : BaseActivity(), NavigationView.OnNavigationItemSelectedList
when (item.itemId) {
//R.id.server_profile -> activityClass = MainActivity::class.java
R.id.sub_setting -> {
- toast(getString(R.string.subscription_warning))
startActivity(Intent(this, SubSettingActivity::class.java))
}
R.id.settings -> {
@@ -661,18 +663,10 @@ class MainActivity : BaseActivity(), NavigationView.OnNavigationItemSelectedList
}
R.id.feedback -> {
Utils.openUri(this, AppConfig.v2rayNGIssues)
- toast(getString(R.string.opening_browser))
}
R.id.logcat -> {
- toast(getString(R.string.logcat_warning))
startActivity(Intent(this, LogcatActivity::class.java))
}
- R.id.vpnhotspot -> {
- toast(getString(R.string.vpnhotspot_need_installed))
- Intent();
- intent.setComponent( ComponentName("be.mygod.vpnhotspot","be.mygod.vpnhotspot.MainActivity"));
- startActivity(intent)
- }
}
binding.drawerLayout.closeDrawer(GravityCompat.START)
return true
diff --git a/app/src/main/kotlin/com/v2ray/ang/ui/MainRecyclerAdapter.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/MainRecyclerAdapter.kt
similarity index 98%
rename from app/src/main/kotlin/com/v2ray/ang/ui/MainRecyclerAdapter.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/MainRecyclerAdapter.kt
index 25a90db..d33e54a 100644
--- a/app/src/main/kotlin/com/v2ray/ang/ui/MainRecyclerAdapter.kt
+++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/MainRecyclerAdapter.kt
@@ -113,6 +113,7 @@ class MainRecyclerAdapter(val activity: MainActivity) : RecyclerView.Adapter {
if (AngConfigManager.share2Clipboard(mActivity, guid) == 0) {
+ mActivity.toast(R.string.toast_success)
} else {
mActivity.toast(R.string.toast_failure)
}
@@ -141,7 +142,6 @@ class MainRecyclerAdapter(val activity: MainActivity) : RecyclerView.Adapter
removeServer(guid, position)
- mActivity.toast(R.string.toast_success)
}
.show()
} else {
@@ -159,7 +159,7 @@ class MainRecyclerAdapter(val activity: MainActivity) : RecyclerView.Adapter(AppConfig.PREF_PER_APP_PROXY) }
- private val localDns by lazy { findPreference(AppConfig.PREF_LOCAL_DNS_ENABLED) }
- private val fakeDns by lazy { findPreference(AppConfig.PREF_FAKE_DNS_ENABLED) }
+ private val perAppProxy by lazy { findPreference(AppConfig.PREF_PER_APP_PROXY) }
+ private val localDns by lazy { findPreference(AppConfig.PREF_LOCAL_DNS_ENABLED) }
+ private val fakeDns by lazy { findPreference(AppConfig.PREF_FAKE_DNS_ENABLED) }
private val localDnsPort by lazy { findPreference(AppConfig.PREF_LOCAL_DNS_PORT) }
private val vpnDns by lazy { findPreference(AppConfig.PREF_VPN_DNS) }
+ // val autoRestart by lazy { findPreference(PREF_AUTO_RESTART) as CheckBoxPreference }
private val remoteDns by lazy { findPreference(AppConfig.PREF_REMOTE_DNS) }
private val domesticDns by lazy { findPreference(AppConfig.PREF_DOMESTIC_DNS) }
private val socksPort by lazy { findPreference(AppConfig.PREF_SOCKS_PORT) }
private val httpPort by lazy { findPreference(AppConfig.PREF_HTTP_PORT) }
private val routingCustom by lazy { findPreference(AppConfig.PREF_ROUTING_CUSTOM) }
- private val autoUpdateCheck by lazy { findPreference(AppConfig.SUBSCRIPTION_AUTO_UPDATE) }
- private val autoUpdateInterval by lazy { findPreference(AppConfig.SUBSCRIPTION_AUTO_UPDATE_INTERVAL) }
- private val languageswitch by lazy { findPreference(AppConfig.PREF_LANGUAGE) }
+ // val licenses: Preference by lazy { findPreference(PREF_LICENSES) }
+// val feedback: Preference by lazy { findPreference(PREF_FEEDBACK) }
+// val tgGroup: Preference by lazy { findPreference(PREF_TG_GROUP) }
+
private val mode by lazy { findPreference(AppConfig.PREF_MODE) }
private val muxConcurrency by lazy { findPreference(AppConfig.PREF_MUX_CONCURRENCY) }
@@ -61,23 +52,27 @@ class SettingsActivity : BaseActivity() {
false
}
- autoUpdateCheck?.setOnPreferenceChangeListener { _, newValue ->
- val value = newValue as Boolean
- autoUpdateCheck?.isChecked = value
- autoUpdateInterval?.isEnabled = value
- autoUpdateInterval?.text?.toLong()?.let {
- if (newValue) configureUpdateTask(it) else cancelUpdateTask()
- }
- true
- }
-
- autoUpdateInterval?.setOnPreferenceChangeListener { _, any ->
- val nval = any as String
- autoUpdateInterval?.summary =
- if (TextUtils.isEmpty(nval) or (nval.toLong() < 15)) AppConfig.DEFAULT_UPDATE_INTERVAL else nval
- configureUpdateTask(nval.toLong())
- false
- }
+// licenses.onClick {
+// val fragment = LicensesDialogFragment.Builder(act)
+// .setNotices(R.raw.licenses)
+// .setIncludeOwnLicense(false)
+// .build()
+// fragment.show((act as AppCompatActivity).supportFragmentManager, null)
+// }
+//
+// feedback.onClick {
+// Utils.openUri(activity, "https://github.com/2dust/v2rayNG/issues")
+// }
+// tgGroup.onClick {
+// // Utils.openUri(activity, "https://t.me/v2rayN")
+// val intent = Intent(Intent.ACTION_VIEW, Uri.parse("tg:resolve?domain=v2rayN"))
+// try {
+// startActivity(intent)
+// } catch (e: Exception) {
+// e.printStackTrace()
+// toast(R.string.toast_tg_app_not_found)
+// }
+// }
perAppProxy?.setOnPreferenceClickListener {
startActivity(Intent(activity, PerAppProxyActivity::class.java))
@@ -100,18 +95,16 @@ class SettingsActivity : BaseActivity() {
muxConcurrency?.setOnPreferenceChangeListener { _, any ->
val nval = any as String
- muxConcurrency?.summary =
- if (TextUtils.isEmpty(nval)) AppConfig.MUX_CONCURRENCY else nval
+ muxConcurrency?.summary = if (TextUtils.isEmpty(nval)) AppConfig.MUX_CONCURRENCY else nval
true
}
- localDns?.setOnPreferenceChangeListener { _, any ->
+ localDns?.setOnPreferenceChangeListener{ _, any ->
updateLocalDns(any as Boolean)
true
}
localDnsPort?.setOnPreferenceChangeListener { _, any ->
val nval = any as String
- localDnsPort?.summary =
- if (TextUtils.isEmpty(nval)) AppConfig.PORT_LOCAL_DNS else nval
+ localDnsPort?.summary = if (TextUtils.isEmpty(nval)) AppConfig.PORT_LOCAL_DNS else nval
true
}
vpnDns?.setOnPreferenceChangeListener { _, any ->
@@ -135,39 +128,20 @@ class SettingsActivity : BaseActivity() {
updateMode(newValue.toString())
true
}
+ mode?.dialogLayoutResource = R.layout.preference_with_help_link
//loglevel.summary = "LogLevel"
}
override fun onStart() {
super.onStart()
- val defaultSharedPreferences =
- PreferenceManager.getDefaultSharedPreferences(requireActivity())
+ val defaultSharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity())
updateMode(defaultSharedPreferences.getString(AppConfig.PREF_MODE, "VPN"))
var remoteDnsString = defaultSharedPreferences.getString(AppConfig.PREF_REMOTE_DNS, "")
- domesticDns?.summary =
- defaultSharedPreferences.getString(AppConfig.PREF_DOMESTIC_DNS, "")
-
- localDnsPort?.summary = defaultSharedPreferences.getString(
- AppConfig.PREF_LOCAL_DNS_PORT,
- AppConfig.PORT_LOCAL_DNS
- )
- socksPort?.summary =
- defaultSharedPreferences.getString(AppConfig.PREF_SOCKS_PORT, AppConfig.PORT_SOCKS)
- httpPort?.summary =
- defaultSharedPreferences.getString(AppConfig.PREF_HTTP_PORT, AppConfig.PORT_HTTP)
- localDnsPort?.summary = defaultSharedPreferences.getString(
- AppConfig.PREF_LOCAL_DNS_PORT,
- AppConfig.PORT_LOCAL_DNS
- )
- socksPort?.summary =
- defaultSharedPreferences.getString(AppConfig.PREF_SOCKS_PORT, AppConfig.PORT_SOCKS)
- httpPort?.summary =
- defaultSharedPreferences.getString(AppConfig.PREF_HTTP_PORT, AppConfig.PORT_HTTP)
- autoUpdateInterval?.summary = defaultSharedPreferences.getString(
- AppConfig.SUBSCRIPTION_AUTO_UPDATE_INTERVAL,
- AppConfig.DEFAULT_UPDATE_INTERVAL
- )
+ domesticDns?.summary = defaultSharedPreferences.getString(AppConfig.PREF_DOMESTIC_DNS, "")
+ localDnsPort?.summary = defaultSharedPreferences.getString(AppConfig.PREF_LOCAL_DNS_PORT, AppConfig.PORT_LOCAL_DNS)
+ socksPort?.summary = defaultSharedPreferences.getString(AppConfig.PREF_SOCKS_PORT, AppConfig.PORT_SOCKS)
+ httpPort?.summary = defaultSharedPreferences.getString(AppConfig.PREF_HTTP_PORT, AppConfig.PORT_HTTP)
if (TextUtils.isEmpty(remoteDnsString)) {
remoteDnsString = AppConfig.DNS_AGENT
@@ -176,8 +150,7 @@ class SettingsActivity : BaseActivity() {
domesticDns?.summary = AppConfig.DNS_DIRECT
}
remoteDns?.summary = remoteDnsString
- vpnDns?.summary =
- defaultSharedPreferences.getString(AppConfig.PREF_VPN_DNS, remoteDnsString)
+ vpnDns?.summary = defaultSharedPreferences.getString(AppConfig.PREF_VPN_DNS, remoteDnsString)
if (TextUtils.isEmpty(localDnsPort?.summary)) {
localDnsPort?.summary = AppConfig.PORT_LOCAL_DNS
@@ -191,24 +164,17 @@ class SettingsActivity : BaseActivity() {
}
private fun updateMode(mode: String?) {
- val defaultSharedPreferences =
- PreferenceManager.getDefaultSharedPreferences(requireActivity())
+ val defaultSharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity())
val vpn = mode == "VPN"
perAppProxy?.isEnabled = vpn
- perAppProxy?.isChecked =
- PreferenceManager.getDefaultSharedPreferences(requireActivity())
+ perAppProxy?.isChecked = PreferenceManager.getDefaultSharedPreferences(requireActivity())
.getBoolean(AppConfig.PREF_PER_APP_PROXY, false)
localDns?.isEnabled = vpn
fakeDns?.isEnabled = vpn
localDnsPort?.isEnabled = vpn
vpnDns?.isEnabled = vpn
if (vpn) {
- updateLocalDns(
- defaultSharedPreferences.getBoolean(
- AppConfig.PREF_LOCAL_DNS_ENABLED,
- false
- )
- )
+ updateLocalDns(defaultSharedPreferences.getBoolean(AppConfig.PREF_LOCAL_DNS_ENABLED, false))
}
}
@@ -217,34 +183,9 @@ class SettingsActivity : BaseActivity() {
localDnsPort?.isEnabled = enabled
vpnDns?.isEnabled = !enabled
}
+ }
- private fun configureUpdateTask(interval: Long) {
- val rw = RemoteWorkManager.getInstance(AngApplication.application)
- rw.cancelUniqueWork(AppConfig.UPDATE_TASK_NAME)
- rw.enqueueUniquePeriodicWork(
- AppConfig.UPDATE_TASK_NAME,
- ExistingPeriodicWorkPolicy.UPDATE,
- PeriodicWorkRequest.Builder(
- SubscriptionUpdater.UpdateTask::class.java,
- interval,
- TimeUnit.MINUTES
- )
- .apply {
- setInitialDelay(interval, TimeUnit.MINUTES)
- }
- .setConstraints(
- Constraints(
- NetworkType.CONNECTED,
- )
- ).build()
- )
- }
-
- private fun cancelUpdateTask() {
- val rw = RemoteWorkManager.getInstance(AngApplication.application)
- rw.cancelUniqueWork(AppConfig.UPDATE_TASK_NAME)
- }
+ fun onModeHelpClicked(view: View) {
+ Utils.openUri(this, AppConfig.v2rayNGWikiMode)
}
}
- private fun languageswitch() {
- }
\ No newline at end of file
diff --git a/app/src/main/kotlin/com/v2ray/ang/ui/SubEditActivity.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/SubEditActivity.kt
similarity index 89%
rename from app/src/main/kotlin/com/v2ray/ang/ui/SubEditActivity.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/SubEditActivity.kt
index f5a3eda..5a5a8d4 100644
--- a/app/src/main/kotlin/com/v2ray/ang/ui/SubEditActivity.kt
+++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/SubEditActivity.kt
@@ -5,22 +5,14 @@ import android.text.TextUtils
import android.view.Menu
import android.view.MenuItem
import androidx.appcompat.app.AlertDialog
-import androidx.work.Constraints
-import androidx.work.ExistingPeriodicWorkPolicy
-import androidx.work.NetworkType
-import androidx.work.PeriodicWorkRequest
-import androidx.work.multiprocess.RemoteWorkManager
import com.google.gson.Gson
import com.tencent.mmkv.MMKV
-import com.v2ray.ang.AngApplication
import com.v2ray.ang.R
import com.v2ray.ang.databinding.ActivitySubEditBinding
import com.v2ray.ang.dto.SubscriptionItem
import com.v2ray.ang.extension.toast
-import com.v2ray.ang.service.SubscriptionUpdater
import com.v2ray.ang.util.MmkvManager
import com.v2ray.ang.util.Utils
-import java.util.concurrent.TimeUnit
class SubEditActivity : BaseActivity() {
private lateinit var binding: ActivitySubEditBinding
@@ -54,7 +46,6 @@ class SubEditActivity : BaseActivity() {
binding.etRemarks.text = Utils.getEditable(subItem.remarks)
binding.etUrl.text = Utils.getEditable(subItem.url)
binding.chkEnable.isChecked = subItem.enabled
- binding.autoUpdateCheck.isChecked = subItem.autoUpdate
return true
}
@@ -85,7 +76,6 @@ class SubEditActivity : BaseActivity() {
subItem.remarks = binding.etRemarks.text.toString()
subItem.url = binding.etUrl.text.toString()
subItem.enabled = binding.chkEnable.isChecked
- subItem.autoUpdate = binding.autoUpdateCheck.isChecked
if (TextUtils.isEmpty(subItem.remarks)) {
toast(R.string.sub_setting_remarks)
@@ -139,6 +129,5 @@ class SubEditActivity : BaseActivity() {
true
}
else -> super.onOptionsItemSelected(item)
-
}
}
diff --git a/app/src/main/kotlin/com/v2ray/ang/ui/SubSettingActivity.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/SubSettingActivity.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/ui/SubSettingActivity.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/SubSettingActivity.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/ui/SubSettingRecyclerAdapter.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/SubSettingRecyclerAdapter.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/ui/SubSettingRecyclerAdapter.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/SubSettingRecyclerAdapter.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/ui/TaskerActivity.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/TaskerActivity.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/ui/TaskerActivity.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/TaskerActivity.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/ui/UrlSchemeActivity.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/UrlSchemeActivity.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/ui/UrlSchemeActivity.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/UrlSchemeActivity.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/ui/UserAssetActivity.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/UserAssetActivity.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/ui/UserAssetActivity.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/UserAssetActivity.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/util/AngConfigManager.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/AngConfigManager.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/util/AngConfigManager.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/AngConfigManager.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/util/AppManagerUtil.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/AppManagerUtil.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/util/AppManagerUtil.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/AppManagerUtil.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/util/MessageUtil.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/MessageUtil.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/util/MessageUtil.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/MessageUtil.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/util/MmkvManager.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/MmkvManager.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/util/MmkvManager.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/MmkvManager.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/util/MyContextWrapper.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/MyContextWrapper.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/util/MyContextWrapper.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/MyContextWrapper.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/util/QRCodeDecoder.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/QRCodeDecoder.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/util/QRCodeDecoder.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/QRCodeDecoder.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/util/SpeedtestUtil.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/SpeedtestUtil.kt
similarity index 98%
rename from app/src/main/kotlin/com/v2ray/ang/util/SpeedtestUtil.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/SpeedtestUtil.kt
index 1999ddf..5a0e598 100644
--- a/app/src/main/kotlin/com/v2ray/ang/util/SpeedtestUtil.kt
+++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/SpeedtestUtil.kt
@@ -49,7 +49,7 @@ object SpeedtestUtil {
if (!TextUtils.isEmpty(allText)) {
val tempInfo = allText.substring(allText.indexOf("min/avg/max/mdev") + 19)
val temps = tempInfo.split("/".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()
- if (temps.count() > 0 && temps[0].length < 9999) {
+ if (temps.count() > 0 && temps[0].length < 10) {
return temps[0].toFloat().toInt().toString() + "ms"
}
}
diff --git a/app/src/main/kotlin/com/v2ray/ang/util/Utils.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/Utils.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/util/Utils.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/Utils.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/util/V2rayConfigUtil.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/V2rayConfigUtil.kt
similarity index 100%
rename from app/src/main/kotlin/com/v2ray/ang/util/V2rayConfigUtil.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/V2rayConfigUtil.kt
diff --git a/app/src/main/kotlin/com/v2ray/ang/viewmodel/MainViewModel.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/viewmodel/MainViewModel.kt
similarity index 99%
rename from app/src/main/kotlin/com/v2ray/ang/viewmodel/MainViewModel.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/viewmodel/MainViewModel.kt
index abf8a1c..0776895 100644
--- a/app/src/main/kotlin/com/v2ray/ang/viewmodel/MainViewModel.kt
+++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/viewmodel/MainViewModel.kt
@@ -232,6 +232,7 @@ class MainViewModel(application: Application) : AndroidViewModel(application) {
isRunning.value = false
}
AppConfig.MSG_STATE_START_SUCCESS -> {
+ getApplication().toast(R.string.toast_services_success)
isRunning.value = true
}
AppConfig.MSG_STATE_START_FAILURE -> {
diff --git a/app/src/main/kotlin/com/v2ray/ang/viewmodel/SettingsViewModel.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/viewmodel/SettingsViewModel.kt
similarity index 82%
rename from app/src/main/kotlin/com/v2ray/ang/viewmodel/SettingsViewModel.kt
rename to V2rayNG/app/src/main/kotlin/com/v2ray/ang/viewmodel/SettingsViewModel.kt
index f163b01..d8ab1b2 100644
--- a/app/src/main/kotlin/com/v2ray/ang/viewmodel/SettingsViewModel.kt
+++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/viewmodel/SettingsViewModel.kt
@@ -6,13 +6,9 @@ import android.util.Log
import androidx.lifecycle.AndroidViewModel
import androidx.preference.PreferenceManager
import com.tencent.mmkv.MMKV
-import com.v2ray.ang.AngApplication
import com.v2ray.ang.AppConfig
-import com.v2ray.ang.R
-import com.v2ray.ang.extension.toast
import com.v2ray.ang.util.MmkvManager
-@Suppress("DUPLICATE_LABEL_IN_WHEN")
class SettingsViewModel(application: Application) : AndroidViewModel(application), SharedPreferences.OnSharedPreferenceChangeListener {
private val settingsStorage by lazy { MMKV.mmkvWithID(MmkvManager.ID_SETTING, MMKV.MULTI_PROCESS_MODE) }
@@ -45,8 +41,7 @@ class SettingsViewModel(application: Application) : AndroidViewModel(application
AppConfig.PREF_V2RAY_ROUTING_BLOCKED,
AppConfig.PREF_V2RAY_ROUTING_DIRECT,
AppConfig.PREF_MUX_CONCURRENCY, -> {
- settingsStorage?.encode(key, sharedPreferences.getString(key, "8"))
- getApplication().toast(R.string.restart_service_required)
+ settingsStorage?.encode(key, sharedPreferences.getString(key, ""))
}
AppConfig.PREF_SPEED_ENABLED,
AppConfig.PREF_PROXY_SHARING,
@@ -60,13 +55,8 @@ class SettingsViewModel(application: Application) : AndroidViewModel(application
AppConfig.PREF_START_SCAN_IMMEDIATE,
AppConfig.PREF_MUX_ENABLED, -> {
settingsStorage?.encode(key, sharedPreferences.getBoolean(key, false))
- getApplication().toast(R.string.restart_service_required)
}
AppConfig.PREF_SNIFFING_ENABLED -> {
- settingsStorage?.encode(key, sharedPreferences.getBoolean(key, false))
- getApplication().toast(R.string.restart_service_required)
- }
- AppConfig.PREF_CONFIRM_REMOVE -> {
settingsStorage?.encode(key, sharedPreferences.getBoolean(key, true))
}
AppConfig.PREF_PER_APP_PROXY_SET -> {
diff --git a/app/src/main/res/anim/fade_in.xml b/V2rayNG/app/src/main/res/anim/fade_in.xml
similarity index 100%
rename from app/src/main/res/anim/fade_in.xml
rename to V2rayNG/app/src/main/res/anim/fade_in.xml
diff --git a/app/src/main/res/anim/fade_out.xml b/V2rayNG/app/src/main/res/anim/fade_out.xml
similarity index 100%
rename from app/src/main/res/anim/fade_out.xml
rename to V2rayNG/app/src/main/res/anim/fade_out.xml
diff --git a/app/src/main/res/color/color_highlight_material.xml b/V2rayNG/app/src/main/res/color/color_highlight_material.xml
similarity index 100%
rename from app/src/main/res/color/color_highlight_material.xml
rename to V2rayNG/app/src/main/res/color/color_highlight_material.xml
diff --git a/app/src/main/res/drawable-hdpi/ic_stat_direct.png b/V2rayNG/app/src/main/res/drawable-hdpi/ic_stat_direct.png
similarity index 100%
rename from app/src/main/res/drawable-hdpi/ic_stat_direct.png
rename to V2rayNG/app/src/main/res/drawable-hdpi/ic_stat_direct.png
diff --git a/app/src/main/res/drawable-hdpi/ic_stat_name.png b/V2rayNG/app/src/main/res/drawable-hdpi/ic_stat_name.png
similarity index 100%
rename from app/src/main/res/drawable-hdpi/ic_stat_name.png
rename to V2rayNG/app/src/main/res/drawable-hdpi/ic_stat_name.png
diff --git a/app/src/main/res/drawable-hdpi/ic_stat_proxy.png b/V2rayNG/app/src/main/res/drawable-hdpi/ic_stat_proxy.png
similarity index 100%
rename from app/src/main/res/drawable-hdpi/ic_stat_proxy.png
rename to V2rayNG/app/src/main/res/drawable-hdpi/ic_stat_proxy.png
diff --git a/app/src/main/res/drawable-mdpi/ic_stat_direct.png b/V2rayNG/app/src/main/res/drawable-mdpi/ic_stat_direct.png
similarity index 100%
rename from app/src/main/res/drawable-mdpi/ic_stat_direct.png
rename to V2rayNG/app/src/main/res/drawable-mdpi/ic_stat_direct.png
diff --git a/app/src/main/res/drawable-mdpi/ic_stat_name.png b/V2rayNG/app/src/main/res/drawable-mdpi/ic_stat_name.png
similarity index 100%
rename from app/src/main/res/drawable-mdpi/ic_stat_name.png
rename to V2rayNG/app/src/main/res/drawable-mdpi/ic_stat_name.png
diff --git a/app/src/main/res/drawable-mdpi/ic_stat_proxy.png b/V2rayNG/app/src/main/res/drawable-mdpi/ic_stat_proxy.png
similarity index 100%
rename from app/src/main/res/drawable-mdpi/ic_stat_proxy.png
rename to V2rayNG/app/src/main/res/drawable-mdpi/ic_stat_proxy.png
diff --git a/app/src/main/res/drawable-xhdpi/ic_stat_direct.png b/V2rayNG/app/src/main/res/drawable-xhdpi/ic_stat_direct.png
similarity index 100%
rename from app/src/main/res/drawable-xhdpi/ic_stat_direct.png
rename to V2rayNG/app/src/main/res/drawable-xhdpi/ic_stat_direct.png
diff --git a/app/src/main/res/drawable-xhdpi/ic_stat_name.png b/V2rayNG/app/src/main/res/drawable-xhdpi/ic_stat_name.png
similarity index 100%
rename from app/src/main/res/drawable-xhdpi/ic_stat_name.png
rename to V2rayNG/app/src/main/res/drawable-xhdpi/ic_stat_name.png
diff --git a/app/src/main/res/drawable-xhdpi/ic_stat_proxy.png b/V2rayNG/app/src/main/res/drawable-xhdpi/ic_stat_proxy.png
similarity index 100%
rename from app/src/main/res/drawable-xhdpi/ic_stat_proxy.png
rename to V2rayNG/app/src/main/res/drawable-xhdpi/ic_stat_proxy.png
diff --git a/app/src/main/res/drawable-xxhdpi/donate.png b/V2rayNG/app/src/main/res/drawable-xxhdpi/donate.png
similarity index 100%
rename from app/src/main/res/drawable-xxhdpi/donate.png
rename to V2rayNG/app/src/main/res/drawable-xxhdpi/donate.png
diff --git a/app/src/main/res/drawable-xxhdpi/ic_stat_direct.png b/V2rayNG/app/src/main/res/drawable-xxhdpi/ic_stat_direct.png
similarity index 100%
rename from app/src/main/res/drawable-xxhdpi/ic_stat_direct.png
rename to V2rayNG/app/src/main/res/drawable-xxhdpi/ic_stat_direct.png
diff --git a/app/src/main/res/drawable-xxhdpi/ic_stat_name.png b/V2rayNG/app/src/main/res/drawable-xxhdpi/ic_stat_name.png
similarity index 100%
rename from app/src/main/res/drawable-xxhdpi/ic_stat_name.png
rename to V2rayNG/app/src/main/res/drawable-xxhdpi/ic_stat_name.png
diff --git a/app/src/main/res/drawable-xxhdpi/ic_stat_proxy.png b/V2rayNG/app/src/main/res/drawable-xxhdpi/ic_stat_proxy.png
similarity index 100%
rename from app/src/main/res/drawable-xxhdpi/ic_stat_proxy.png
rename to V2rayNG/app/src/main/res/drawable-xxhdpi/ic_stat_proxy.png
diff --git a/app/src/main/res/drawable-xxhdpi/side_nav_bar.xml b/V2rayNG/app/src/main/res/drawable-xxhdpi/side_nav_bar.xml
similarity index 100%
rename from app/src/main/res/drawable-xxhdpi/side_nav_bar.xml
rename to V2rayNG/app/src/main/res/drawable-xxhdpi/side_nav_bar.xml
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_stat_direct.png b/V2rayNG/app/src/main/res/drawable-xxxhdpi/ic_stat_direct.png
similarity index 100%
rename from app/src/main/res/drawable-xxxhdpi/ic_stat_direct.png
rename to V2rayNG/app/src/main/res/drawable-xxxhdpi/ic_stat_direct.png
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_stat_name.png b/V2rayNG/app/src/main/res/drawable-xxxhdpi/ic_stat_name.png
similarity index 100%
rename from app/src/main/res/drawable-xxxhdpi/ic_stat_name.png
rename to V2rayNG/app/src/main/res/drawable-xxxhdpi/ic_stat_name.png
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_stat_proxy.png b/V2rayNG/app/src/main/res/drawable-xxxhdpi/ic_stat_proxy.png
similarity index 100%
rename from app/src/main/res/drawable-xxxhdpi/ic_stat_proxy.png
rename to V2rayNG/app/src/main/res/drawable-xxxhdpi/ic_stat_proxy.png
diff --git a/app/src/main/res/drawable/ic_action_done.xml b/V2rayNG/app/src/main/res/drawable/ic_action_done.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_action_done.xml
rename to V2rayNG/app/src/main/res/drawable/ic_action_done.xml
diff --git a/app/src/main/res/drawable/ic_add_white_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_add_white_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_add_white_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_add_white_24dp.xml
diff --git a/app/src/main/res/drawable/ic_attach_money_black_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_attach_money_black_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_attach_money_black_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_attach_money_black_24dp.xml
diff --git a/app/src/main/res/drawable/ic_attach_money_white_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_attach_money_white_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_attach_money_white_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_attach_money_white_24dp.xml
diff --git a/app/src/main/res/drawable/ic_close_grey_800_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_close_grey_800_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_close_grey_800_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_close_grey_800_24dp.xml
diff --git a/app/src/main/res/drawable/ic_cloud_download_white_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_cloud_download_white_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_cloud_download_white_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_cloud_download_white_24dp.xml
diff --git a/app/src/main/res/drawable/ic_copy_white.xml b/V2rayNG/app/src/main/res/drawable/ic_copy_white.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_copy_white.xml
rename to V2rayNG/app/src/main/res/drawable/ic_copy_white.xml
diff --git a/app/src/main/res/drawable/ic_delete_black_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_delete_black_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_delete_black_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_delete_black_24dp.xml
diff --git a/app/src/main/res/drawable/ic_delete_white_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_delete_white_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_delete_white_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_delete_white_24dp.xml
diff --git a/app/src/main/res/drawable/ic_description_black_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_description_black_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_description_black_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_description_black_24dp.xml
diff --git a/app/src/main/res/drawable/ic_description_white_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_description_white_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_description_white_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_description_white_24dp.xml
diff --git a/app/src/main/res/drawable/ic_edit_black_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_edit_black_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_edit_black_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_edit_black_24dp.xml
diff --git a/app/src/main/res/drawable/ic_fab_check.xml b/V2rayNG/app/src/main/res/drawable/ic_fab_check.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_fab_check.xml
rename to V2rayNG/app/src/main/res/drawable/ic_fab_check.xml
diff --git a/app/src/main/res/drawable/ic_feedback_white_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_feedback_white_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_feedback_white_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_feedback_white_24dp.xml
diff --git a/app/src/main/res/drawable/ic_file_white_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_file_white_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_file_white_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_file_white_24dp.xml
diff --git a/app/src/main/res/drawable/ic_image_photo.xml b/V2rayNG/app/src/main/res/drawable/ic_image_photo.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_image_photo.xml
rename to V2rayNG/app/src/main/res/drawable/ic_image_photo.xml
diff --git a/app/src/main/res/drawable/ic_info_black_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_info_black_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_info_black_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_info_black_24dp.xml
diff --git a/app/src/main/res/drawable/ic_logcat_white_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_logcat_white_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_logcat_white_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_logcat_white_24dp.xml
diff --git a/app/src/main/res/drawable/ic_outline_filter_alt_white_24.xml b/V2rayNG/app/src/main/res/drawable/ic_outline_filter_alt_white_24.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_outline_filter_alt_white_24.xml
rename to V2rayNG/app/src/main/res/drawable/ic_outline_filter_alt_white_24.xml
diff --git a/app/src/main/res/drawable/ic_qu_scan_black_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_qu_scan_black_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_qu_scan_black_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_qu_scan_black_24dp.xml
diff --git a/app/src/main/res/drawable/ic_qu_settings_black_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_qu_settings_black_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_qu_settings_black_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_qu_settings_black_24dp.xml
diff --git a/app/src/main/res/drawable/ic_qu_switch_black_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_qu_switch_black_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_qu_switch_black_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_qu_switch_black_24dp.xml
diff --git a/app/src/main/res/drawable/ic_rounded_corner_grey.xml b/V2rayNG/app/src/main/res/drawable/ic_rounded_corner_grey.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_rounded_corner_grey.xml
rename to V2rayNG/app/src/main/res/drawable/ic_rounded_corner_grey.xml
diff --git a/app/src/main/res/drawable/ic_rounded_corner_theme.xml b/V2rayNG/app/src/main/res/drawable/ic_rounded_corner_theme.xml
similarity index 83%
rename from app/src/main/res/drawable/ic_rounded_corner_theme.xml
rename to V2rayNG/app/src/main/res/drawable/ic_rounded_corner_theme.xml
index afc2118..0463d8b 100644
--- a/app/src/main/res/drawable/ic_rounded_corner_theme.xml
+++ b/V2rayNG/app/src/main/res/drawable/ic_rounded_corner_theme.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_save_white_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_save_white_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_save_white_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_save_white_24dp.xml
diff --git a/app/src/main/res/drawable/ic_scan_black_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_scan_black_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_scan_black_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_scan_black_24dp.xml
diff --git a/app/src/main/res/drawable/ic_select_all_white_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_select_all_white_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_select_all_white_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_select_all_white_24dp.xml
diff --git a/app/src/main/res/drawable/ic_settings_white_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_settings_white_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_settings_white_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_settings_white_24dp.xml
diff --git a/app/src/main/res/drawable/ic_share_black_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_share_black_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_share_black_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_share_black_24dp.xml
diff --git a/app/src/main/res/drawable/ic_share_white_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_share_white_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_share_white_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_share_white_24dp.xml
diff --git a/app/src/main/res/drawable/ic_shortcut_background.xml b/V2rayNG/app/src/main/res/drawable/ic_shortcut_background.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_shortcut_background.xml
rename to V2rayNG/app/src/main/res/drawable/ic_shortcut_background.xml
diff --git a/app/src/main/res/drawable/ic_subscriptions_black_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_subscriptions_black_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_subscriptions_black_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_subscriptions_black_24dp.xml
diff --git a/app/src/main/res/drawable/ic_subscriptions_white_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_subscriptions_white_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_subscriptions_white_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_subscriptions_white_24dp.xml
diff --git a/app/src/main/res/drawable/ic_whatshot_black_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_whatshot_black_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_whatshot_black_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_whatshot_black_24dp.xml
diff --git a/app/src/main/res/drawable/ic_whatshot_white_24dp.xml b/V2rayNG/app/src/main/res/drawable/ic_whatshot_white_24dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_whatshot_white_24dp.xml
rename to V2rayNG/app/src/main/res/drawable/ic_whatshot_white_24dp.xml
diff --git a/V2rayNG/app/src/main/res/drawable/nav_header_bg.png b/V2rayNG/app/src/main/res/drawable/nav_header_bg.png
new file mode 100644
index 0000000..82cb00a
Binary files /dev/null and b/V2rayNG/app/src/main/res/drawable/nav_header_bg.png differ
diff --git a/app/src/main/res/layout/activity_bypass_list.xml b/V2rayNG/app/src/main/res/layout/activity_bypass_list.xml
similarity index 100%
rename from app/src/main/res/layout/activity_bypass_list.xml
rename to V2rayNG/app/src/main/res/layout/activity_bypass_list.xml
diff --git a/app/src/main/res/layout/activity_logcat.xml b/V2rayNG/app/src/main/res/layout/activity_logcat.xml
similarity index 100%
rename from app/src/main/res/layout/activity_logcat.xml
rename to V2rayNG/app/src/main/res/layout/activity_logcat.xml
diff --git a/app/src/main/res/layout/activity_main.xml b/V2rayNG/app/src/main/res/layout/activity_main.xml
similarity index 93%
rename from app/src/main/res/layout/activity_main.xml
rename to V2rayNG/app/src/main/res/layout/activity_main.xml
index f2db381..5f3c9e9 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/V2rayNG/app/src/main/res/layout/activity_main.xml
@@ -13,12 +13,13 @@
+ android:layout_height="wrap_content"
+ android:theme="@style/AppTheme.AppBarOverlay">
+ android:layout_height="?attr/actionBarSize" />
@@ -64,7 +65,7 @@
android:paddingStart="16dp"
android:text="@string/connection_test_pending"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
- android:textColor="@color/colorText" />
+ android:textColor="@color/colorWhite" />
@@ -91,7 +92,7 @@
android:clickable="true"
android:focusable="true"
android:nextFocusLeft="@+id/layout_test"
- android:src="@drawable/ic_stat_name_grey"
+ android:src="@drawable/ic_stat_name"
app:layout_anchorGravity="bottom|right|end" />
@@ -104,6 +105,7 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
+ app:headerLayout="@layout/nav_header"
app:menu="@menu/menu_drawer" >
+ android:textColor="@color/fab_orange_dark" />
diff --git a/app/src/main/res/layout/activity_server_shadowsocks.xml b/V2rayNG/app/src/main/res/layout/activity_server_shadowsocks.xml
similarity index 97%
rename from app/src/main/res/layout/activity_server_shadowsocks.xml
rename to V2rayNG/app/src/main/res/layout/activity_server_shadowsocks.xml
index aba1b74..dba1c14 100644
--- a/app/src/main/res/layout/activity_server_shadowsocks.xml
+++ b/V2rayNG/app/src/main/res/layout/activity_server_shadowsocks.xml
@@ -19,8 +19,7 @@
diff --git a/app/src/main/res/layout/activity_server_socks.xml b/V2rayNG/app/src/main/res/layout/activity_server_socks.xml
similarity index 97%
rename from app/src/main/res/layout/activity_server_socks.xml
rename to V2rayNG/app/src/main/res/layout/activity_server_socks.xml
index 0cac6ea..5f34c37 100644
--- a/app/src/main/res/layout/activity_server_socks.xml
+++ b/V2rayNG/app/src/main/res/layout/activity_server_socks.xml
@@ -19,8 +19,7 @@
diff --git a/app/src/main/res/layout/activity_server_trojan.xml b/V2rayNG/app/src/main/res/layout/activity_server_trojan.xml
similarity index 98%
rename from app/src/main/res/layout/activity_server_trojan.xml
rename to V2rayNG/app/src/main/res/layout/activity_server_trojan.xml
index 7781ed4..88eb70f 100644
--- a/app/src/main/res/layout/activity_server_trojan.xml
+++ b/V2rayNG/app/src/main/res/layout/activity_server_trojan.xml
@@ -19,8 +19,7 @@
diff --git a/app/src/main/res/layout/activity_server_vless.xml b/V2rayNG/app/src/main/res/layout/activity_server_vless.xml
similarity index 98%
rename from app/src/main/res/layout/activity_server_vless.xml
rename to V2rayNG/app/src/main/res/layout/activity_server_vless.xml
index 4132237..8e70bd0 100644
--- a/app/src/main/res/layout/activity_server_vless.xml
+++ b/V2rayNG/app/src/main/res/layout/activity_server_vless.xml
@@ -19,8 +19,7 @@
diff --git a/app/src/main/res/layout/activity_server_vmess.xml b/V2rayNG/app/src/main/res/layout/activity_server_vmess.xml
similarity index 98%
rename from app/src/main/res/layout/activity_server_vmess.xml
rename to V2rayNG/app/src/main/res/layout/activity_server_vmess.xml
index 8c1c89b..ebfeb7e 100644
--- a/app/src/main/res/layout/activity_server_vmess.xml
+++ b/V2rayNG/app/src/main/res/layout/activity_server_vmess.xml
@@ -19,8 +19,7 @@
diff --git a/app/src/main/res/layout/activity_settings.xml b/V2rayNG/app/src/main/res/layout/activity_settings.xml
similarity index 100%
rename from app/src/main/res/layout/activity_settings.xml
rename to V2rayNG/app/src/main/res/layout/activity_settings.xml
diff --git a/app/src/main/res/layout/activity_sub_edit.xml b/V2rayNG/app/src/main/res/layout/activity_sub_edit.xml
similarity index 81%
rename from app/src/main/res/layout/activity_sub_edit.xml
rename to V2rayNG/app/src/main/res/layout/activity_sub_edit.xml
index 1c84dd5..770f93e 100644
--- a/app/src/main/res/layout/activity_sub_edit.xml
+++ b/V2rayNG/app/src/main/res/layout/activity_sub_edit.xml
@@ -60,7 +60,7 @@
android:text="@string/sub_setting_enable" />
-
-
-
-
-
-
-
-
-
-
+ android:textColor="@color/fab_orange_dark" />
+
+ android:textColor="@color/fab_orange_dark" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_recycler_main.xml b/V2rayNG/app/src/main/res/layout/item_recycler_main.xml
similarity index 97%
rename from app/src/main/res/layout/item_recycler_main.xml
rename to V2rayNG/app/src/main/res/layout/item_recycler_main.xml
index 7a42c50..acae822 100644
--- a/app/src/main/res/layout/item_recycler_main.xml
+++ b/V2rayNG/app/src/main/res/layout/item_recycler_main.xml
@@ -84,7 +84,7 @@
android:layout_weight="1"
android:lines="1"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
- android:textColor="@color/color_secondary"
+ android:textColor="@color/colorSubscription"
android:textSize="10sp"
tools:text="Sub" />
@@ -122,7 +122,7 @@
android:layout_width="wrap_content"
android:layout_height="@dimen/png_height"
android:src="@drawable/ic_share_black_24dp"
- app:tint="?colorMainText" />
+ app:tint="?attr/colorMainText" />
@@ -178,7 +178,7 @@
android:layout_height="wrap_content"
android:lines="1"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
- android:textColor="@color/color_secondary"
+ android:textColor="@color/fab_orange_dark"
android:textSize="10sp" />
diff --git a/app/src/main/res/layout/item_recycler_sub_setting.xml b/V2rayNG/app/src/main/res/layout/item_recycler_sub_setting.xml
similarity index 100%
rename from app/src/main/res/layout/item_recycler_sub_setting.xml
rename to V2rayNG/app/src/main/res/layout/item_recycler_sub_setting.xml
diff --git a/app/src/main/res/layout/item_recycler_user_asset.xml b/V2rayNG/app/src/main/res/layout/item_recycler_user_asset.xml
similarity index 100%
rename from app/src/main/res/layout/item_recycler_user_asset.xml
rename to V2rayNG/app/src/main/res/layout/item_recycler_user_asset.xml
diff --git a/V2rayNG/app/src/main/res/layout/nav_header.xml b/V2rayNG/app/src/main/res/layout/nav_header.xml
new file mode 100644
index 0000000..2f5d3ed
--- /dev/null
+++ b/V2rayNG/app/src/main/res/layout/nav_header.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
diff --git a/V2rayNG/app/src/main/res/layout/nav_toolbar.xml b/V2rayNG/app/src/main/res/layout/nav_toolbar.xml
new file mode 100644
index 0000000..262787d
--- /dev/null
+++ b/V2rayNG/app/src/main/res/layout/nav_toolbar.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/nav_view.xml b/V2rayNG/app/src/main/res/layout/nav_view.xml
similarity index 90%
rename from app/src/main/res/layout/nav_view.xml
rename to V2rayNG/app/src/main/res/layout/nav_view.xml
index 9223c8d..34fd03a 100644
--- a/app/src/main/res/layout/nav_view.xml
+++ b/V2rayNG/app/src/main/res/layout/nav_view.xml
@@ -5,4 +5,5 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
+ app:headerLayout="@layout/nav_header"
app:menu="@menu/menu_drawer" />
\ No newline at end of file
diff --git a/V2rayNG/app/src/main/res/layout/preference_with_help_link.xml b/V2rayNG/app/src/main/res/layout/preference_with_help_link.xml
new file mode 100644
index 0000000..ec6e642
--- /dev/null
+++ b/V2rayNG/app/src/main/res/layout/preference_with_help_link.xml
@@ -0,0 +1,11 @@
+
+
diff --git a/app/src/main/res/layout/tls_layout.xml b/V2rayNG/app/src/main/res/layout/tls_layout.xml
similarity index 100%
rename from app/src/main/res/layout/tls_layout.xml
rename to V2rayNG/app/src/main/res/layout/tls_layout.xml
diff --git a/app/src/main/res/layout/widget_switch.xml b/V2rayNG/app/src/main/res/layout/widget_switch.xml
similarity index 89%
rename from app/src/main/res/layout/widget_switch.xml
rename to V2rayNG/app/src/main/res/layout/widget_switch.xml
index 209489d..81d26fa 100644
--- a/app/src/main/res/layout/widget_switch.xml
+++ b/V2rayNG/app/src/main/res/layout/widget_switch.xml
@@ -11,5 +11,5 @@
android:layout_width="40dp"
android:layout_height="40dp"
android:padding="10dp"
- android:src="@drawable/ic_stat_name_grey" />
+ android:src="@drawable/ic_stat_name" />
diff --git a/app/src/main/res/menu/action_server.xml b/V2rayNG/app/src/main/res/menu/action_server.xml
similarity index 80%
rename from app/src/main/res/menu/action_server.xml
rename to V2rayNG/app/src/main/res/menu/action_server.xml
index 1be0f15..f231b05 100644
--- a/app/src/main/res/menu/action_server.xml
+++ b/V2rayNG/app/src/main/res/menu/action_server.xml
@@ -3,12 +3,12 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
\ No newline at end of file
diff --git a/app/src/main/res/menu/action_sub_setting.xml b/V2rayNG/app/src/main/res/menu/action_sub_setting.xml
similarity index 78%
rename from app/src/main/res/menu/action_sub_setting.xml
rename to V2rayNG/app/src/main/res/menu/action_sub_setting.xml
index 87137e0..3a5e7da 100644
--- a/app/src/main/res/menu/action_sub_setting.xml
+++ b/V2rayNG/app/src/main/res/menu/action_sub_setting.xml
@@ -3,17 +3,17 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
\ No newline at end of file
diff --git a/app/src/main/res/menu/menu_asset.xml b/V2rayNG/app/src/main/res/menu/menu_asset.xml
similarity index 79%
rename from app/src/main/res/menu/menu_asset.xml
rename to V2rayNG/app/src/main/res/menu/menu_asset.xml
index e10736c..6a59f05 100644
--- a/app/src/main/res/menu/menu_asset.xml
+++ b/V2rayNG/app/src/main/res/menu/menu_asset.xml
@@ -3,12 +3,12 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
\ No newline at end of file
diff --git a/app/src/main/res/menu/menu_bypass_list.xml b/V2rayNG/app/src/main/res/menu/menu_bypass_list.xml
similarity index 76%
rename from app/src/main/res/menu/menu_bypass_list.xml
rename to V2rayNG/app/src/main/res/menu/menu_bypass_list.xml
index fef2457..a782475 100644
--- a/app/src/main/res/menu/menu_bypass_list.xml
+++ b/V2rayNG/app/src/main/res/menu/menu_bypass_list.xml
@@ -3,31 +3,31 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
diff --git a/app/src/main/res/menu/menu_drawer.xml b/V2rayNG/app/src/main/res/menu/menu_drawer.xml
similarity index 88%
rename from app/src/main/res/menu/menu_drawer.xml
rename to V2rayNG/app/src/main/res/menu/menu_drawer.xml
index 0179c03..373017e 100644
--- a/app/src/main/res/menu/menu_drawer.xml
+++ b/V2rayNG/app/src/main/res/menu/menu_drawer.xml
@@ -25,10 +25,6 @@
android:id="@+id/user_asset_setting"
android:icon="@drawable/ic_file_white_24dp"
android:title="@string/title_user_asset_setting" />
-
\ No newline at end of file
diff --git a/app/src/main/res/menu/menu_main.xml b/V2rayNG/app/src/main/res/menu/menu_main.xml
similarity index 92%
rename from app/src/main/res/menu/menu_main.xml
rename to V2rayNG/app/src/main/res/menu/menu_main.xml
index 96bbe7e..d00ce06 100644
--- a/app/src/main/res/menu/menu_main.xml
+++ b/V2rayNG/app/src/main/res/menu/menu_main.xml
@@ -3,11 +3,11 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/V2rayNG/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
similarity index 100%
rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
rename to V2rayNG/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/V2rayNG/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
similarity index 100%
rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
rename to V2rayNG/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/V2rayNG/app/src/main/res/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from app/src/main/res/mipmap-hdpi/ic_launcher.png
rename to V2rayNG/app/src/main/res/mipmap-hdpi/ic_launcher.png
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/V2rayNG/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
similarity index 100%
rename from app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
rename to V2rayNG/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/V2rayNG/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
similarity index 100%
rename from app/src/main/res/mipmap-hdpi/ic_launcher_round.png
rename to V2rayNG/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/V2rayNG/app/src/main/res/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from app/src/main/res/mipmap-mdpi/ic_launcher.png
rename to V2rayNG/app/src/main/res/mipmap-mdpi/ic_launcher.png
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/V2rayNG/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
similarity index 100%
rename from app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
rename to V2rayNG/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/V2rayNG/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
similarity index 100%
rename from app/src/main/res/mipmap-mdpi/ic_launcher_round.png
rename to V2rayNG/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/V2rayNG/app/src/main/res/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from app/src/main/res/mipmap-xhdpi/ic_launcher.png
rename to V2rayNG/app/src/main/res/mipmap-xhdpi/ic_launcher.png
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/V2rayNG/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
similarity index 100%
rename from app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
rename to V2rayNG/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/V2rayNG/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
similarity index 100%
rename from app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
rename to V2rayNG/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/V2rayNG/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from app/src/main/res/mipmap-xxhdpi/ic_launcher.png
rename to V2rayNG/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/V2rayNG/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
similarity index 100%
rename from app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
rename to V2rayNG/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/V2rayNG/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
similarity index 100%
rename from app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
rename to V2rayNG/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/V2rayNG/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
rename to V2rayNG/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/V2rayNG/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
similarity index 100%
rename from app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
rename to V2rayNG/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/V2rayNG/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
similarity index 100%
rename from app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
rename to V2rayNG/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
diff --git a/app/src/main/res/raw/licenses.xml b/V2rayNG/app/src/main/res/raw/licenses.xml
similarity index 100%
rename from app/src/main/res/raw/licenses.xml
rename to V2rayNG/app/src/main/res/raw/licenses.xml
diff --git a/V2rayNG/app/src/main/res/values-night/colors.xml b/V2rayNG/app/src/main/res/values-night/colors.xml
new file mode 100644
index 0000000..a1beb1c
--- /dev/null
+++ b/V2rayNG/app/src/main/res/values-night/colors.xml
@@ -0,0 +1,6 @@
+
+
+ #12976F
+ #252525
+ #CCCCCC
+
diff --git a/app/src/main/res/values-sw360dp-v13/values-preference.xml b/V2rayNG/app/src/main/res/values-sw360dp-v13/values-preference.xml
similarity index 100%
rename from app/src/main/res/values-sw360dp-v13/values-preference.xml
rename to V2rayNG/app/src/main/res/values-sw360dp-v13/values-preference.xml
diff --git a/app/src/main/res/values-vi/strings.xml b/V2rayNG/app/src/main/res/values-vi/strings.xml
similarity index 87%
rename from app/src/main/res/values-vi/strings.xml
rename to V2rayNG/app/src/main/res/values-vi/strings.xml
index a69eb0d..32562ab 100644
--- a/app/src/main/res/values-vi/strings.xml
+++ b/V2rayNG/app/src/main/res/values-vi/strings.xml
@@ -16,11 +16,6 @@
Đã dừng v2rayNG!Đã bắt đầu v2rayNG!Không thể bắt đầu v2rayNG, kiểm tra lại cấu hình hoặc khởi động lại thiết bị.
- Khởi động lại dịch vụ v2rayNG để có hiệu lực!
- Đang mở ứng dụng VPN Hotspot...
- Đang mở trong trình duyệt...
- Cẩn thận với các trang cung cấp gói đăng ký độc hại hoặc lừa đảo!
- Không chia sẻ nhật ký hoạt động với người không đáng tin cậy để đảm bảo an toàn!V2RayNG
@@ -105,7 +100,7 @@
Cho phép MuxBật lên có thể làm tăng tốc độ mạng và chuyển mạng nhanh hơn.
- Mức concurrency mux
+ Số lượng concurrency muxTùy chọn Mux (Tăng tốc kết nối)Cho phép hiển thị tốc độ mạng
@@ -156,12 +151,13 @@
Hiển thị thông báo xác nhận xoá cấu hình khi bạn xoá một cấu hình.Phản hồi lỗi
- Phản hồi cải tiến hoặc lỗi lên GitLab
+ Phản hồi cải tiến hoặc lỗi lên GitHubTham gia nhóm TelegramKhông tìm thấy ứng dụng TelegramMức độ nhật kýChế độ kết nối
+ Nhấn vào đây nếu bạn cần trợ giúpNgôn ngữNhật ký hoạt động
@@ -205,23 +201,6 @@
Bắt đầu quét mã QR ngay lập tứcMở giao diện quét mã QR ngay khi nhấn "Nhập cấu hình từ mã QR", hoặc thay vào đó bạn có thể chọn để mở camera hay chọn hình ảnh trên thanh công cụ.
- Xem mã nguồn tại GitLab
- Tôi luôn thích và mở mã nguồn ứng dụng này :3
- Giới thiệu về ứng dụng này
- Ủng hộ Cuynu
- Giúp tôi tìm hiểu và cải thiện chất lượng mã nguồn mở của ứng dụng này bằng cách đóng góp một khoản tiền nhỏ
- Tự động cập nhật gói đăng ký
- Tự động cập nhật gói đăng ký của bạn với khoảng thời gian được chỉ định trong nền
- Tự động cập nhật gói đăng ký
- Khoảng thời gian cập nhật gói đăng ký (Phút) (Mặc định : 1440 phút)
- Thông tin về bản dựng (build)
- Phiên bản ứng dụng
- Cài đặt thông báo
- Bật chế độ VPN luôn bật
- Điều này sẽ mở cài đặt thiết bị!
- Mở VPN Hotspot (root)
- Đảm bảo rằng cấu hình này đang không được sử dụng để có thể lưu thay đổi.
-
Xuất ra mã QR (Chụp màn hình để lưu)Sao chép cấu hình này
diff --git a/app/src/main/res/values/arrays.xml b/V2rayNG/app/src/main/res/values/arrays.xml
similarity index 97%
rename from app/src/main/res/values/arrays.xml
rename to V2rayNG/app/src/main/res/values/arrays.xml
index 06ee164..71f051a 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/V2rayNG/app/src/main/res/values/arrays.xml
@@ -63,8 +63,13 @@
chrome
+ firefox
+ safariiosandroid
+ edge
+ 360
+ qqrandomrandomized
diff --git a/app/src/main/res/values/attrs.xml b/V2rayNG/app/src/main/res/values/attrs.xml
similarity index 100%
rename from app/src/main/res/values/attrs.xml
rename to V2rayNG/app/src/main/res/values/attrs.xml
diff --git a/V2rayNG/app/src/main/res/values/colors.xml b/V2rayNG/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..34615c0
--- /dev/null
+++ b/V2rayNG/app/src/main/res/values/colors.xml
@@ -0,0 +1,18 @@
+
+
+ #009966
+ #FF0099
+ #247BA0
+ #009966
+ #999999
+ #CFD8DC
+ #212121
+
+
+
+ #008577
+ #161616
+ #12976F
+ #252525
+ #CCCCCC
+
diff --git a/app/src/main/res/values/dimens.xml b/V2rayNG/app/src/main/res/values/dimens.xml
similarity index 100%
rename from app/src/main/res/values/dimens.xml
rename to V2rayNG/app/src/main/res/values/dimens.xml
diff --git a/app/src/main/res/values/ic_launcher_background.xml b/V2rayNG/app/src/main/res/values/ic_launcher_background.xml
similarity index 100%
rename from app/src/main/res/values/ic_launcher_background.xml
rename to V2rayNG/app/src/main/res/values/ic_launcher_background.xml
diff --git a/app/src/main/res/values/strings.xml b/V2rayNG/app/src/main/res/values/strings.xml
similarity index 88%
rename from app/src/main/res/values/strings.xml
rename to V2rayNG/app/src/main/res/values/strings.xml
index cab435a..8d0a691 100644
--- a/app/src/main/res/values/strings.xml
+++ b/V2rayNG/app/src/main/res/values/strings.xml
@@ -17,11 +17,6 @@
Stop ServicesStart Services SuccessStart Services Failure
- Restart v2rayNG service to take effects!
- Opening VPN Hotspot app...
- Opening on default browser...
- Carefully with malicious or scam subscription site!
- Logcat should\'t be shared to untrusted peoples!Configuration file
@@ -165,13 +160,14 @@
Whether to delete the configuration file requires a second confirmation by the userFeedback
- Feedback enhancements or bugs to GitLab
+ Feedback enhancements or bugs to GitHubJoin Telegram GroupTelegram app not foundLog LevelMode
+ Click me for more helpLanguageLogcat
@@ -213,24 +209,6 @@
Connected, tap to check connectionNot connected
- View source code in GitLab
- I always love and open source this app :3
- About this app
- Support Cuynu
- Support me learn and improve open source code quality by donate some little money
- Auto update
- Update your subscriptions automatically with an interval in background
- Automatic update subscriptions
- Subscription Update Interval (Minutes)
- Build information
- app version
- Notification settings
- Enable VPN always on
- This will open your device settings!
- Open VPN Hotspot (root)
- Ensure this configuration are not being used to able to save changes.
-
-
QRcodeExport to clipboard
diff --git a/app/src/main/res/values/styles.xml b/V2rayNG/app/src/main/res/values/styles.xml
similarity index 88%
rename from app/src/main/res/values/styles.xml
rename to V2rayNG/app/src/main/res/values/styles.xml
index 70d0270..7ebf219 100644
--- a/app/src/main/res/values/styles.xml
+++ b/V2rayNG/app/src/main/res/values/styles.xml
@@ -32,4 +32,8 @@
true
+
+
+
+
diff --git a/app/src/main/res/xml/app_widget_provider.xml b/V2rayNG/app/src/main/res/xml/app_widget_provider.xml
similarity index 100%
rename from app/src/main/res/xml/app_widget_provider.xml
rename to V2rayNG/app/src/main/res/xml/app_widget_provider.xml
diff --git a/app/src/main/res/xml/pref_settings.xml b/V2rayNG/app/src/main/res/xml/pref_settings.xml
similarity index 58%
rename from app/src/main/res/xml/pref_settings.xml
rename to V2rayNG/app/src/main/res/xml/pref_settings.xml
index d61de6d..be46b64 100644
--- a/app/src/main/res/xml/pref_settings.xml
+++ b/V2rayNG/app/src/main/res/xml/pref_settings.xml
@@ -1,23 +1,18 @@
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
@@ -65,23 +35,29 @@
android:summary="@string/summary_pref_remote_dns"
android:title="@string/title_pref_vpn_dns" />
-
-
-
+
+
-
@@ -122,7 +98,7 @@
android:summary="%s"
android:title="@string/title_mode" />
-
@@ -135,45 +111,10 @@
android:summary="%s"
android:title="@string/title_language" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/xml/shortcuts.xml b/V2rayNG/app/src/main/res/xml/shortcuts.xml
similarity index 100%
rename from app/src/main/res/xml/shortcuts.xml
rename to V2rayNG/app/src/main/res/xml/shortcuts.xml
diff --git a/app/src/test/java/com/v2ray/ang/ExampleUnitTest.java b/V2rayNG/app/src/test/java/com/v2ray/ang/ExampleUnitTest.java
similarity index 100%
rename from app/src/test/java/com/v2ray/ang/ExampleUnitTest.java
rename to V2rayNG/app/src/test/java/com/v2ray/ang/ExampleUnitTest.java
diff --git a/app/src/test/kotlin/com/v2ray/ang/ExampleUnitTest.kt b/V2rayNG/app/src/test/kotlin/com/v2ray/ang/ExampleUnitTest.kt
similarity index 100%
rename from app/src/test/kotlin/com/v2ray/ang/ExampleUnitTest.kt
rename to V2rayNG/app/src/test/kotlin/com/v2ray/ang/ExampleUnitTest.kt
diff --git a/build.gradle b/V2rayNG/build.gradle
similarity index 60%
rename from build.gradle
rename to V2rayNG/build.gradle
index 7680af1..c84cccf 100644
--- a/build.gradle
+++ b/V2rayNG/build.gradle
@@ -1,6 +1,6 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
- id 'com.android.application' version '8.1.3' apply false
- id 'com.android.library' version '8.1.3' apply false
+ id 'com.android.application' version '8.0.0' apply false
+ id 'com.android.library' version '8.0.0' apply false
id 'org.jetbrains.kotlin.android' version '1.8.0' apply false
}
\ No newline at end of file
diff --git a/gradle.properties b/V2rayNG/gradle.properties
similarity index 84%
rename from gradle.properties
rename to V2rayNG/gradle.properties
index 080160f..1801643 100644
--- a/gradle.properties
+++ b/V2rayNG/gradle.properties
@@ -1,7 +1,7 @@
-buildToolsVer=34.0.0
-compileSdkVer=34
-targetSdkVer=34
+buildToolsVer=33.0.2
+compileSdkVer=33
+targetSdkVer=32
kotlin.incremental=true
android.useAndroidX=true
android.enableJetifier=true
diff --git a/gradle/wrapper/gradle-wrapper.jar b/V2rayNG/gradle/wrapper/gradle-wrapper.jar
similarity index 100%
rename from gradle/wrapper/gradle-wrapper.jar
rename to V2rayNG/gradle/wrapper/gradle-wrapper.jar
diff --git a/gradle/wrapper/gradle-wrapper.properties b/V2rayNG/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from gradle/wrapper/gradle-wrapper.properties
rename to V2rayNG/gradle/wrapper/gradle-wrapper.properties
diff --git a/gradlew b/V2rayNG/gradlew
similarity index 100%
rename from gradlew
rename to V2rayNG/gradlew
diff --git a/gradlew.bat b/V2rayNG/gradlew.bat
similarity index 100%
rename from gradlew.bat
rename to V2rayNG/gradlew.bat
diff --git a/settings.gradle b/V2rayNG/settings.gradle
similarity index 100%
rename from settings.gradle
rename to V2rayNG/settings.gradle
diff --git a/app/src/main/kotlin/com/v2ray/ang/dto/SubscriptionItem.kt b/app/src/main/kotlin/com/v2ray/ang/dto/SubscriptionItem.kt
deleted file mode 100644
index 3d54f4e..0000000
--- a/app/src/main/kotlin/com/v2ray/ang/dto/SubscriptionItem.kt
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.v2ray.ang.dto
-
-data class SubscriptionItem(
- var remarks: String = "",
- var url: String = "",
- var enabled: Boolean = true,
- val addedTime: Long = System.currentTimeMillis(),
- var lastUpdated: Long = -1,
- var autoUpdate: Boolean = false,
- val updateInterval: Int? = null,
-)
\ No newline at end of file
diff --git a/app/src/main/kotlin/com/v2ray/ang/service/SubscriptionUpdater.kt b/app/src/main/kotlin/com/v2ray/ang/service/SubscriptionUpdater.kt
deleted file mode 100644
index 4eeaaa7..0000000
--- a/app/src/main/kotlin/com/v2ray/ang/service/SubscriptionUpdater.kt
+++ /dev/null
@@ -1,83 +0,0 @@
-package com.v2ray.ang.service
-
-import android.Manifest
-import android.annotation.SuppressLint
-import android.app.NotificationChannel
-import android.app.NotificationManager
-import android.content.Context
-import android.content.pm.PackageManager
-import android.os.Build
-import android.util.Log
-import androidx.core.app.ActivityCompat
-import androidx.core.app.NotificationCompat
-import androidx.core.app.NotificationManagerCompat
-import androidx.work.CoroutineWorker
-import androidx.work.WorkerParameters
-import com.v2ray.ang.AppConfig
-import com.v2ray.ang.R
-import com.v2ray.ang.extension.toast
-import com.v2ray.ang.util.AngConfigManager
-import com.v2ray.ang.util.MmkvManager
-import com.v2ray.ang.util.Utils
-import kotlinx.coroutines.delay
-
-object SubscriptionUpdater {
-
- const val notificationChannel = "update-subscription-channel"
-
- class UpdateTask(context: Context, params: WorkerParameters) :
- CoroutineWorker(context, params) {
-
- private val notificationManager = NotificationManagerCompat.from(applicationContext)
- private val notification =
- NotificationCompat.Builder(applicationContext, notificationChannel)
-
- .setWhen(0)
- .setTicker("Update")
- .setContentTitle("Subscription Update")
- .setSmallIcon(R.drawable.ic_stat_name)
- .setCategory(NotificationCompat.CATEGORY_SERVICE)
- .setPriority(NotificationCompat.PRIORITY_MIN)
-
- @SuppressLint("MissingPermission")
- override suspend fun doWork(): Result {
- Log.d(AppConfig.ANG_PACKAGE, "start updating subscriptions")
-
-
- val subs = MmkvManager.decodeSubscriptions().filter { it.second.autoUpdate }
-
- for (i in subs) {
-
- val subscription = i.second
-
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- notification.setChannelId(notificationChannel)
- val channel =
- NotificationChannel(
- notificationChannel,
- "Subscription Update Service",
- NotificationManager.IMPORTANCE_MIN
- )
- notificationManager.createNotificationChannel(channel)
- }
- notificationManager.notify(3, notification.build())
- Log.d(AppConfig.ANG_PACKAGE, "update: ${subscription.remarks} subscription")
- val configs = Utils.getUrlContentWithCustomUserAgent(subscription.url)
- importBatchConfig(configs, i.first)
- notification.setContentText("Updating ${subscription.remarks}")
- }
- notificationManager.cancel(3)
- return Result.success()
- }
- }
-
- fun importBatchConfig(server: String?, subid: String = "") {
-
- val append = subid.isNullOrEmpty()
-
- var count = AngConfigManager.importBatchConfig(server, subid, append)
- if (count <= 0) {
- AngConfigManager.importBatchConfig(Utils.decode(server!!), subid, append)
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/res/drawable-hdpi/ic_stat_name_black.png b/app/src/main/res/drawable-hdpi/ic_stat_name_black.png
deleted file mode 100644
index 5361ddf..0000000
Binary files a/app/src/main/res/drawable-hdpi/ic_stat_name_black.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/ic_stat_name_grey.png b/app/src/main/res/drawable-hdpi/ic_stat_name_grey.png
deleted file mode 100644
index 79dc815..0000000
Binary files a/app/src/main/res/drawable-hdpi/ic_stat_name_grey.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/ic_stat_name_black.png b/app/src/main/res/drawable-mdpi/ic_stat_name_black.png
deleted file mode 100644
index 01dc4ef..0000000
Binary files a/app/src/main/res/drawable-mdpi/ic_stat_name_black.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/ic_stat_name_grey.png b/app/src/main/res/drawable-mdpi/ic_stat_name_grey.png
deleted file mode 100644
index 4370323..0000000
Binary files a/app/src/main/res/drawable-mdpi/ic_stat_name_grey.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_stat_name_black.png b/app/src/main/res/drawable-xhdpi/ic_stat_name_black.png
deleted file mode 100644
index 00207a5..0000000
Binary files a/app/src/main/res/drawable-xhdpi/ic_stat_name_black.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_stat_name_grey.png b/app/src/main/res/drawable-xhdpi/ic_stat_name_grey.png
deleted file mode 100644
index def2c8a..0000000
Binary files a/app/src/main/res/drawable-xhdpi/ic_stat_name_grey.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_stat_name_black.png b/app/src/main/res/drawable-xxhdpi/ic_stat_name_black.png
deleted file mode 100644
index 516f089..0000000
Binary files a/app/src/main/res/drawable-xxhdpi/ic_stat_name_black.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_stat_name_grey.png b/app/src/main/res/drawable-xxhdpi/ic_stat_name_grey.png
deleted file mode 100644
index 01f688a..0000000
Binary files a/app/src/main/res/drawable-xxhdpi/ic_stat_name_grey.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_stat_name_black.png b/app/src/main/res/drawable-xxxhdpi/ic_stat_name_black.png
deleted file mode 100644
index a18be25..0000000
Binary files a/app/src/main/res/drawable-xxxhdpi/ic_stat_name_black.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_stat_name_grey.png b/app/src/main/res/drawable-xxxhdpi/ic_stat_name_grey.png
deleted file mode 100644
index b1478e0..0000000
Binary files a/app/src/main/res/drawable-xxxhdpi/ic_stat_name_grey.png and /dev/null differ
diff --git a/app/src/main/res/drawable/ic_action_done_black.xml b/app/src/main/res/drawable/ic_action_done_black.xml
deleted file mode 100644
index 5635bea..0000000
--- a/app/src/main/res/drawable/ic_action_done_black.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_add_black_24dp.xml b/app/src/main/res/drawable/ic_add_black_24dp.xml
deleted file mode 100644
index 0258249..0000000
--- a/app/src/main/res/drawable/ic_add_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_cloud_download_black_24dp.xml b/app/src/main/res/drawable/ic_cloud_download_black_24dp.xml
deleted file mode 100644
index aebcd40..0000000
--- a/app/src/main/res/drawable/ic_cloud_download_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_copy_black.xml b/app/src/main/res/drawable/ic_copy_black.xml
deleted file mode 100644
index 8a894a3..0000000
--- a/app/src/main/res/drawable/ic_copy_black.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_edit_white_24dp.xml b/app/src/main/res/drawable/ic_edit_white_24dp.xml
deleted file mode 100644
index 35a774a..0000000
--- a/app/src/main/res/drawable/ic_edit_white_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_fab_check_black.xml b/app/src/main/res/drawable/ic_fab_check_black.xml
deleted file mode 100644
index 6c1b167..0000000
--- a/app/src/main/res/drawable/ic_fab_check_black.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_feedback_black_24dp.xml b/app/src/main/res/drawable/ic_feedback_black_24dp.xml
deleted file mode 100644
index 29f9baa..0000000
--- a/app/src/main/res/drawable/ic_feedback_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_file_black_24dp.xml b/app/src/main/res/drawable/ic_file_black_24dp.xml
deleted file mode 100644
index 7fcdda2..0000000
--- a/app/src/main/res/drawable/ic_file_black_24dp.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
diff --git a/app/src/main/res/drawable/ic_image_photo_black.xml b/app/src/main/res/drawable/ic_image_photo_black.xml
deleted file mode 100644
index 913d9d8..0000000
--- a/app/src/main/res/drawable/ic_image_photo_black.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_info_white_24dp.xml b/app/src/main/res/drawable/ic_info_white_24dp.xml
deleted file mode 100644
index f7b49e8..0000000
--- a/app/src/main/res/drawable/ic_info_white_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_logcat_black_24dp.xml b/app/src/main/res/drawable/ic_logcat_black_24dp.xml
deleted file mode 100644
index a07a0f9..0000000
--- a/app/src/main/res/drawable/ic_logcat_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_outline_filter_alt_black_24.xml b/app/src/main/res/drawable/ic_outline_filter_alt_black_24.xml
deleted file mode 100644
index d574422..0000000
--- a/app/src/main/res/drawable/ic_outline_filter_alt_black_24.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_save_black_24dp.xml b/app/src/main/res/drawable/ic_save_black_24dp.xml
deleted file mode 100644
index a561d63..0000000
--- a/app/src/main/res/drawable/ic_save_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_scan_white_24dp.xml b/app/src/main/res/drawable/ic_scan_white_24dp.xml
deleted file mode 100644
index 5068d6e..0000000
--- a/app/src/main/res/drawable/ic_scan_white_24dp.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_select_all_black_24dp.xml b/app/src/main/res/drawable/ic_select_all_black_24dp.xml
deleted file mode 100644
index 966290f..0000000
--- a/app/src/main/res/drawable/ic_select_all_black_24dp.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
diff --git a/app/src/main/res/drawable/ic_settings_black_24dp.xml b/app/src/main/res/drawable/ic_settings_black_24dp.xml
deleted file mode 100644
index ace746c..0000000
--- a/app/src/main/res/drawable/ic_settings_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_vpnhotspot.xml b/app/src/main/res/drawable/ic_vpnhotspot.xml
deleted file mode 100755
index 4e72383..0000000
--- a/app/src/main/res/drawable/ic_vpnhotspot.xml
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml
deleted file mode 100644
index 57ec67c..0000000
--- a/app/src/main/res/values-night/colors.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
- #FB7279
- #000000
- #CCCCCC
- #CCCCCC
-
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
deleted file mode 100644
index b90cc5f..0000000
--- a/app/src/main/res/values/colors.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- #FB7279
- #FF0099
- #727272
- #FB7299
- #727272
-
-
- #FB7299
- #000000
- #FB7279
- #000000
- #000000
-
diff --git a/local.properties b/local.properties
deleted file mode 100644
index 431e326..0000000
--- a/local.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-## This file must *NOT* be checked into Version Control Systems,
-# as it contains information specific to your local configuration.
-#
-# Location of the SDK. This is only used by Gradle.
-# For customization when using a Version Control System, please read the
-# header note.
-#Wed Feb 14 02:34:32 ICT 2024
-sdk.dir=/home/cuynu/Android/Sdk
diff --git a/pic/.gitkeep b/pic/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/pic/1648277008370.png b/pic/1648277008370.png
deleted file mode 100644
index 810661e..0000000
Binary files a/pic/1648277008370.png and /dev/null differ