Fix always-on is not turned off when user forgets vpn

Change-Id: Iad285ff06abde71ef040cbb29f740bcf20c3bbb7
Fix: 29991174
This commit is contained in:
Victor Chang
2016-07-06 18:27:55 +01:00
parent 7a23b48266
commit fcb0d74a3c

View File

@@ -80,7 +80,7 @@ public class AppManagementFragment extends SettingsPreferenceFragment
public void onForget() { public void onForget() {
// Unset always-on-vpn when forgetting the VPN // Unset always-on-vpn when forgetting the VPN
if (isVpnAlwaysOn()) { if (isVpnAlwaysOn()) {
setAlwaysOnVpnByUI(false); setAlwaysOnVpn(false);
} }
// Also dismiss and go back to VPN list // Also dismiss and go back to VPN list
finish(); finish();
@@ -187,14 +187,18 @@ public class AppManagementFragment extends SettingsPreferenceFragment
if (mUserId == UserHandle.USER_SYSTEM) { if (mUserId == UserHandle.USER_SYSTEM) {
VpnUtils.clearLockdownVpn(getContext()); VpnUtils.clearLockdownVpn(getContext());
} }
final boolean success = mConnectivityManager.setAlwaysOnVpnPackageForUser(mUserId, final boolean success = setAlwaysOnVpn(isEnabled);
isEnabled ? mPackageName : null, /* lockdownEnabled */ false);
if (isEnabled && (!success || !isVpnAlwaysOn())) { if (isEnabled && (!success || !isVpnAlwaysOn())) {
CannotConnectFragment.show(this, mVpnLabel); CannotConnectFragment.show(this, mVpnLabel);
} }
return success; return success;
} }
private boolean setAlwaysOnVpn(boolean isEnabled) {
return mConnectivityManager.setAlwaysOnVpnPackageForUser(mUserId,
isEnabled ? mPackageName : null, /* lockdownEnabled */ false);
}
private boolean checkTargetVersion() { private boolean checkTargetVersion() {
if (mPackageInfo == null || mPackageInfo.applicationInfo == null) { if (mPackageInfo == null || mPackageInfo.applicationInfo == null) {
return true; return true;