From bebc6fea1374de50796aa20e4645b20bf4fbcbc6 Mon Sep 17 00:00:00 2001
From: yuhan6665 <1588741+yuhan6665@users.noreply.github.com>
Date: Fri, 4 Sep 2020 18:19:51 -0400
Subject: [PATCH] Add mode in settings
---
V2rayNG/app/src/main/kotlin/com/v2ray/ang/AppConfig.kt | 2 ++
.../com/v2ray/ang/service/V2RayServiceManager.kt | 8 ++++++--
.../src/main/kotlin/com/v2ray/ang/ui/MainActivity.kt | 5 ++++-
.../app/src/main/kotlin/com/v2ray/ang/util/Utils.kt | 2 +-
V2rayNG/app/src/main/res/values-zh-rCN/strings.xml | 1 +
V2rayNG/app/src/main/res/values-zh-rTW/strings.xml | 1 +
V2rayNG/app/src/main/res/values/arrays.xml | 5 +++++
V2rayNG/app/src/main/res/values/strings.xml | 1 +
V2rayNG/app/src/main/res/xml/pref_settings.xml | 10 +++++++++-
9 files changed, 30 insertions(+), 5 deletions(-)
diff --git a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/AppConfig.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/AppConfig.kt
index eff2c8c2..2956e477 100644
--- a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/AppConfig.kt
+++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/AppConfig.kt
@@ -13,6 +13,8 @@ object AppConfig {
const val PREF_CURR_CONFIG_DOMAIN = "pref_v2ray_config_domain"
const val PREF_CURR_CONFIG_OUTBOUND_TAGS = "pref_v2ray_config_outbound_tags"
const val PREF_INAPP_BUY_IS_PREMIUM = "pref_inapp_buy_is_premium"
+ const val PREF_MODE = "pref_mode"
+
const val VMESS_PROTOCOL: String = "vmess://"
const val SS_PROTOCOL: String = "ss://"
const val SOCKS_PROTOCOL: String = "socks://"
diff --git a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/service/V2RayServiceManager.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/service/V2RayServiceManager.kt
index 0fcb708a..a85e8467 100644
--- a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/service/V2RayServiceManager.kt
+++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/service/V2RayServiceManager.kt
@@ -56,8 +56,12 @@ object V2RayServiceManager {
private var mSubscription: Subscription? = null
private var mNotificationManager: NotificationManager? = null
- fun startV2Ray(context: Context) {
- val intent = Intent(context.applicationContext, V2RayVpnService::class.java)
+ fun startV2Ray(context: Context, mode: String) {
+ val intent = if (mode == "VPN") {
+ Intent(context.applicationContext, V2RayVpnService::class.java)
+ } else {
+ Intent(context.applicationContext, V2RayProxyOnlyService::class.java)
+ }
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) {
context.startForegroundService(intent)
} else {
diff --git a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/MainActivity.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/MainActivity.kt
index 080858a7..b09b2a0f 100644
--- a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/MainActivity.kt
+++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/MainActivity.kt
@@ -28,6 +28,7 @@ import android.support.v7.app.ActionBarDrawerToggle
import android.support.v7.widget.helper.ItemTouchHelper
import android.util.Log
import com.v2ray.ang.dto.EConfigType
+import com.v2ray.ang.extension.defaultDPreference
//import com.v2ray.ang.InappBuyActivity
import rx.Observable
import rx.android.schedulers.AndroidSchedulers
@@ -71,13 +72,15 @@ class MainActivity : BaseActivity(), NavigationView.OnNavigationItemSelectedList
fab.setOnClickListener {
if (isRunning) {
Utils.stopVService(this)
- } else {
+ } else if (defaultDPreference.getPrefString(AppConfig.PREF_MODE, "VPN") == "VPN") {
val intent = VpnService.prepare(this)
if (intent == null) {
startV2Ray()
} else {
startActivityForResult(intent, REQUEST_CODE_VPN_PREPARE)
}
+ } else {
+ startV2Ray()
}
}
layout_test.setOnClickListener {
diff --git a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/Utils.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/Utils.kt
index b61172cb..efcdde4d 100644
--- a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/Utils.kt
+++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/util/Utils.kt
@@ -300,7 +300,7 @@ object Utils {
return false
}
}
- V2RayServiceManager.startV2Ray(context)
+ V2RayServiceManager.startV2Ray(context, context.v2RayApplication.defaultDPreference.getPrefString(AppConfig.PREF_MODE, "VPN"))
return true
} else {
return false
diff --git a/V2rayNG/app/src/main/res/values-zh-rCN/strings.xml b/V2rayNG/app/src/main/res/values-zh-rCN/strings.xml
index fe574e6b..592c2fb8 100644
--- a/V2rayNG/app/src/main/res/values-zh-rCN/strings.xml
+++ b/V2rayNG/app/src/main/res/values-zh-rCN/strings.xml
@@ -123,6 +123,7 @@
推广
一些推广,点击查看详情(捐赠可去除)
+ 模式
版本
初始化错误:
diff --git a/V2rayNG/app/src/main/res/values-zh-rTW/strings.xml b/V2rayNG/app/src/main/res/values-zh-rTW/strings.xml
index 6f69a937..14714e24 100644
--- a/V2rayNG/app/src/main/res/values-zh-rTW/strings.xml
+++ b/V2rayNG/app/src/main/res/values-zh-rTW/strings.xml
@@ -125,6 +125,7 @@
推廣
一些推廣,點擊查看詳情(捐款可去除)
+ 模式
版本
錯誤設定:
diff --git a/V2rayNG/app/src/main/res/values/arrays.xml b/V2rayNG/app/src/main/res/values/arrays.xml
index 11dfa77b..b75fae68 100644
--- a/V2rayNG/app/src/main/res/values/arrays.xml
+++ b/V2rayNG/app/src/main/res/values/arrays.xml
@@ -67,6 +67,11 @@
- IPOnDemand
+
+ - VPN
+ - Proxy only
+
+
- 0.0.0.0/5
diff --git a/V2rayNG/app/src/main/res/values/strings.xml b/V2rayNG/app/src/main/res/values/strings.xml
index 18e712cf..ee72e193 100644
--- a/V2rayNG/app/src/main/res/values/strings.xml
+++ b/V2rayNG/app/src/main/res/values/strings.xml
@@ -125,6 +125,7 @@
Promotion
Promotion,click for details(Donation can be removed)
+ Mode
Version
Error Setup:
diff --git a/V2rayNG/app/src/main/res/xml/pref_settings.xml b/V2rayNG/app/src/main/res/xml/pref_settings.xml
index 6dcf3c16..19aa1e3f 100644
--- a/V2rayNG/app/src/main/res/xml/pref_settings.xml
+++ b/V2rayNG/app/src/main/res/xml/pref_settings.xml
@@ -85,6 +85,14 @@
android:key="pref_http_port"
android:summary="10809"
android:title="@string/title_pref_http_port" />
+
+
@@ -110,4 +118,4 @@
android:key="pref_version"
android:title="@string/title_pref_version" />
-
\ No newline at end of file
+