From 6d5c23245cbb59d8df08bef93d280bbd42783037 Mon Sep 17 00:00:00 2001
From: yuhan6665 <1588741+yuhan6665@users.noreply.github.com>
Date: Fri, 11 Sep 2020 21:30:08 -0400
Subject: [PATCH 1/2] Move version to drawer
Make it easier to check version.
Technically, version should not be selectable setting
---
.../kotlin/com/v2ray/ang/ui/MainActivity.kt | 3 +++
.../com/v2ray/ang/ui/SettingsActivity.kt | 9 -------
.../app/src/main/res/layout/activity_main.xml | 18 +++++++++++++-
V2rayNG/app/src/main/res/menu/menu_drawer.xml | 20 +++++++++-------
.../src/main/res/values-zh-rCN/strings.xml | 2 --
.../src/main/res/values-zh-rTW/strings.xml | 2 --
V2rayNG/app/src/main/res/values/strings.xml | 2 --
.../app/src/main/res/xml/pref_settings.xml | 24 -------------------
8 files changed, 31 insertions(+), 49 deletions(-)
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 b09b2a0f..f4c1148c 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
@@ -27,6 +27,7 @@ import android.support.v4.view.GravityCompat
import android.support.v7.app.ActionBarDrawerToggle
import android.support.v7.widget.helper.ItemTouchHelper
import android.util.Log
+import com.v2ray.ang.BuildConfig
import com.v2ray.ang.dto.EConfigType
import com.v2ray.ang.extension.defaultDPreference
//import com.v2ray.ang.InappBuyActivity
@@ -36,6 +37,7 @@ import java.util.concurrent.TimeUnit
import com.v2ray.ang.helper.SimpleItemTouchHelperCallback
import com.v2ray.ang.util.AngConfigManager.configs
import kotlinx.coroutines.*
+import libv2ray.Libv2ray
class MainActivity : BaseActivity(), NavigationView.OnNavigationItemSelectedListener {
companion object {
@@ -113,6 +115,7 @@ class MainActivity : BaseActivity(), NavigationView.OnNavigationItemSelectedList
drawer_layout.addDrawerListener(toggle)
toggle.syncState()
nav_view.setNavigationItemSelectedListener(this)
+ version.text = "v${BuildConfig.VERSION_NAME} (${Libv2ray.checkVersionX()})"
}
fun startV2Ray() {
diff --git a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/SettingsActivity.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/SettingsActivity.kt
index 0bf13dff..4fef00c8 100644
--- a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/SettingsActivity.kt
+++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/SettingsActivity.kt
@@ -1,13 +1,9 @@
package com.v2ray.ang.ui
-import android.content.Intent
import android.content.SharedPreferences
-import android.net.Uri
import android.os.Bundle
import android.preference.*
import com.v2ray.ang.AngApplication
-import com.v2ray.ang.BuildConfig
-//import com.v2ray.ang.InappBuyActivity
import com.v2ray.ang.R
import com.v2ray.ang.AppConfig
import com.v2ray.ang.extension.defaultDPreference
@@ -17,7 +13,6 @@ import org.jetbrains.anko.act
import org.jetbrains.anko.defaultSharedPreferences
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.toast
-import libv2ray.Libv2ray
class SettingsActivity : BaseActivity() {
companion object {
@@ -42,7 +37,6 @@ class SettingsActivity : BaseActivity() {
// const val PREF_LICENSES = "pref_licenses"
// const val PREF_FEEDBACK = "pref_feedback"
// const val PREF_TG_GROUP = "pref_tg_group"
- const val PREF_VERSION = "pref_version"
// const val PREF_AUTO_RESTART = "pref_auto_restart"
const val PREF_FORWARD_IPV6 = "pref_forward_ipv6"
}
@@ -80,7 +74,6 @@ class SettingsActivity : BaseActivity() {
// 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) }
- val version: Preference by lazy { findPreference(PREF_VERSION) }
private fun restartProxy() {
Utils.stopVService(activity)
@@ -206,8 +199,6 @@ class SettingsActivity : BaseActivity() {
// httpPort.summary = any as String
// true
// }
-
- version.summary = "${BuildConfig.VERSION_NAME} (${Libv2ray.checkVersionX()})"
}
override fun onStart() {
diff --git a/V2rayNG/app/src/main/res/layout/activity_main.xml b/V2rayNG/app/src/main/res/layout/activity_main.xml
index ce364e7a..fca2f06d 100644
--- a/V2rayNG/app/src/main/res/layout/activity_main.xml
+++ b/V2rayNG/app/src/main/res/layout/activity_main.xml
@@ -111,7 +111,23 @@
app:headerLayout="@layout/nav_header"
app:itemIconTint="@color/colorPrimary_dark"
app:itemTextColor="@color/colorPrimary"
- app:menu="@menu/menu_drawer" />
+ app:menu="@menu/menu_drawer" >
+
+
+
+
+
+
diff --git a/V2rayNG/app/src/main/res/menu/menu_drawer.xml b/V2rayNG/app/src/main/res/menu/menu_drawer.xml
index 69cc38b8..a10ac0d6 100644
--- a/V2rayNG/app/src/main/res/menu/menu_drawer.xml
+++ b/V2rayNG/app/src/main/res/menu/menu_drawer.xml
@@ -16,25 +16,27 @@
- -
-
-
-
+
+
+
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 592c2fb8..03079878 100644
--- a/V2rayNG/app/src/main/res/values-zh-rCN/strings.xml
+++ b/V2rayNG/app/src/main/res/values-zh-rCN/strings.xml
@@ -73,7 +73,6 @@
设置
- 关于
进阶设置
分应用代理
@@ -124,7 +123,6 @@
一些推广,点击查看详情(捐赠可去除)
模式
- 版本
初始化错误:
无法查询到项目
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 14714e24..3c36272e 100644
--- a/V2rayNG/app/src/main/res/values-zh-rTW/strings.xml
+++ b/V2rayNG/app/src/main/res/values-zh-rTW/strings.xml
@@ -74,7 +74,6 @@
設定
- 關於
進階設定
Proxy 個別應用程式
@@ -126,7 +125,6 @@
一些推廣,點擊查看詳情(捐款可去除)
模式
- 版本
錯誤設定:
Error querying inventory
diff --git a/V2rayNG/app/src/main/res/values/strings.xml b/V2rayNG/app/src/main/res/values/strings.xml
index ee72e193..753db002 100644
--- a/V2rayNG/app/src/main/res/values/strings.xml
+++ b/V2rayNG/app/src/main/res/values/strings.xml
@@ -74,7 +74,6 @@
Settings
- About
Advanced Settings
Per-app proxy
@@ -126,7 +125,6 @@
Promotion,click for details(Donation can be removed)
Mode
- Version
Error Setup:
Error querying inventory
diff --git a/V2rayNG/app/src/main/res/xml/pref_settings.xml b/V2rayNG/app/src/main/res/xml/pref_settings.xml
index 19aa1e3f..c52d1b09 100644
--- a/V2rayNG/app/src/main/res/xml/pref_settings.xml
+++ b/V2rayNG/app/src/main/res/xml/pref_settings.xml
@@ -94,28 +94,4 @@
android:summary="%s"
android:title="@string/title_mode" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
From 5bbf40c784cdcad23a2738cc8f3e5640ad005244 Mon Sep 17 00:00:00 2001
From: yuhan6665 <1588741+yuhan6665@users.noreply.github.com>
Date: Fri, 11 Sep 2020 21:30:08 -0400
Subject: [PATCH 2/2] Grey out per-app proxy in proxy only mode
---
.../com/v2ray/ang/ui/SettingsActivity.kt | 93 +++++++++----------
.../values-sw360dp-v13/values-preference.xml | 6 ++
.../src/main/res/values-zh-rCN/strings.xml | 5 +
.../src/main/res/values-zh-rTW/strings.xml | 6 ++
V2rayNG/app/src/main/res/values/strings.xml | 5 +
.../app/src/main/res/xml/pref_settings.xml | 2 +-
6 files changed, 66 insertions(+), 51 deletions(-)
create mode 100644 V2rayNG/app/src/main/res/values-sw360dp-v13/values-preference.xml
diff --git a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/SettingsActivity.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/SettingsActivity.kt
index 4fef00c8..f36b9c12 100644
--- a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/SettingsActivity.kt
+++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/SettingsActivity.kt
@@ -1,15 +1,10 @@
package com.v2ray.ang.ui
-import android.content.SharedPreferences
import android.os.Bundle
-import android.preference.*
-import com.v2ray.ang.AngApplication
+import android.support.v7.preference.*
import com.v2ray.ang.R
import com.v2ray.ang.AppConfig
-import com.v2ray.ang.extension.defaultDPreference
-import com.v2ray.ang.extension.onClick
import com.v2ray.ang.util.Utils
-import org.jetbrains.anko.act
import org.jetbrains.anko.defaultSharedPreferences
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.toast
@@ -50,18 +45,18 @@ class SettingsActivity : BaseActivity() {
supportActionBar?.setDisplayHomeAsUpEnabled(true)
}
- class SettingsFragment : PreferenceFragment(), SharedPreferences.OnSharedPreferenceChangeListener {
- val perAppProxy by lazy { findPreference(PREF_PER_APP_PROXY) as CheckBoxPreference }
- val sppedEnabled by lazy { findPreference(PREF_SPEED_ENABLED) as CheckBoxPreference }
- val sniffingEnabled by lazy { findPreference(PREF_SNIFFING_ENABLED) as CheckBoxPreference }
- val proxySharing by lazy { findPreference(PREF_PROXY_SHARING) as CheckBoxPreference }
- val domainStrategy by lazy { findPreference(PREF_ROUTING_DOMAIN_STRATEGY) as ListPreference }
- val routingMode by lazy { findPreference(PREF_ROUTING_MODE) as ListPreference }
+ class SettingsFragment : PreferenceFragmentCompat() {
+ private val perAppProxy by lazy { findPreference(PREF_PER_APP_PROXY) as CheckBoxPreference }
+ private val sppedEnabled by lazy { findPreference(PREF_SPEED_ENABLED) as CheckBoxPreference }
+ private val sniffingEnabled by lazy { findPreference(PREF_SNIFFING_ENABLED) as CheckBoxPreference }
+ private val proxySharing by lazy { findPreference(PREF_PROXY_SHARING) as CheckBoxPreference }
+ private val domainStrategy by lazy { findPreference(PREF_ROUTING_DOMAIN_STRATEGY) as ListPreference }
+ private val routingMode by lazy { findPreference(PREF_ROUTING_MODE) as ListPreference }
- val forwardIpv6 by lazy { findPreference(PREF_FORWARD_IPV6) as CheckBoxPreference }
- val enableLocalDns by lazy { findPreference(PREF_LOCAL_DNS_ENABLED) as CheckBoxPreference }
- val domesticDns by lazy { findPreference(PREF_DOMESTIC_DNS) as EditTextPreference }
- val remoteDns by lazy { findPreference(PREF_REMOTE_DNS) as EditTextPreference }
+ private val forwardIpv6 by lazy { findPreference(PREF_FORWARD_IPV6) as CheckBoxPreference }
+ private val enableLocalDns by lazy { findPreference(PREF_LOCAL_DNS_ENABLED) as CheckBoxPreference }
+ private val domesticDns by lazy { findPreference(PREF_DOMESTIC_DNS) as EditTextPreference }
+ private val remoteDns by lazy { findPreference(PREF_REMOTE_DNS) as EditTextPreference }
// val autoRestart by lazy { findPreference(PREF_AUTO_RESTART) as CheckBoxPreference }
@@ -69,31 +64,31 @@ class SettingsActivity : BaseActivity() {
// val socksPort by lazy { findPreference(PREF_SOCKS_PORT) as EditTextPreference }
// val httpPort by lazy { findPreference(PREF_HTTP_PORT) as EditTextPreference }
- val routingCustom: Preference by lazy { findPreference(PREF_ROUTING_CUSTOM) }
+ private val routingCustom: Preference by lazy { findPreference(PREF_ROUTING_CUSTOM) }
// val donate: Preference by lazy { findPreference(PREF_DONATE) }
// 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: Preference by lazy { findPreference(AppConfig.PREF_MODE) }
+
private fun restartProxy() {
- Utils.stopVService(activity)
- Utils.startVService(activity)
+ Utils.stopVService(requireContext())
+ Utils.startVService(requireContext())
}
private fun isRunning(): Boolean {
return false //TODO no point of adding logic now since Settings will be changed soon
}
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
+ override fun onCreatePreferences(bundle: Bundle?, s: String?) {
addPreferencesFromResource(R.xml.pref_settings)
- var app = activity.application as AngApplication
perAppProxy.setOnPreferenceClickListener {
if (isRunning()) {
- Utils.stopVService(activity)
+ Utils.stopVService(requireContext())
}
- startActivity()
+ activity?.startActivity()
perAppProxy.isChecked = true
true
}
@@ -110,7 +105,7 @@ class SettingsActivity : BaseActivity() {
proxySharing.setOnPreferenceClickListener {
if (proxySharing.isChecked)
- toast(R.string.toast_warning_pref_proxysharing)
+ activity?.toast(R.string.toast_warning_pref_proxysharing)
if (isRunning())
restartProxy()
true
@@ -127,10 +122,11 @@ class SettingsActivity : BaseActivity() {
true
}
- routingCustom.onClick {
+ routingCustom.setOnPreferenceClickListener {
if (isRunning())
- Utils.stopVService(activity)
- startActivity()
+ Utils.stopVService(requireContext())
+ activity?.startActivity()
+ false
}
forwardIpv6.setOnPreferenceClickListener {
@@ -146,7 +142,7 @@ class SettingsActivity : BaseActivity() {
}
- domesticDns.setOnPreferenceChangeListener { preference, any ->
+ domesticDns.setOnPreferenceChangeListener { _, any ->
// domesticDns.summary = any as String
val nval = any as String
domesticDns.summary = if (nval == "") AppConfig.DNS_DIRECT else nval
@@ -155,7 +151,7 @@ class SettingsActivity : BaseActivity() {
true
}
- remoteDns.setOnPreferenceChangeListener { preference, any ->
+ remoteDns.setOnPreferenceChangeListener { _, any ->
// remoteDns.summary = any as String
val nval = any as String
remoteDns.summary = if (nval == "") AppConfig.DNS_AGENT else nval
@@ -164,6 +160,11 @@ class SettingsActivity : BaseActivity() {
true
}
+ mode.setOnPreferenceChangeListener { _, newValue ->
+ updatePerAppProxy(newValue.toString())
+ true
+ }
+
// donate.onClick {
// startActivity()
// }
@@ -203,10 +204,9 @@ class SettingsActivity : BaseActivity() {
override fun onStart() {
super.onStart()
-
- perAppProxy.isChecked = defaultSharedPreferences.getBoolean(PREF_PER_APP_PROXY, false)
- remoteDns.summary = defaultSharedPreferences.getString(PREF_REMOTE_DNS, "")
- domesticDns.summary = defaultSharedPreferences.getString(PREF_DOMESTIC_DNS, "")
+ updatePerAppProxy(activity?.defaultSharedPreferences?.getString(AppConfig.PREF_MODE, "VPN"))
+ remoteDns.summary = activity?.defaultSharedPreferences?.getString(PREF_REMOTE_DNS, "")
+ domesticDns.summary = activity?.defaultSharedPreferences?.getString(PREF_DOMESTIC_DNS, "")
if (remoteDns.summary == "") {
remoteDns.summary = AppConfig.DNS_AGENT
@@ -218,24 +218,17 @@ class SettingsActivity : BaseActivity() {
// socksPort.summary = defaultSharedPreferences.getString(PREF_SOCKS_PORT, "10808")
// lanconnPort.summary = defaultSharedPreferences.getString(PREF_HTTP_PORT, "")
-
- defaultSharedPreferences.registerOnSharedPreferenceChangeListener(this)
}
- override fun onStop() {
- super.onStop()
- defaultSharedPreferences.unregisterOnSharedPreferenceChangeListener(this)
- }
-
- override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String?) {
- when (key) {
-// PREF_AUTO_RESTART ->
-// act.defaultDPreference.setPrefBoolean(key, sharedPreferences.getBoolean(key, false))
-
- PREF_PER_APP_PROXY ->
- act.defaultDPreference.setPrefBoolean(key, sharedPreferences.getBoolean(key, false))
+ private fun updatePerAppProxy(mode: String?) {
+ val preference = activity?.defaultSharedPreferences ?: return
+ if (mode == "VPN") {
+ perAppProxy.isEnabled = true
+ perAppProxy.isChecked = preference.getBoolean(PREF_PER_APP_PROXY, false)
+ } else {
+ perAppProxy.isEnabled = false
+ perAppProxy.isChecked = false
}
}
}
-
}
diff --git a/V2rayNG/app/src/main/res/values-sw360dp-v13/values-preference.xml b/V2rayNG/app/src/main/res/values-sw360dp-v13/values-preference.xml
new file mode 100644
index 00000000..c19ba30b
--- /dev/null
+++ b/V2rayNG/app/src/main/res/values-sw360dp-v13/values-preference.xml
@@ -0,0 +1,6 @@
+
+
+
+ false
+ 0dp
+
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 03079878..2393ffa6 100644
--- a/V2rayNG/app/src/main/res/values-zh-rCN/strings.xml
+++ b/V2rayNG/app/src/main/res/values-zh-rCN/strings.xml
@@ -186,4 +186,9 @@
代理共享已启用,请确保处于受信网络
配置格式错误
+
+ - VPN
+ - 仅代理
+
+
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 3c36272e..1385760e 100644
--- a/V2rayNG/app/src/main/res/values-zh-rTW/strings.xml
+++ b/V2rayNG/app/src/main/res/values-zh-rTW/strings.xml
@@ -187,4 +187,10 @@
其他設備可以使用socks/http協定通過您的IP地址連接到代理\nHttp 代理: http://您的ip:10809\nSocks 代理: socks(4/5)://您的ip:10808\n僅在受信任的網路中啟用以避免未經授權的連接
代理共享已啟用,請確保處於受信網路
配置格式錯誤
+
+
+ - VPN
+ - 僅代理
+
+
diff --git a/V2rayNG/app/src/main/res/values/strings.xml b/V2rayNG/app/src/main/res/values/strings.xml
index 753db002..9b63540d 100644
--- a/V2rayNG/app/src/main/res/values/strings.xml
+++ b/V2rayNG/app/src/main/res/values/strings.xml
@@ -188,4 +188,9 @@
Proxy sharing enabled\nMake sure you are in a trusted network
Config malformed
+
+ - VPN
+ - Proxy only
+
+
diff --git a/V2rayNG/app/src/main/res/xml/pref_settings.xml b/V2rayNG/app/src/main/res/xml/pref_settings.xml
index c52d1b09..021594a4 100644
--- a/V2rayNG/app/src/main/res/xml/pref_settings.xml
+++ b/V2rayNG/app/src/main/res/xml/pref_settings.xml
@@ -88,7 +88,7 @@