@@ -4,10 +4,8 @@ import android.content.Intent
4
4
import android.content.SharedPreferences
5
5
import android.net.Uri
6
6
import android.os.Bundle
7
- import android.preference.CheckBoxPreference
8
- import android.preference.EditTextPreference
9
- import android.preference.Preference
10
- import android.preference.PreferenceFragment
7
+ import android.preference.*
8
+ import com.v2ray.ang.AngApplication
11
9
import com.v2ray.ang.BuildConfig
12
10
// import com.v2ray.ang.InappBuyActivity
13
11
import com.v2ray.ang.R
@@ -29,6 +27,7 @@ class SettingsActivity : BaseActivity() {
29
27
// const val PREF_MUX_ENAimport libv2ray.Libv2rayBLED = "pref_mux_enabled"
30
28
const val PREF_SPEED_ENABLED = " pref_speed_enabled"
31
29
const val PREF_SNIFFING_ENABLED = " pref_sniffing_enabled"
30
+ const val PREF_PROXY_SHARING = " pref_proxy_sharing_enabled"
32
31
const val PREF_LOCAL_DNS_ENABLED = " pref_local_dns_enabled"
33
32
const val PREF_REMOTE_DNS = " pref_remote_dns"
34
33
const val PREF_DOMESTIC_DNS = " pref_domestic_dns"
@@ -59,12 +58,19 @@ class SettingsActivity : BaseActivity() {
59
58
60
59
class SettingsFragment : PreferenceFragment (), SharedPreferences.OnSharedPreferenceChangeListener {
61
60
val perAppProxy by lazy { findPreference(PREF_PER_APP_PROXY ) as CheckBoxPreference }
62
- // val autoRestart by lazy { findPreference(PREF_AUTO_RESTART) as CheckBoxPreference }
63
- val remoteDns by lazy { findPreference(PREF_REMOTE_DNS ) as EditTextPreference }
64
- val domesticDns by lazy { findPreference(PREF_DOMESTIC_DNS ) as EditTextPreference }
61
+ val sppedEnabled by lazy { findPreference(PREF_SPEED_ENABLED ) as CheckBoxPreference }
62
+ val sniffingEnabled by lazy { findPreference(PREF_SNIFFING_ENABLED ) as CheckBoxPreference }
63
+ val proxySharing by lazy { findPreference(PREF_PROXY_SHARING ) as CheckBoxPreference }
64
+ val domainStrategy by lazy { findPreference(PREF_ROUTING_DOMAIN_STRATEGY ) as ListPreference }
65
+ val routingMode by lazy { findPreference(PREF_ROUTING_MODE ) as ListPreference }
65
66
66
- val enableLocalDns by lazy { findPreference(PREF_LOCAL_DNS_ENABLED ) as CheckBoxPreference }
67
67
val forwardIpv6 by lazy { findPreference(PREF_FORWARD_IPV6 ) as CheckBoxPreference }
68
+ val enableLocalDns by lazy { findPreference(PREF_LOCAL_DNS_ENABLED ) as CheckBoxPreference }
69
+ val domesticDns by lazy { findPreference(PREF_DOMESTIC_DNS ) as EditTextPreference }
70
+ val remoteDns by lazy { findPreference(PREF_REMOTE_DNS ) as EditTextPreference }
71
+
72
+ // val autoRestart by lazy { findPreference(PREF_AUTO_RESTART) as CheckBoxPreference }
73
+
68
74
69
75
// val socksPort by lazy { findPreference(PREF_SOCKS_PORT) as EditTextPreference }
70
76
// val httpPort by lazy { findPreference(PREF_HTTP_PORT) as EditTextPreference }
@@ -76,14 +82,95 @@ class SettingsActivity : BaseActivity() {
76
82
// val tgGroup: Preference by lazy { findPreference(PREF_TG_GROUP) }
77
83
val version: Preference by lazy { findPreference(PREF_VERSION ) }
78
84
85
+ private fun restartProxy () {
86
+ Utils .stopVService(activity)
87
+ Utils .startVService(activity)
88
+ }
89
+
90
+ private fun isRunning (): Boolean {
91
+ return Utils .isServiceRun(activity, " com.v2ray.ang.service.V2RayVpnService" )
92
+ }
93
+
79
94
override fun onCreate (savedInstanceState : Bundle ? ) {
80
95
super .onCreate(savedInstanceState)
81
96
addPreferencesFromResource(R .xml.pref_settings)
97
+ var app = activity.application as AngApplication
98
+
99
+ perAppProxy.setOnPreferenceClickListener {
100
+ if (isRunning()) {
101
+ Utils .stopVService(activity)
102
+ }
103
+ startActivity<PerAppProxyActivity >()
104
+ perAppProxy.isChecked = true
105
+ true
106
+ }
107
+ sppedEnabled.setOnPreferenceClickListener {
108
+ if (isRunning())
109
+ restartProxy()
110
+ true
111
+ }
112
+ sniffingEnabled.setOnPreferenceClickListener {
113
+ if (isRunning())
114
+ restartProxy()
115
+ true
116
+ }
117
+
118
+ proxySharing.setOnPreferenceClickListener {
119
+ if (proxySharing.isChecked)
120
+ toast(R .string.toast_warning_pref_proxysharing)
121
+ if (isRunning())
122
+ restartProxy()
123
+ true
124
+ }
125
+
126
+ domainStrategy.setOnPreferenceChangeListener { _, _ ->
127
+ if (isRunning())
128
+ restartProxy()
129
+ true
130
+ }
131
+ routingMode.setOnPreferenceChangeListener { _, _ ->
132
+ if (isRunning())
133
+ restartProxy()
134
+ true
135
+ }
82
136
83
137
routingCustom.onClick {
138
+ if (isRunning())
139
+ Utils .stopVService(activity)
84
140
startActivity<RoutingSettingsActivity >()
85
141
}
86
142
143
+ forwardIpv6.setOnPreferenceClickListener {
144
+ if (isRunning())
145
+ restartProxy()
146
+ true
147
+ }
148
+
149
+ enableLocalDns.setOnPreferenceClickListener {
150
+ if (isRunning())
151
+ restartProxy()
152
+ true
153
+ }
154
+
155
+
156
+ domesticDns.setOnPreferenceChangeListener { preference, any ->
157
+ // domesticDns.summary = any as String
158
+ val nval = any as String
159
+ domesticDns.summary = if (nval == " " ) AppConfig .DNS_DIRECT else nval
160
+ if (isRunning())
161
+ restartProxy()
162
+ true
163
+ }
164
+
165
+ remoteDns.setOnPreferenceChangeListener { preference, any ->
166
+ // remoteDns.summary = any as String
167
+ val nval = any as String
168
+ remoteDns.summary = if (nval == " " ) AppConfig .DNS_AGENT else nval
169
+ if (isRunning())
170
+ restartProxy()
171
+ true
172
+ }
173
+
87
174
// donate.onClick {
88
175
// startActivity<InappBuyActivity>()
89
176
// }
@@ -110,24 +197,7 @@ class SettingsActivity : BaseActivity() {
110
197
// }
111
198
// }
112
199
113
- perAppProxy.setOnPreferenceClickListener {
114
- startActivity<PerAppProxyActivity >()
115
- perAppProxy.isChecked = true
116
- false
117
- }
118
200
119
- remoteDns.setOnPreferenceChangeListener { preference, any ->
120
- // remoteDns.summary = any as String
121
- val nval = any as String
122
- remoteDns.summary = if (nval == " " ) AppConfig .DNS_AGENT else nval
123
- true
124
- }
125
- domesticDns.setOnPreferenceChangeListener { preference, any ->
126
- // domesticDns.summary = any as String
127
- val nval = any as String
128
- domesticDns.summary = if (nval == " " ) AppConfig .DNS_DIRECT else nval
129
- true
130
- }
131
201
// socksPort.setOnPreferenceChangeListener { preference, any ->
132
202
// socksPort.summary = any as String
133
203
// true
0 commit comments