Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fcb0d74a authored by Victor Chang's avatar Victor Chang
Browse files

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

Change-Id: Iad285ff06abde71ef040cbb29f740bcf20c3bbb7
Fix: 29991174
parent 7a23b482
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -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;