From 000706a2aeff920cd6ba9008bc467a5b9b2f0c5f Mon Sep 17 00:00:00 2001 From: PeratX <1215714524@qq.com> Date: Wed, 23 Oct 2019 15:48:02 +0800 Subject: [PATCH] Daedalus: reformat things --- app/build.gradle | 2 +- .../java/org/itxtech/daedalus/Daedalus.java | 60 +++++++++---------- .../daedalus/activity/ConfigActivity.java | 4 +- .../daedalus/util/DnsServersDetector.java | 30 +++++----- app/src/main/res/values/strings.xml | 2 +- 5 files changed, 46 insertions(+), 52 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 7f93c67..0a4bcf8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -58,7 +58,7 @@ dependencies { implementation 'androidx.cardview:cardview:1.0.0' implementation 'com.google.android.material:material:1.2.0-alpha01' implementation 'androidx.recyclerview:recyclerview:1.1.0-beta05' - implementation "androidx.preference:preference:1.1.0" + implementation 'androidx.preference:preference:1.1.0' //DNS implementation 'org.pcap4j:pcap4j-core:1.8.2' implementation 'org.pcap4j:pcap4j-packetfactory-static:1.8.2' diff --git a/app/src/main/java/org/itxtech/daedalus/Daedalus.java b/app/src/main/java/org/itxtech/daedalus/Daedalus.java index 4016e73..2043577 100644 --- a/app/src/main/java/org/itxtech/daedalus/Daedalus.java +++ b/app/src/main/java/org/itxtech/daedalus/Daedalus.java @@ -16,10 +16,10 @@ import com.google.gson.GsonBuilder; import com.google.gson.JsonParseException; import com.google.gson.stream.JsonReader; import org.itxtech.daedalus.activity.MainActivity; -import org.itxtech.daedalus.service.DaedalusVpnService; -import org.itxtech.daedalus.util.*; import org.itxtech.daedalus.server.DnsServer; import org.itxtech.daedalus.server.DnsServerHelper; +import org.itxtech.daedalus.service.DaedalusVpnService; +import org.itxtech.daedalus.util.*; import java.io.File; import java.util.ArrayList; @@ -50,7 +50,7 @@ public class Daedalus extends Application { add(new DnsServer("dns.google/resolve", R.string.server_google_json)); }}; - public static final List RULES = new ArrayList() {{ + public static final ArrayList RULES = new ArrayList() {{ add(new Rule("googlehosts/hosts", "googlehosts.hosts", Rule.TYPE_HOSTS, "https://raw.githubusercontent.com/googlehosts/hosts/master/hosts-files/hosts", false)); add(new Rule("vokins/yhosts", "vokins.hosts", Rule.TYPE_HOSTS, @@ -62,7 +62,7 @@ public class Daedalus extends Application { "https://raw.githubusercontent.com/vokins/yhosts/master/dnsmasq/union.conf", false)); }}; - public static final String[] DEFAULT_TEST_DOMAINS = new String[]{ + public static final String[] DEFAULT_TEST_DOMAINS = { "google.com", "twitter.com", "youtube.com", @@ -71,12 +71,11 @@ public class Daedalus extends Application { }; public static Configurations configurations; + public static String rulePath; + public static String logPath; + private static String configPath; - public static String rulePath = null; - public static String logPath = null; - private static String configPath = null; - - private static Daedalus instance = null; + private static Daedalus instance; private SharedPreferences prefs; private Thread mResolver; @@ -85,12 +84,9 @@ public class Daedalus extends Application { super.onCreate(); instance = this; - Logger.init(); - mResolver = new Thread(new RuleResolver()); mResolver.start(); - initData(); } @@ -131,30 +127,30 @@ public class Daedalus extends Application { } public static void initRuleResolver() { - ArrayList pendingLoad = new ArrayList<>(); - ArrayList usingRules = configurations.getUsingRules(); - if (usingRules != null && usingRules.size() > 0) { - for (Rule rule : usingRules) { - if (rule.isUsing()) { - pendingLoad.add(rulePath + rule.getFileName()); - } + ArrayList pendingLoad = new ArrayList<>(); + ArrayList usingRules = configurations.getUsingRules(); + if (usingRules != null && usingRules.size() > 0) { + for (Rule rule : usingRules) { + if (rule.isUsing()) { + pendingLoad.add(rulePath + rule.getFileName()); } - if (pendingLoad.size() > 0) { - String[] arr = new String[pendingLoad.size()]; - pendingLoad.toArray(arr); - switch (usingRules.get(0).getType()) { - case Rule.TYPE_HOSTS: - RuleResolver.startLoadHosts(arr); - break; - case Rule.TYPE_DNAMASQ: - RuleResolver.startLoadDnsmasq(arr); - break; - } - } else { - RuleResolver.clear(); + } + if (pendingLoad.size() > 0) { + String[] arr = new String[pendingLoad.size()]; + pendingLoad.toArray(arr); + switch (usingRules.get(0).getType()) { + case Rule.TYPE_HOSTS: + RuleResolver.startLoadHosts(arr); + break; + case Rule.TYPE_DNAMASQ: + RuleResolver.startLoadDnsmasq(arr); + break; } } else { RuleResolver.clear(); + } + } else { + RuleResolver.clear(); } } diff --git a/app/src/main/java/org/itxtech/daedalus/activity/ConfigActivity.java b/app/src/main/java/org/itxtech/daedalus/activity/ConfigActivity.java index b94e6d8..2252d30 100644 --- a/app/src/main/java/org/itxtech/daedalus/activity/ConfigActivity.java +++ b/app/src/main/java/org/itxtech/daedalus/activity/ConfigActivity.java @@ -44,12 +44,10 @@ public class ConfigActivity extends AppCompatActivity { ConfigFragment fragment; switch (getIntent().getIntExtra(LAUNCH_ACTION_FRAGMENT, LAUNCH_FRAGMENT_DNS_SERVER)) { - case LAUNCH_FRAGMENT_DNS_SERVER: - fragment = new DnsServerConfigFragment(); - break; case LAUNCH_FRAGMENT_RULE: fragment = new RuleConfigFragment(); break; + case LAUNCH_FRAGMENT_DNS_SERVER: default://should never reach this fragment = new DnsServerConfigFragment(); break; diff --git a/app/src/main/java/org/itxtech/daedalus/util/DnsServersDetector.java b/app/src/main/java/org/itxtech/daedalus/util/DnsServersDetector.java index cace002..1f24bef 100644 --- a/app/src/main/java/org/itxtech/daedalus/util/DnsServersDetector.java +++ b/app/src/main/java/org/itxtech/daedalus/util/DnsServersDetector.java @@ -50,8 +50,7 @@ public class DnsServersDetector { private static String[] getServersMethodConnectivityManager(Context context) { ArrayList priorityServersArrayList = new ArrayList<>(); ArrayList serversArrayList = new ArrayList<>(); - ConnectivityManager connectivityManager = - (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); + ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivityManager != null) { for (Network network : connectivityManager.getAllNetworks()) { NetworkInfo networkInfo = connectivityManager.getNetworkInfo(network); @@ -83,15 +82,15 @@ public class DnsServersDetector { private static String[] getServersMethodSystemProperties() { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { - final String re1 = "^\\d+(\\.\\d+){3}$"; - final String re2 = "^[0-9a-f]+(:[0-9a-f]*)+:[0-9a-f]+$"; + String re1 = "^\\d+(\\.\\d+){3}$"; + String re2 = "^[0-9a-f]+(:[0-9a-f]*)+:[0-9a-f]+$"; ArrayList serversArrayList = new ArrayList<>(); try { Class SystemProperties = Class.forName("android.os.SystemProperties"); Method method = SystemProperties.getMethod("get", new Class[]{String.class}); - final String[] netdns = new String[]{"net.dns1", "net.dns2", "net.dns3", "net.dns4"}; - for (int i = 0; i < netdns.length; i++) { - Object[] args = new Object[]{netdns[i]}; + String[] netdns = new String[]{"net.dns1", "net.dns2", "net.dns3", "net.dns4"}; + for (String dns : netdns) { + Object[] args = new Object[]{dns}; String v = (String) method.invoke(null, args); if (v != null && (v.matches(re1) || v.matches(re2)) && !serversArrayList.contains(v)) { serversArrayList.add(v); @@ -100,7 +99,6 @@ public class DnsServersDetector { if (serversArrayList.size() > 0) { return serversArrayList.toArray(new String[0]); } - } catch (Exception ex) { Logger.logException(ex); } @@ -125,7 +123,7 @@ public class DnsServersDetector { private static Set methodExecParseProps(BufferedReader lineNumberReader) throws Exception { String line; - Set serversSet = new HashSet(10); + HashSet serversSet = new HashSet<>(); while ((line = lineNumberReader.readLine()) != null) { int split = line.indexOf(METHOD_EXEC_PROP_DELIM); if (split == -1) { @@ -141,14 +139,16 @@ public class DnsServersDetector { if (value.isEmpty()) { continue; } - if (property.endsWith(".dns") || property.endsWith(".dns1") || - property.endsWith(".dns2") || property.endsWith(".dns3") || - property.endsWith(".dns4")) { + if (property.endsWith(".dns") || property.endsWith(".dns1") || property.endsWith(".dns2") || + property.endsWith(".dns3") || property.endsWith(".dns4")) { InetAddress ip = InetAddress.getByName(value); - if (ip == null) continue; + if (ip == null) { + continue; + } value = ip.getHostAddress(); - if (value == null) continue; - if (value.length() == 0) continue; + if (value == null || value.length() == 0) { + continue; + } serversSet.add(value); } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b43264a..bb9e9e3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -60,7 +60,7 @@ Log Size Limit Manual Visit GitHub wiki page. - Don\'t cache ip for DNS servers + Don\'t cache IP for DNS servers Debug Output Use Dark Theme DNS Query Method