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

Commit 20ddd1c5 authored by Robin Lee's avatar Robin Lee
Browse files

Include login/alwayson in legacy VPN editor dialog

A little more consistent with the new app VPNs' dialogs. To make this
work it was also necessary to restart the lockdown VPN every time it is
edited, which makes sense because the expected action after editing a
VPN is that it reconnects with the new settings.

Bug: 28072644
Change-Id: I4b6a6f0a6ed96d2ec6f62889fdae4abb60d0646c
parent 65996601
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -119,8 +119,7 @@
        <LinearLayout android:id="@+id/login"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:visibility="gone">
                android:orientation="vertical">

            <TextView style="@style/vpn_label" android:text="@string/vpn_username"/>
            <EditText style="@style/vpn_value" android:id="@+id/username"/>
+9 −4
Original line number Diff line number Diff line
@@ -170,6 +170,9 @@ class ConfigDialog extends AlertDialog implements TextWatcher,
            // Show type-specific fields.
            changeType(mProfile.type);

            // Hide 'save login' when we are editing.
            mSaveLogin.setVisibility(View.GONE);

            // Switch to advanced view immediately if any advanced options are on
            if (!mProfile.searchDomains.isEmpty() || !mProfile.dnsServers.isEmpty() ||
                    !mProfile.routes.isEmpty()) {
@@ -188,9 +191,6 @@ class ConfigDialog extends AlertDialog implements TextWatcher,
        } else {
            setTitle(context.getString(R.string.vpn_connect_to, mProfile.name));

            // Not editing, just show username and password.
            mView.findViewById(R.id.login).setVisibility(View.VISIBLE);

            // Create a button to connect the network.
            setButton(DialogInterface.BUTTON_POSITIVE,
                    context.getString(R.string.vpn_connect), mListener);
@@ -259,6 +259,7 @@ class ConfigDialog extends AlertDialog implements TextWatcher,
    public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
        if (compoundButton == mAlwaysOnVpn) {
            updateSaveLoginStatus();
            getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(validate(mEditing));
        }
    }

@@ -318,6 +319,9 @@ class ConfigDialog extends AlertDialog implements TextWatcher,
        if (!editing) {
            return mUsername.getText().length() != 0 && mPassword.getText().length() != 0;
        }
        if (mAlwaysOnVpn.isChecked() && !getProfile().isValidLockdownProfile()) {
            return false;
        }
        if (mName.getText().length() == 0 || mServer.getText().length() == 0 ||
                !validateAddresses(mDnsServers.getText().toString(), false) ||
                !validateAddresses(mRoutes.getText().toString(), true)) {
@@ -441,7 +445,8 @@ class ConfigDialog extends AlertDialog implements TextWatcher,
                break;
        }

        profile.saveLogin = mSaveLogin.isChecked();
        final boolean hasLogin = !profile.username.isEmpty() || !profile.password.isEmpty();
        profile.saveLogin = mSaveLogin.isChecked() || (mEditing && hasLogin);
        return profile;
    }
}
+3 −6
Original line number Diff line number Diff line
@@ -152,12 +152,9 @@ public class ConfigDialogFragment extends DialogFragment implements
                return;
            }

            // Update only if lockdown vpn has been changed
            if (!VpnUtils.isVpnLockdown(profile.key)) {
            final ConnectivityManager conn = ConnectivityManager.from(getActivity());
            conn.setAlwaysOnVpnPackageForUser(UserHandle.myUserId(), null);
            VpnUtils.setLockdownVpn(getContext(), profile.key);
            }
        } else {
            // update only if lockdown vpn has been changed
            if (VpnUtils.isVpnLockdown(profile.key)) {