mirror of https://github.com/M66B/NetGuard.git
Added option to append to hosts file
This commit is contained in:
parent
5b23f1c4f7
commit
e8c1e17975
|
@ -30,7 +30,6 @@ Note that:
|
||||||
* applications, browsers mostly, that have a *"data saver"*-like feature that proxies requests through their servers (eg. Opera w/ Turbo, Opera Max, Puffin, Chrome w/ data saver, UC Browser, Yandex w/ Turbo, Apus Browser, KK Browser, Onavo Extend, Maxthon) will not have ads blocked as NetGuard cannot see those domain requests
|
* applications, browsers mostly, that have a *"data saver"*-like feature that proxies requests through their servers (eg. Opera w/ Turbo, Opera Max, Puffin, Chrome w/ data saver, UC Browser, Yandex w/ Turbo, Apus Browser, KK Browser, Onavo Extend, Maxthon) will not have ads blocked as NetGuard cannot see those domain requests
|
||||||
* YouTube ads are not domain-based, and thus cannot be blocked with NetGuard
|
* YouTube ads are not domain-based, and thus cannot be blocked with NetGuard
|
||||||
* NetGuard ignores the IP addresses in the hosts file, because it does not route blocked domains to localhost
|
* NetGuard ignores the IP addresses in the hosts file, because it does not route blocked domains to localhost
|
||||||
* NetGuard does not concatenate hosts files, so you will have to use a source which does this for you or do it yourself
|
|
||||||
* When NetGuard imports the hosts file, it automatically discards any duplicates entries, so duplicate entries are not a problem and have no performance impact after the file is imported
|
* When NetGuard imports the hosts file, it automatically discards any duplicates entries, so duplicate entries are not a problem and have no performance impact after the file is imported
|
||||||
* you can check the number of hosts (domains) imported by pulling the NetGuard notification down using two fingers if your version of Android supports that functionality
|
* you can check the number of hosts (domains) imported by pulling the NetGuard notification down using two fingers if your version of Android supports that functionality
|
||||||
* wildcards are not supported due to performance and battery usage reasons
|
* wildcards are not supported due to performance and battery usage reasons
|
||||||
|
|
|
@ -100,7 +100,8 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere
|
||||||
private static final int REQUEST_EXPORT = 1;
|
private static final int REQUEST_EXPORT = 1;
|
||||||
private static final int REQUEST_IMPORT = 2;
|
private static final int REQUEST_IMPORT = 2;
|
||||||
private static final int REQUEST_HOSTS = 3;
|
private static final int REQUEST_HOSTS = 3;
|
||||||
private static final int REQUEST_CALL = 4;
|
private static final int REQUEST_HOSTS_APPEND = 4;
|
||||||
|
private static final int REQUEST_CALL = 5;
|
||||||
|
|
||||||
private AlertDialog dialogFilter = null;
|
private AlertDialog dialogFilter = null;
|
||||||
|
|
||||||
|
@ -300,6 +301,7 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere
|
||||||
Preference pref_block_domains = screen.findPreference("use_hosts");
|
Preference pref_block_domains = screen.findPreference("use_hosts");
|
||||||
EditTextPreference pref_rcode = (EditTextPreference) screen.findPreference("rcode");
|
EditTextPreference pref_rcode = (EditTextPreference) screen.findPreference("rcode");
|
||||||
Preference pref_hosts_import = screen.findPreference("hosts_import");
|
Preference pref_hosts_import = screen.findPreference("hosts_import");
|
||||||
|
Preference pref_hosts_import_append = screen.findPreference("hosts_import_append");
|
||||||
EditTextPreference pref_hosts_url = (EditTextPreference) screen.findPreference("hosts_url");
|
EditTextPreference pref_hosts_url = (EditTextPreference) screen.findPreference("hosts_url");
|
||||||
final Preference pref_hosts_download = screen.findPreference("hosts_download");
|
final Preference pref_hosts_download = screen.findPreference("hosts_download");
|
||||||
|
|
||||||
|
@ -312,6 +314,7 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere
|
||||||
cat_advanced.removePreference(pref_rcode);
|
cat_advanced.removePreference(pref_rcode);
|
||||||
cat_advanced.removePreference(pref_forwarding);
|
cat_advanced.removePreference(pref_forwarding);
|
||||||
cat_backup.removePreference(pref_hosts_import);
|
cat_backup.removePreference(pref_hosts_import);
|
||||||
|
cat_backup.removePreference(pref_hosts_import_append);
|
||||||
cat_backup.removePreference(pref_hosts_url);
|
cat_backup.removePreference(pref_hosts_url);
|
||||||
cat_backup.removePreference(pref_hosts_download);
|
cat_backup.removePreference(pref_hosts_download);
|
||||||
|
|
||||||
|
@ -333,6 +336,14 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
pref_hosts_import_append.setEnabled(pref_hosts_import.isEnabled());
|
||||||
|
pref_hosts_import_append.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
|
startActivityForResult(getIntentOpenHosts(), ActivitySettings.REQUEST_HOSTS_APPEND);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// Handle hosts file download
|
// Handle hosts file download
|
||||||
pref_hosts_url.setSummary(pref_hosts_url.getText());
|
pref_hosts_url.setSummary(pref_hosts_url.getText());
|
||||||
|
@ -827,7 +838,11 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere
|
||||||
|
|
||||||
} else if (requestCode == REQUEST_HOSTS) {
|
} else if (requestCode == REQUEST_HOSTS) {
|
||||||
if (resultCode == RESULT_OK && data != null)
|
if (resultCode == RESULT_OK && data != null)
|
||||||
handleHosts(data);
|
handleHosts(data, false);
|
||||||
|
|
||||||
|
} else if (requestCode == REQUEST_HOSTS_APPEND) {
|
||||||
|
if (resultCode == RESULT_OK && data != null)
|
||||||
|
handleHosts(data, true);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
Log.w(TAG, "Unknown activity result request=" + requestCode);
|
Log.w(TAG, "Unknown activity result request=" + requestCode);
|
||||||
|
@ -913,7 +928,7 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere
|
||||||
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleHosts(final Intent data) {
|
private void handleHosts(final Intent data, final boolean append) {
|
||||||
new AsyncTask<Object, Object, Throwable>() {
|
new AsyncTask<Object, Object, Throwable>() {
|
||||||
@Override
|
@Override
|
||||||
protected Throwable doInBackground(Object... objects) {
|
protected Throwable doInBackground(Object... objects) {
|
||||||
|
@ -928,7 +943,7 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere
|
||||||
String streamType = (streamTypes == null || streamTypes.length == 0 ? "*/*" : streamTypes[0]);
|
String streamType = (streamTypes == null || streamTypes.length == 0 ? "*/*" : streamTypes[0]);
|
||||||
AssetFileDescriptor descriptor = resolver.openTypedAssetFileDescriptor(data.getData(), streamType, null);
|
AssetFileDescriptor descriptor = resolver.openTypedAssetFileDescriptor(data.getData(), streamType, null);
|
||||||
in = descriptor.createInputStream();
|
in = descriptor.createInputStream();
|
||||||
out = new FileOutputStream(hosts);
|
out = new FileOutputStream(hosts, append);
|
||||||
|
|
||||||
int len;
|
int len;
|
||||||
long total = 0;
|
long total = 0;
|
||||||
|
|
|
@ -129,6 +129,7 @@
|
||||||
<string name="setting_export">Export settings</string>
|
<string name="setting_export">Export settings</string>
|
||||||
<string name="setting_import">Import settings</string>
|
<string name="setting_import">Import settings</string>
|
||||||
<string name="setting_hosts">Import hosts file</string>
|
<string name="setting_hosts">Import hosts file</string>
|
||||||
|
<string name="setting_hosts_append">Import hosts file (append)</string>
|
||||||
<string name="setting_hosts_url">Hosts file download URL</string>
|
<string name="setting_hosts_url">Hosts file download URL</string>
|
||||||
<string name="setting_hosts_download">Download hosts file</string>
|
<string name="setting_hosts_download">Download hosts file</string>
|
||||||
|
|
||||||
|
|
|
@ -314,6 +314,9 @@
|
||||||
<Preference
|
<Preference
|
||||||
android:key="hosts_import"
|
android:key="hosts_import"
|
||||||
android:title="@string/setting_hosts" />
|
android:title="@string/setting_hosts" />
|
||||||
|
<Preference
|
||||||
|
android:key="hosts_import_append"
|
||||||
|
android:title="@string/setting_hosts_append" />
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:defaultValue="https://www.netguard.me/hosts"
|
android:defaultValue="https://www.netguard.me/hosts"
|
||||||
android:hint="https://www.netguard.me/hosts"
|
android:hint="https://www.netguard.me/hosts"
|
||||||
|
|
|
@ -314,6 +314,9 @@
|
||||||
<Preference
|
<Preference
|
||||||
android:key="hosts_import"
|
android:key="hosts_import"
|
||||||
android:title="@string/setting_hosts" />
|
android:title="@string/setting_hosts" />
|
||||||
|
<Preference
|
||||||
|
android:key="hosts_import_append"
|
||||||
|
android:title="@string/setting_hosts_append" />
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:defaultValue="https://www.netguard.me/hosts"
|
android:defaultValue="https://www.netguard.me/hosts"
|
||||||
android:hint="https://www.netguard.me/hosts"
|
android:hint="https://www.netguard.me/hosts"
|
||||||
|
|
Loading…
Reference in New Issue