mirror of https://github.com/M66B/NetGuard.git
Remove partial rule load
This commit is contained in:
parent
0cbf93d2e6
commit
7735a3b228
|
@ -164,7 +164,7 @@ public class ActivityForwarding extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
protected List<Rule> doInBackground(Object... objects) {
|
||||
return Rule.getRules(true, false, ActivityForwarding.this);
|
||||
return Rule.getRules(true, ActivityForwarding.this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -333,7 +333,7 @@ public class ActivityLog extends AppCompatActivity implements SharedPreferences.
|
|||
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||
private String getUidForName(String query) {
|
||||
if (query != null && query.length() > 0) {
|
||||
for (Rule rule : Rule.getRules(true, false, ActivityLog.this))
|
||||
for (Rule rule : Rule.getRules(true, ActivityLog.this))
|
||||
if (rule.name != null && rule.name.toLowerCase().contains(query.toLowerCase())) {
|
||||
String newQuery = Integer.toString(rule.uid);
|
||||
Log.i(TAG, "Search " + query + " found " + rule.name + " new " + newQuery);
|
||||
|
|
|
@ -1053,7 +1053,7 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences
|
|||
|
||||
@Override
|
||||
protected List<Rule> doInBackground(Object... arg) {
|
||||
return Rule.getRules(false, false, ActivityMain.this);
|
||||
return Rule.getRules(false, ActivityMain.this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -276,7 +276,7 @@ public class Rule {
|
|||
}
|
||||
}
|
||||
|
||||
public static List<Rule> getRules(final boolean all, boolean service, Context context) {
|
||||
public static List<Rule> getRules(final boolean all, Context context) {
|
||||
synchronized (context.getApplicationContext()) {
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
SharedPreferences wifi = context.getSharedPreferences("wifi", Context.MODE_PRIVATE);
|
||||
|
@ -432,10 +432,7 @@ public class Rule {
|
|||
}
|
||||
rule.related = listPkg.toArray(new String[0]);
|
||||
|
||||
if (service)
|
||||
rule.hosts = -1;
|
||||
else
|
||||
rule.hosts = dh.getHostCount(rule.uid, true);
|
||||
rule.hosts = dh.getHostCount(rule.uid, true);
|
||||
|
||||
rule.updateChanged(default_wifi, default_other, default_roaming);
|
||||
|
||||
|
@ -446,37 +443,35 @@ public class Rule {
|
|||
}
|
||||
|
||||
// Sort rule list
|
||||
if (!service) {
|
||||
final Collator collator = Collator.getInstance(Locale.getDefault());
|
||||
collator.setStrength(Collator.SECONDARY); // Case insensitive, process accents etc
|
||||
final Collator collator = Collator.getInstance(Locale.getDefault());
|
||||
collator.setStrength(Collator.SECONDARY); // Case insensitive, process accents etc
|
||||
|
||||
String sort = prefs.getString("sort", "name");
|
||||
if ("uid".equals(sort))
|
||||
Collections.sort(listRules, new Comparator<Rule>() {
|
||||
@Override
|
||||
public int compare(Rule rule, Rule other) {
|
||||
if (rule.uid < other.uid)
|
||||
return -1;
|
||||
else if (rule.uid > other.uid)
|
||||
return 1;
|
||||
else {
|
||||
int i = collator.compare(rule.name, other.name);
|
||||
return (i == 0 ? rule.packageName.compareTo(other.packageName) : i);
|
||||
}
|
||||
String sort = prefs.getString("sort", "name");
|
||||
if ("uid".equals(sort))
|
||||
Collections.sort(listRules, new Comparator<Rule>() {
|
||||
@Override
|
||||
public int compare(Rule rule, Rule other) {
|
||||
if (rule.uid < other.uid)
|
||||
return -1;
|
||||
else if (rule.uid > other.uid)
|
||||
return 1;
|
||||
else {
|
||||
int i = collator.compare(rule.name, other.name);
|
||||
return (i == 0 ? rule.packageName.compareTo(other.packageName) : i);
|
||||
}
|
||||
});
|
||||
else
|
||||
Collections.sort(listRules, new Comparator<Rule>() {
|
||||
@Override
|
||||
public int compare(Rule rule, Rule other) {
|
||||
if (all || rule.changed == other.changed) {
|
||||
int i = collator.compare(rule.name, other.name);
|
||||
return (i == 0 ? rule.packageName.compareTo(other.packageName) : i);
|
||||
}
|
||||
return (rule.changed ? -1 : 1);
|
||||
}
|
||||
});
|
||||
else
|
||||
Collections.sort(listRules, new Comparator<Rule>() {
|
||||
@Override
|
||||
public int compare(Rule rule, Rule other) {
|
||||
if (all || rule.changed == other.changed) {
|
||||
int i = collator.compare(rule.name, other.name);
|
||||
return (i == 0 ? rule.packageName.compareTo(other.packageName) : i);
|
||||
}
|
||||
});
|
||||
}
|
||||
return (rule.changed ? -1 : 1);
|
||||
}
|
||||
});
|
||||
|
||||
return listRules;
|
||||
}
|
||||
|
|
|
@ -487,7 +487,7 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
|
|||
state = State.enforcing;
|
||||
Log.d(TAG, "Start foreground state=" + state.toString());
|
||||
|
||||
List<Rule> listRule = Rule.getRules(true, true, ServiceSinkhole.this);
|
||||
List<Rule> listRule = Rule.getRules(true, ServiceSinkhole.this);
|
||||
List<Rule> listAllowed = getAllowedRules(listRule);
|
||||
|
||||
last_builder = getBuilder(listAllowed, listRule);
|
||||
|
@ -503,7 +503,7 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
|
|||
}
|
||||
|
||||
private void reload(boolean interactive) {
|
||||
List<Rule> listRule = Rule.getRules(true, true, ServiceSinkhole.this);
|
||||
List<Rule> listRule = Rule.getRules(true, ServiceSinkhole.this);
|
||||
|
||||
// Check if rules needs to be reloaded
|
||||
if (interactive) {
|
||||
|
|
Loading…
Reference in New Issue