Check for being set as always-on VPN

This commit is contained in:
M66B 2018-10-07 06:22:28 +00:00
parent 35f9b471ad
commit 0fbc5ab800
2 changed files with 15 additions and 7 deletions

View File

@ -33,15 +33,15 @@ import android.net.Uri;
import android.net.VpnService;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.provider.Settings;
import android.support.annotation.NonNull;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v4.graphics.drawable.DrawableCompat;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.app.AlertDialog;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.SearchView;
@ -194,11 +194,18 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences
if (isChecked) {
String alwaysOn = Settings.Secure.getString(getContentResolver(), "always_on_vpn_app");
Log.i(TAG, "Always-on=" + alwaysOn);
if (!TextUtils.isEmpty(alwaysOn) && !getPackageName().equals(alwaysOn)) {
swEnabled.setChecked(false);
Toast.makeText(ActivityMain.this, R.string.msg_always_on, Toast.LENGTH_LONG).show();
return;
}
if (!TextUtils.isEmpty(alwaysOn))
if (getPackageName().equals(alwaysOn)) {
if (prefs.getBoolean("filter", false)) {
swEnabled.setChecked(false);
Toast.makeText(ActivityMain.this, R.string.msg_always_on_filter, Toast.LENGTH_LONG).show();
return;
}
} else {
swEnabled.setChecked(false);
Toast.makeText(ActivityMain.this, R.string.msg_always_on, Toast.LENGTH_LONG).show();
return;
}
try {
final Intent prepare = VpnService.prepare(ActivityMain.this);

View File

@ -224,6 +224,7 @@ Your internet traffic is not being sent to a remote VPN server.</string>
<string name="msg_on">Powering down your device with NetGuard enabled, will automatically start NetGuard on powering up your device</string>
<string name="msg_unavailable">This feature is not available on this Android version</string>
<string name="msg_always_on">Another VPN is set as Always-on VPN</string>
<string name="msg_always_on_filter">NetGuard both in filtering mode and set to Always-on VPN will block all traffic</string>
<string name="title_lockdown_enabled">Traffic is locked down</string>
<string name="title_unmetered_allowed">Unmetered traffic is allowed</string>