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 +