Skip to content

Commit cae35be

Browse files
committed
支持指定端口和通道优先级
1 parent 8194e79 commit cae35be

File tree

9 files changed

+128
-5
lines changed

9 files changed

+128
-5
lines changed

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ android {
99
ndk {
1010
abiFilters 'arm64-v8a', 'x86_64'
1111
}
12-
versionName "1.2.4.4"
12+
versionName "1.2.7"
1313
}
1414

1515
buildTypes {

app/libs/arm64-v8a/libvnt_jni.so

-26.1 KB
Binary file not shown.

app/libs/x86_64/libvnt_jni.so

-26.6 KB
Binary file not shown.

app/src/main/java/top/wherewego/vnt/AddActivity.java

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ public class AddActivity extends AppActivity {
2929
private Spinner mCipherModel;
3030
private Spinner mConnectType;
3131
private Spinner mFinger;
32+
private Spinner mPriority;
33+
private EditText mPort;
3234

3335
@Override
3436
protected int getLayoutId() {
@@ -68,6 +70,8 @@ public void onRightClick(TitleBar titleBar) {
6870
mCipherModel = findViewById(R.id.et_add_cipher_model_value);
6971
mConnectType = findViewById(R.id.et_add_connect_type_value);
7072
mFinger = findViewById(R.id.et_add_finger_value);
73+
mPriority = findViewById(R.id.et_add_priority_value);
74+
mPort = findViewById(R.id.et_add_port_value);
7175
}
7276

7377
@Override
@@ -106,7 +110,23 @@ private void save() {
106110
String cipherModel = mCipherModel.getSelectedItem().toString().trim();
107111
String connectType = mConnectType.getSelectedItem().toString().trim();
108112
String finger = mFinger.getSelectedItem().toString().trim();
113+
String priority = mPriority.getSelectedItem().toString().trim();
109114
String inIps = mInIps.getText().toString().trim();
115+
String portStr = mPort.getText().toString().trim();
116+
int port = 0;
117+
if (!portStr.isEmpty()) {
118+
try {
119+
port = Integer.parseInt(portStr);
120+
if (port < 0 || port >= 65535) {
121+
Toast.makeText(this, "port错误", Toast.LENGTH_SHORT).show();
122+
return;
123+
}
124+
} catch (Exception e) {
125+
Toast.makeText(this, "port错误", Toast.LENGTH_SHORT).show();
126+
return;
127+
}
128+
}
129+
110130
if (inIps.isEmpty()) {
111131
inIps = null;
112132
}
@@ -116,7 +136,8 @@ private void save() {
116136
}
117137
ConfigurationInfoBean configurationInfoBean = new ConfigurationInfoBean(
118138
token, name, deviceId, password, server, stun,
119-
cipherModel, "TCP".equalsIgnoreCase(connectType), "OPEN".equalsIgnoreCase(finger), inIps, outIps
139+
cipherModel, "TCP".equalsIgnoreCase(connectType), "OPEN".equalsIgnoreCase(finger), inIps, outIps,
140+
"latency".equalsIgnoreCase(priority),port
120141
);
121142
try {
122143
String err = check(configurationInfoBean);

app/src/main/java/top/wherewego/vnt/MyVpnService.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,10 @@ public synchronized int onStartCommand(Intent intent, int flags, int startId) {
8282
boolean finger = selectConfigurationInfoBean.isFinger();
8383
String inIps = selectConfigurationInfoBean.getInIps();
8484
String outIps = selectConfigurationInfoBean.getOutIps();
85+
boolean firstLatency = selectConfigurationInfoBean.isFirstLatency();
86+
int port = selectConfigurationInfoBean.getPort();
8587
config = new Config(token, name, deviceId, server, stunServer, password.isEmpty() ? null : password,
86-
cipherModel, tcp, finger,inIps,outIps);
88+
cipherModel, tcp, finger,inIps,outIps,firstLatency,port);
8789
if (mThread == null) {
8890
mThread = new Thread(this, "VntVPN");
8991
mThread.start();

app/src/main/java/top/wherewego/vnt/jni/Config.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@ public class Config {
1010
private String cipherModel;
1111
private boolean tcp;
1212
private boolean finger;
13+
private boolean firstLatency;
14+
private int port;
1315
private String inIps;
1416
private String outIps;
1517

1618

1719
public Config(String token, String name, String deviceId, String server,
1820
String stunServer, String password, String cipherModel, boolean tcp,boolean finger,
19-
String inIps,String outIps) {
21+
String inIps,String outIps,boolean firstLatency,int port) {
2022
this.token = token;
2123
this.name = name;
2224
this.deviceId = deviceId;
@@ -28,6 +30,8 @@ public Config(String token, String name, String deviceId, String server,
2830
this.finger = finger;
2931
this.inIps = inIps;
3032
this.outIps = outIps;
33+
this.firstLatency = firstLatency;
34+
this.port = port;
3135
}
3236

3337
public String getToken() {
@@ -117,4 +121,20 @@ public String getOutIps() {
117121
public void setOutIps(String outIps) {
118122
this.outIps = outIps;
119123
}
124+
125+
public boolean isFirstLatency() {
126+
return firstLatency;
127+
}
128+
129+
public void setFirstLatency(boolean firstLatency) {
130+
this.firstLatency = firstLatency;
131+
}
132+
133+
public int getPort() {
134+
return port;
135+
}
136+
137+
public void setPort(int port) {
138+
this.port = port;
139+
}
120140
}

app/src/main/java/top/wherewego/vnt/jni/ConfigurationInfoBean.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@ public class ConfigurationInfoBean implements Serializable {
1515
private boolean finger;
1616
private String inIps;
1717
private String outIps;
18+
private boolean firstLatency;
19+
private int port;
1820

1921
public ConfigurationInfoBean(String token, String name, String deviceId, String password,
2022
String server, String stun, String cipherModel, boolean tcp, boolean finger,
21-
String inIps, String outIps) {
23+
String inIps, String outIps,boolean firstLatency,int port) {
2224
this.key = String.valueOf(System.currentTimeMillis());
2325
this.token = token;
2426
this.name = name;
@@ -31,6 +33,8 @@ public ConfigurationInfoBean(String token, String name, String deviceId, String
3133
this.finger = finger;
3234
this.inIps = inIps;
3335
this.outIps = outIps;
36+
this.firstLatency = firstLatency;
37+
this.port = port;
3438
}
3539

3640
public String getKey() {
@@ -124,4 +128,20 @@ public String getOutIps() {
124128
public void setOutIps(String outIps) {
125129
this.outIps = outIps;
126130
}
131+
132+
public boolean isFirstLatency() {
133+
return firstLatency;
134+
}
135+
136+
public void setFirstLatency(boolean firstLatency) {
137+
this.firstLatency = firstLatency;
138+
}
139+
140+
public int getPort() {
141+
return port;
142+
}
143+
144+
public void setPort(int port) {
145+
this.port = port;
146+
}
127147
}

app/src/main/res/layout/activity_add.xml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,62 @@
216216
android:entries="@array/finger"
217217
android:singleLine="true" />
218218

219+
</LinearLayout>
220+
<LinearLayout
221+
android:layout_width="match_parent"
222+
android:layout_height="wrap_content"
223+
android:orientation="horizontal"
224+
android:gravity="bottom"
225+
tools:ignore="MissingConstraints">
226+
227+
<TextView
228+
android:id="@+id/tv_add_priority"
229+
android:layout_width="@dimen/dp_68"
230+
android:gravity="end"
231+
android:layout_height="wrap_content"
232+
android:text="Priority:"
233+
android:textSize="@dimen/sp_14"
234+
android:textStyle="bold" />
235+
236+
237+
238+
<Spinner
239+
android:id="@+id/et_add_priority_value"
240+
style="@style/SpinnerStyle"
241+
android:layout_width="match_parent"
242+
android:layout_height="wrap_content"
243+
android:entries="@array/priority"
244+
android:singleLine="true" />
245+
246+
</LinearLayout>
247+
<LinearLayout
248+
android:layout_width="match_parent"
249+
android:layout_height="wrap_content"
250+
android:orientation="horizontal"
251+
android:gravity="bottom"
252+
tools:ignore="MissingConstraints">
253+
254+
<TextView
255+
android:id="@+id/tv_add_port"
256+
android:layout_width="@dimen/dp_68"
257+
android:gravity="end"
258+
android:layout_height="wrap_content"
259+
android:text="Port:"
260+
android:textSize="@dimen/sp_14"
261+
android:textStyle="bold" />
262+
263+
264+
265+
<top.wherewego.widget.view.RegexEditText
266+
android:id="@+id/et_add_port_value"
267+
style="@style/EditTextStyle"
268+
android:layout_width="match_parent"
269+
android:layout_height="wrap_content"
270+
android:hint="监听端口"
271+
android:inputType="number"
272+
android:maxLength="@integer/sms_code_length"
273+
android:singleLine="true" />
274+
219275
</LinearLayout>
220276
<LinearLayout
221277
android:layout_width="match_parent"

app/src/main/res/values/strings.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@
2626
<item>close</item>
2727
<item>open</item>
2828
</string-array>
29+
<string-array name="priority">
30+
<item>p2p</item>
31+
<item>latency</item>
32+
</string-array>
2933
<string name="common_loading">加载中&#8230;</string>
3034

3135
<string name="common_unknown_error">未知错误</string>

0 commit comments

Comments
 (0)