Merge "Include login/alwayson in legacy VPN editor dialog" into nyc-dev

This commit is contained in:
Robin Lee
2016-04-13 15:26:44 +00:00
committed by Android (Google) Code Review
3 changed files with 13 additions and 12 deletions

View File

@@ -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"/>

View File

@@ -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;
}
}

View File

@@ -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)) {