From cdebe28c1529eb80f4ad55d91527db4aa2e071e8 Mon Sep 17 00:00:00 2001 From: Robin Lee Date: Tue, 3 May 2016 13:27:05 +0100 Subject: [PATCH] Add lockdownEnabled parameter to always-on VPN API Allows callers to opt-out of blockading network traffic during boot and on VPN app failure. Bug: 26694104 Change-Id: Ic2c25b79d8a17917025eb37be7de929fe156e2a3 --- src/com/android/settings/vpn2/AppDialogFragment.java | 2 +- src/com/android/settings/vpn2/AppManagementFragment.java | 3 ++- src/com/android/settings/vpn2/ConfigDialogFragment.java | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/vpn2/AppDialogFragment.java b/src/com/android/settings/vpn2/AppDialogFragment.java index 004ad809cfd..097001a39c2 100644 --- a/src/com/android/settings/vpn2/AppDialogFragment.java +++ b/src/com/android/settings/vpn2/AppDialogFragment.java @@ -138,7 +138,7 @@ public class AppDialogFragment extends DialogFragment implements AppDialog.Liste final int userId = UserHandle.getUserId(mPackageInfo.applicationInfo.uid); try { if (mPackageInfo.packageName.equals(getConnectedPackage(mService, userId))) { - mService.setAlwaysOnVpnPackage(userId, null); + mService.setAlwaysOnVpnPackage(userId, null, /* lockdownEnabled */ false); mService.prepareVpn(mPackageInfo.packageName, VpnConfig.LEGACY_VPN, userId); } } catch (RemoteException e) { diff --git a/src/com/android/settings/vpn2/AppManagementFragment.java b/src/com/android/settings/vpn2/AppManagementFragment.java index f8e30f9b892..8ad64d4ce17 100644 --- a/src/com/android/settings/vpn2/AppManagementFragment.java +++ b/src/com/android/settings/vpn2/AppManagementFragment.java @@ -176,7 +176,8 @@ public class AppManagementFragment extends SettingsPreferenceFragment if (mUserId == UserHandle.USER_SYSTEM) { VpnUtils.clearLockdownVpn(getContext()); } - mConnectivityManager.setAlwaysOnVpnPackageForUser(mUserId, isEnabled ? mPackageName : null); + mConnectivityManager.setAlwaysOnVpnPackageForUser(mUserId, isEnabled ? mPackageName : null, + /* lockdownEnabled */ false); if (isEnabled && !isVpnAlwaysOn()) { CannotConnectFragment.show(this, mVpnLabel); } diff --git a/src/com/android/settings/vpn2/ConfigDialogFragment.java b/src/com/android/settings/vpn2/ConfigDialogFragment.java index 5e4a7d97258..0dbaa9a3475 100644 --- a/src/com/android/settings/vpn2/ConfigDialogFragment.java +++ b/src/com/android/settings/vpn2/ConfigDialogFragment.java @@ -153,7 +153,8 @@ public class ConfigDialogFragment extends DialogFragment implements } final ConnectivityManager conn = ConnectivityManager.from(getActivity()); - conn.setAlwaysOnVpnPackageForUser(UserHandle.myUserId(), null); + conn.setAlwaysOnVpnPackageForUser(UserHandle.myUserId(), null, + /* lockdownEnabled */ false); VpnUtils.setLockdownVpn(getContext(), profile.key); } else { // update only if lockdown vpn has been changed