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 @@