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