Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 37 additions & 6 deletions app/src/main/java/eu/faircode/netguard/ActivitySettings.java
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,32 @@ public boolean onPreferenceClick(Preference preference) {
});
}

Preference pref_exclude_all = screen.findPreference("exclude_all_tracking");
if (pref_exclude_all != null) {
pref_exclude_all.setOnPreferenceClickListener(preference -> {
Util.areYouSure(ActivitySettings.this, R.string.summary_exclude_all_tracking, new Util.DoubtListener() {
@Override
public void onSure() {
setTrackerProtectionForAll(false);
}
});
return true;
});
}

Preference pref_include_all = screen.findPreference("include_all_tracking");
if (pref_include_all != null) {
pref_include_all.setOnPreferenceClickListener(preference -> {
Util.areYouSure(ActivitySettings.this, R.string.summary_include_all_tracking, new Util.DoubtListener() {
@Override
public void onSure() {
setTrackerProtectionForAll(true);
}
});
return true;
});
}

if (pref_rcode != null && cat_advanced != null) {
pref_rcode.setTitle(getString(R.string.setting_rcode, prefs.getString("rcode", "3")));
cat_advanced.removePreference(pref_rcode);
Expand Down Expand Up @@ -393,12 +419,6 @@ public boolean onPreferenceClick(Preference preference) {
if (p != null) p.setEnabled(false);
}

// In minimal mode, hide domain_based_blocking (not used)
if (BlockingMode.isMinimalMode(this) && cat_advanced != null) {
Preference domainBlocking = cat_advanced.findPreference("domain_based_blocking");
if (domainBlocking != null) cat_advanced.removePreference(domainBlocking);
}

String last_download = prefs.getString("hosts_last_download", null);
if (pref_hosts_download != null) {
if (last_download != null)
Expand Down Expand Up @@ -841,6 +861,17 @@ else if (BlockingMode.MODE_STRICT.equals(mode))
pref.setSummary(R.string.summary_blocking_mode_standard);
}

private void setTrackerProtectionForAll(boolean enabled) {
SharedPreferences tracker_protect = getSharedPreferences("tracker_protect", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = tracker_protect.edit();

for (android.content.pm.PackageInfo pkg : Rule.getPackages(this))
editor.putBoolean(pkg.packageName, enabled);

editor.apply();
ServiceSinkhole.reload("bulk tracker protect changed", this, false);
}

@TargetApi(Build.VERSION_CODES.M)
private boolean checkPermissions(String name) {
PreferenceScreen screen = getPreferenceScreen();
Expand Down
4 changes: 4 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,10 @@
<string name="setting_track_usage">Track network usage</string>
<string name="setting_reset_usage">Reset network usage</string>
<string name="setting_show_resolved">Show resolved domain names</string>
<string name="setting_exclude_all_tracking">Exclude all apps from tracking</string>
<string name="summary_exclude_all_tracking">Disable tracker monitoring for all apps. You can then re-enable it for individual apps.</string>
<string name="setting_include_all_tracking">Include all apps in tracking</string>
<string name="summary_include_all_tracking">Re-enable tracker monitoring for all apps.</string>
<string name="setting_block_domains">Enable hosts file</string>
<string name="setting_rcode">Hosts blocking response: %s</string>
<string name="setting_vpn4">VPN IPv4: %s</string>
Expand Down
8 changes: 8 additions & 0 deletions app/src/main/res/xml/preferences.xml
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,14 @@
android:key="manage_system"
android:summary="@string/summary_system"
android:title="@string/setting_system" />
<Preference
android:key="exclude_all_tracking"
android:summary="@string/summary_exclude_all_tracking"
android:title="@string/setting_exclude_all_tracking" />
<Preference
android:key="include_all_tracking"
android:summary="@string/summary_include_all_tracking"
android:title="@string/setting_include_all_tracking" />
<Preference
android:key="manage_blocklists"
android:summary="@string/summary_manage_blocklists"
Expand Down
Loading