Added manual edit dns test servers
This commit is contained in:
parent
4f082c6e45
commit
cd425eb8a5
@ -4,10 +4,12 @@ import android.app.ActivityManager;
|
|||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
import android.content.pm.ShortcutInfo;
|
import android.content.pm.ShortcutInfo;
|
||||||
import android.content.pm.ShortcutManager;
|
import android.content.pm.ShortcutManager;
|
||||||
import android.graphics.drawable.Icon;
|
import android.graphics.drawable.Icon;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
import android.preference.PreferenceManager;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import org.itxtech.daedalus.activity.MainActivity;
|
import org.itxtech.daedalus.activity.MainActivity;
|
||||||
import org.itxtech.daedalus.service.DaedalusVpnService;
|
import org.itxtech.daedalus.service.DaedalusVpnService;
|
||||||
@ -28,7 +30,7 @@ import java.util.List;
|
|||||||
* the Free Software Foundation, version 3.
|
* the Free Software Foundation, version 3.
|
||||||
*/
|
*/
|
||||||
public class Daedalus extends Application {
|
public class Daedalus extends Application {
|
||||||
public static final String SHORTCUT_ID_ACTIVATE = "activate";
|
private static final String SHORTCUT_ID_ACTIVATE = "shortcut_activate";
|
||||||
|
|
||||||
public static final List<DnsServer> DNS_SERVERS = new ArrayList<DnsServer>() {{
|
public static final List<DnsServer> DNS_SERVERS = new ArrayList<DnsServer>() {{
|
||||||
add(new DnsServer("0", "113.107.249.56", R.string.server_north_china));
|
add(new DnsServer("0", "113.107.249.56", R.string.server_north_china));
|
||||||
@ -45,14 +47,26 @@ public class Daedalus extends Application {
|
|||||||
};
|
};
|
||||||
|
|
||||||
private static Daedalus instance = null;
|
private static Daedalus instance = null;
|
||||||
|
private static SharedPreferences prefs;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate() {
|
public void onCreate() {
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
|
|
||||||
|
initConfig();
|
||||||
|
|
||||||
instance = this;
|
instance = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void initConfig() {
|
||||||
|
PreferenceManager.setDefaultValues(this, R.xml.perf_settings, false);
|
||||||
|
prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SharedPreferences getPrefs() {
|
||||||
|
return prefs;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onTerminate() {
|
public void onTerminate() {
|
||||||
super.onTerminate();
|
super.onTerminate();
|
||||||
|
@ -3,10 +3,8 @@ package org.itxtech.daedalus.activity;
|
|||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
|
||||||
import android.net.VpnService;
|
import android.net.VpnService;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.preference.PreferenceManager;
|
|
||||||
import android.support.design.widget.FloatingActionButton;
|
import android.support.design.widget.FloatingActionButton;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
import android.support.v7.app.AppCompatActivity;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@ -38,7 +36,6 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
public static final int LAUNCH_ACTION_DEACTIVATE = 2;
|
public static final int LAUNCH_ACTION_DEACTIVATE = 2;
|
||||||
|
|
||||||
private static MainActivity instance = null;
|
private static MainActivity instance = null;
|
||||||
private SharedPreferences prefs;
|
|
||||||
|
|
||||||
public static MainActivity getInstance() {
|
public static MainActivity getInstance() {
|
||||||
return instance;
|
return instance;
|
||||||
@ -50,8 +47,6 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
instance = this;
|
instance = this;
|
||||||
|
|
||||||
initConfig();
|
|
||||||
|
|
||||||
setContentView(R.layout.activity_main);
|
setContentView(R.layout.activity_main);
|
||||||
/*Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
/*Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||||
setSupportActionBar(toolbar);*/
|
setSupportActionBar(toolbar);*/
|
||||||
@ -152,11 +147,6 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
updateUserInterface();
|
updateUserInterface();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initConfig() {
|
|
||||||
PreferenceManager.setDefaultValues(this, R.xml.perf_settings, false);
|
|
||||||
prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void activateService() {
|
private void activateService() {
|
||||||
Intent intent = VpnService.prepare(this);
|
Intent intent = VpnService.prepare(this);
|
||||||
if (intent != null) {
|
if (intent != null) {
|
||||||
@ -188,8 +178,8 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
protected void onActivityResult(int request, int result, Intent data) {
|
protected void onActivityResult(int request, int result, Intent data) {
|
||||||
if (result == RESULT_OK) {
|
if (result == RESULT_OK) {
|
||||||
DaedalusVpnService.primaryServer = DnsServer.getDnsServerAddressById(prefs.getString("primary_server", "0"));
|
DaedalusVpnService.primaryServer = DnsServer.getDnsServerAddressById(Daedalus.getPrefs().getString("primary_server", "0"));
|
||||||
DaedalusVpnService.secondaryServer = DnsServer.getDnsServerAddressById(prefs.getString("secondary_server", "1"));
|
DaedalusVpnService.secondaryServer = DnsServer.getDnsServerAddressById(Daedalus.getPrefs().getString("secondary_server", "1"));
|
||||||
|
|
||||||
startService(getServiceIntent().setAction(DaedalusVpnService.ACTION_ACTIVATE));
|
startService(getServiceIntent().setAction(DaedalusVpnService.ACTION_ACTIVATE));
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@ import org.itxtech.daedalus.R;
|
|||||||
import org.itxtech.daedalus.util.DnsServer;
|
import org.itxtech.daedalus.util.DnsServer;
|
||||||
|
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@ -84,7 +85,15 @@ public class ServerTestActivity extends AppCompatActivity {
|
|||||||
testDomain = Daedalus.DEFAULT_TEST_DOMAINS[0];
|
testDomain = Daedalus.DEFAULT_TEST_DOMAINS[0];
|
||||||
}
|
}
|
||||||
StringBuilder testText = new StringBuilder();
|
StringBuilder testText = new StringBuilder();
|
||||||
String[] dnsServers = {DnsServer.getDnsServerAddressByStringDescription(context, spinnerServerChoice.getSelectedItem().toString()), "114.114.114.114", "8.8.8.8"};
|
ArrayList<String> dnsServers = new ArrayList<String>() {{
|
||||||
|
add(DnsServer.getDnsServerAddressByStringDescription(context, spinnerServerChoice.getSelectedItem().toString()));
|
||||||
|
String servers = Daedalus.getPrefs().getString("dns_test_servers", "");
|
||||||
|
if (!servers.equals("")) {
|
||||||
|
for (String server : servers.split(",")) {
|
||||||
|
add(server);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}};
|
||||||
DNSClient client = new DNSClient(null);
|
DNSClient client = new DNSClient(null);
|
||||||
for (String dnsServer : dnsServers) {
|
for (String dnsServer : dnsServers) {
|
||||||
testText = testServer(client, dnsServer, testDomain, testText);
|
testText = testServer(client, dnsServer, testDomain, testText);
|
||||||
|
@ -3,12 +3,9 @@ package org.itxtech.daedalus.receiver;
|
|||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
|
||||||
import android.net.VpnService;
|
import android.net.VpnService;
|
||||||
import android.preference.PreferenceManager;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import org.itxtech.daedalus.Daedalus;
|
import org.itxtech.daedalus.Daedalus;
|
||||||
import org.itxtech.daedalus.R;
|
|
||||||
import org.itxtech.daedalus.service.DaedalusVpnService;
|
import org.itxtech.daedalus.service.DaedalusVpnService;
|
||||||
import org.itxtech.daedalus.util.DnsServer;
|
import org.itxtech.daedalus.util.DnsServer;
|
||||||
|
|
||||||
@ -25,17 +22,15 @@ import org.itxtech.daedalus.util.DnsServer;
|
|||||||
public class BootBroadcastReceiver extends BroadcastReceiver {
|
public class BootBroadcastReceiver extends BroadcastReceiver {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
PreferenceManager.setDefaultValues(context, R.xml.perf_settings, false);
|
if (Daedalus.getPrefs().getBoolean("settings_boot", false)) {
|
||||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
|
||||||
if (prefs.getBoolean("settings_boot", false)) {
|
|
||||||
|
|
||||||
Intent vIntent = VpnService.prepare(context);
|
Intent vIntent = VpnService.prepare(context);
|
||||||
if (vIntent != null) {
|
if (vIntent != null) {
|
||||||
context.startActivity(vIntent);
|
context.startActivity(vIntent);
|
||||||
}
|
}
|
||||||
|
|
||||||
DaedalusVpnService.primaryServer = DnsServer.getDnsServerAddressById(prefs.getString("primary_server", "0"));
|
DaedalusVpnService.primaryServer = DnsServer.getDnsServerAddressById(Daedalus.getPrefs().getString("primary_server", "0"));
|
||||||
DaedalusVpnService.secondaryServer = DnsServer.getDnsServerAddressById(prefs.getString("secondary_server", "1"));
|
DaedalusVpnService.secondaryServer = DnsServer.getDnsServerAddressById(Daedalus.getPrefs().getString("secondary_server", "1"));
|
||||||
|
|
||||||
context.startService((new Intent(context, DaedalusVpnService.class)).setAction(DaedalusVpnService.ACTION_ACTIVATE));
|
context.startService((new Intent(context, DaedalusVpnService.class)).setAction(DaedalusVpnService.ACTION_ACTIVATE));
|
||||||
|
|
||||||
|
@ -37,4 +37,5 @@
|
|||||||
<string name="notice_legacy_api">当前 Android API 无法支持所有功能。</string>
|
<string name="notice_legacy_api">当前 Android API 无法支持所有功能。</string>
|
||||||
<string name="settings_issue_tracker">提交反馈</string>
|
<string name="settings_issue_tracker">提交反馈</string>
|
||||||
<string name="settings_issue_summary">前往 GitHub 提交问题反馈。</string>
|
<string name="settings_issue_summary">前往 GitHub 提交问题反馈。</string>
|
||||||
|
<string name="settings_dns_test_servers">DNS 测试服务器</string>
|
||||||
</resources>
|
</resources>
|
@ -37,4 +37,5 @@
|
|||||||
<string name="notice_legacy_api">The current Android API can not support all the features.</string>
|
<string name="notice_legacy_api">The current Android API can not support all the features.</string>
|
||||||
<string name="settings_issue_tracker">Issue tracker</string>
|
<string name="settings_issue_tracker">Issue tracker</string>
|
||||||
<string name="settings_issue_summary">Submit an issue in GitHub Issues page.</string>
|
<string name="settings_issue_summary">Submit an issue in GitHub Issues page.</string>
|
||||||
|
<string name="settings_dns_test_servers">DNS test servers</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -16,6 +16,12 @@
|
|||||||
android:title="@string/secondary_server"
|
android:title="@string/secondary_server"
|
||||||
android:defaultValue="1">
|
android:defaultValue="1">
|
||||||
</ListPreference>
|
</ListPreference>
|
||||||
|
<EditTextPreference
|
||||||
|
android:key="dns_test_servers"
|
||||||
|
android:defaultValue="114.114.114.114,8.8.8.8"
|
||||||
|
android:selectAllOnFocus="true"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:title="@string/settings_dns_test_servers"/>
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:key="settings_system"
|
android:key="settings_system"
|
||||||
|
Loading…
Reference in New Issue
Block a user