@@ -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
@@ -60,13 +58,19 @@ class SettingsActivity : BaseActivity() {
60
58
61
59
class SettingsFragment : PreferenceFragment (), SharedPreferences.OnSharedPreferenceChangeListener {
62
60
val perAppProxy by lazy { findPreference(PREF_PER_APP_PROXY ) as CheckBoxPreference }
61
+ val sppedEnabled by lazy { findPreference(PREF_SPEED_ENABLED ) as CheckBoxPreference }
62
+ val sniffingEnabled by lazy { findPreference(PREF_SNIFFING_ENABLED ) as CheckBoxPreference }
63
63
val proxySharing by lazy { findPreference(PREF_PROXY_SHARING ) as CheckBoxPreference }
64
- // val autoRestart by lazy { findPreference(PREF_AUTO_RESTART) as CheckBoxPreference }
65
- val remoteDns by lazy { findPreference(PREF_REMOTE_DNS ) as EditTextPreference }
66
- val domesticDns by lazy { findPreference(PREF_DOMESTIC_DNS ) as EditTextPreference }
64
+ val domainStrategy by lazy { findPreference(PREF_ROUTING_DOMAIN_STRATEGY ) as ListPreference }
65
+ val routingMode by lazy { findPreference(PREF_ROUTING_MODE ) as ListPreference }
67
66
68
- val enableLocalDns by lazy { findPreference(PREF_LOCAL_DNS_ENABLED ) as CheckBoxPreference }
69
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
+
70
74
71
75
// val socksPort by lazy { findPreference(PREF_SOCKS_PORT) as EditTextPreference }
72
76
// val httpPort by lazy { findPreference(PREF_HTTP_PORT) as EditTextPreference }
@@ -78,14 +82,95 @@ class SettingsActivity : BaseActivity() {
78
82
// val tgGroup: Preference by lazy { findPreference(PREF_TG_GROUP) }
79
83
val version: Preference by lazy { findPreference(PREF_VERSION ) }
80
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
+
81
94
override fun onCreate (savedInstanceState : Bundle ? ) {
82
95
super .onCreate(savedInstanceState)
83
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
+ }
84
136
85
137
routingCustom.onClick {
138
+ if (isRunning())
139
+ Utils .stopVService(activity)
86
140
startActivity<RoutingSettingsActivity >()
87
141
}
88
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
+
89
174
// donate.onClick {
90
175
// startActivity<InappBuyActivity>()
91
176
// }
@@ -112,32 +197,7 @@ class SettingsActivity : BaseActivity() {
112
197
// }
113
198
// }
114
199
115
- perAppProxy.setOnPreferenceClickListener {
116
- startActivity<PerAppProxyActivity >()
117
- perAppProxy.isChecked = true
118
- false
119
- }
120
200
121
- proxySharing.setOnPreferenceClickListener {
122
- if (proxySharing.isChecked)
123
- toast(R .string.toast_warning_pref_proxysharing)
124
- false
125
- }
126
-
127
-
128
-
129
- remoteDns.setOnPreferenceChangeListener { preference, any ->
130
- // remoteDns.summary = any as String
131
- val nval = any as String
132
- remoteDns.summary = if (nval == " " ) AppConfig .DNS_AGENT else nval
133
- true
134
- }
135
- domesticDns.setOnPreferenceChangeListener { preference, any ->
136
- // domesticDns.summary = any as String
137
- val nval = any as String
138
- domesticDns.summary = if (nval == " " ) AppConfig .DNS_DIRECT else nval
139
- true
140
- }
141
201
// socksPort.setOnPreferenceChangeListener { preference, any ->
142
202
// socksPort.summary = any as String
143
203
// true
0 commit comments