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

Commit 222dd911 authored by Jeremy Goldman's avatar Jeremy Goldman
Browse files

Legacy VPN Configuration Dialog includes error message if VPN is an

insecure type.

Screenshot: https://screenshot.googleplex.com/53pAJuhTDLJW4Em
Bug: 176821216
Test: atest SettingsUnitTests

Change-Id: I528d46654a39df04b647d6d0137aaf80e7adb05c
Merged-In: I528d46654a39df04b647d6d0137aaf80e7adb05c
(cherry picked from commit 5d92ad52)
parent 006b8db0
Loading
Loading
Loading
Loading
+217 −181
Original line number Diff line number Diff line
@@ -13,14 +13,31 @@
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:paddingTop="0dp"
    android:paddingLeft="24dp"
    android:paddingRight="24dp" >
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small"
        android:id="@+id/dialog_alert_subtitle"
        android:text="@string/vpn_insecure_dialog_subtitle"
        android:textColor="?android:attr/colorError"
        android:visibility="gone"
        android:includeFontPadding="false"
        android:padding="0dp" />

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    <ScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        <LinearLayout android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
            android:padding="24dp">
                android:paddingTop="24dp">

            <LinearLayout android:id="@+id/editor"
                    android:layout_width="match_parent"
@@ -31,7 +48,8 @@
                <TextView style="@style/vpn_label"
                        android:text="@string/vpn_name"
                        android:labelFor="@+id/name"/>
            <EditText style="@style/vpn_value" android:id="@+id/name"
                <EditText style="@style/vpn_value"
                        android:id="@+id/name"
                        android:inputType="textCapWords"/>

                <TextView style="@style/vpn_label"
@@ -45,9 +63,11 @@
                <TextView style="@style/vpn_label"
                        android:text="@string/vpn_server"
                        android:labelFor="@+id/server"/>
            <EditText style="@style/vpn_value" android:id="@+id/server"/>
                <EditText style="@style/vpn_value"
                        android:id="@+id/server"/>

            <CheckBox style="@style/vpn_value" android:id="@+id/mppe"
                <CheckBox style="@style/vpn_value"
                        android:id="@+id/mppe"
                        android:text="@string/vpn_mppe"
                        android:singleLine="false"
                        android:visibility="gone"/>
@@ -60,7 +80,8 @@
                    <TextView style="@style/vpn_label"
                            android:text="@string/vpn_l2tp_secret"
                            android:labelFor="@+id/l2tp_secret"/>
                <EditText style="@style/vpn_value" android:id="@+id/l2tp_secret"
                    <EditText style="@style/vpn_value"
                            android:id="@+id/l2tp_secret"
                            android:password="true"
                            android:hint="@string/vpn_not_used"/>
                </LinearLayout>
@@ -73,7 +94,8 @@
                    <TextView style="@style/vpn_label"
                            android:text="@string/vpn_ipsec_identifier"
                            android:labelFor="@+id/ipsec_identifier"/>
                <EditText style="@style/vpn_value" android:id="@+id/ipsec_identifier"
                    <EditText style="@style/vpn_value"
                            android:id="@+id/ipsec_identifier"
                            android:hint="@string/vpn_not_used"/>
                </LinearLayout>

@@ -85,7 +107,8 @@
                    <TextView style="@style/vpn_label"
                            android:text="@string/vpn_ipsec_secret"
                            android:labelFor="@+id/ipsec_secret"/>
                <EditText style="@style/vpn_value" android:id="@+id/ipsec_secret"
                    <EditText style="@style/vpn_value"
                            android:id="@+id/ipsec_secret"
                            android:password="true"/>
                </LinearLayout>

@@ -97,7 +120,8 @@
                    <TextView style="@style/vpn_label"
                            android:text="@string/vpn_ipsec_user_cert"
                            android:labelFor="@+id/ipsec_user_cert"/>
                <Spinner style="@style/vpn_value" android:id="@+id/ipsec_user_cert"
                    <Spinner style="@style/vpn_value"
                            android:id="@+id/ipsec_user_cert"
                            android:prompt="@string/vpn_ipsec_user_cert" />
                </LinearLayout>

@@ -109,17 +133,20 @@
                    <TextView style="@style/vpn_label"
                            android:text="@string/vpn_ipsec_ca_cert"
                            android:labelFor="@+id/ipsec_ca_cert"/>
                <Spinner style="@style/vpn_value" android:id="@+id/ipsec_ca_cert"
                    <Spinner style="@style/vpn_value"
                            android:id="@+id/ipsec_ca_cert"
                            android:prompt="@string/vpn_ipsec_ca_cert" />

                    <TextView style="@style/vpn_label"
                            android:text="@string/vpn_ipsec_server_cert"
                            android:labelFor="@+id/ipsec_server_cert"/>
                <Spinner style="@style/vpn_value" android:id="@+id/ipsec_server_cert"
                    <Spinner style="@style/vpn_value"
                            android:id="@+id/ipsec_server_cert"
                            android:prompt="@string/vpn_ipsec_server_cert" />
                </LinearLayout>

            <CheckBox style="@style/vpn_value" android:id="@+id/show_options"
                <CheckBox style="@style/vpn_value"
                        android:id="@+id/show_options"
                        android:singleLine="false"
                        android:text="@string/vpn_show_options"/>
            </LinearLayout>
@@ -136,19 +163,22 @@
                    <TextView style="@style/vpn_label"
                            android:text="@string/vpn_search_domains"
                            android:labelFor="@+id/search_domains"/>
                <EditText style="@style/vpn_value" android:id="@+id/search_domains"
                    <EditText style="@style/vpn_value"
                            android:id="@+id/search_domains"
                            android:hint="@string/vpn_not_used"/>

                    <TextView style="@style/vpn_label"
                            android:text="@string/vpn_dns_servers"
                            android:labelFor="@+id/dns_servers"/>
                <EditText style="@style/vpn_value" android:id="@+id/dns_servers"
                    <EditText style="@style/vpn_value"
                            android:id="@+id/dns_servers"
                            android:hint="@string/vpn_not_used"/>

                    <TextView style="@style/vpn_label"
                            android:text="@string/vpn_routes"
                            android:labelFor="@+id/routes"/>
                <EditText style="@style/vpn_value" android:id="@+id/routes"
                    <EditText style="@style/vpn_value"
                            android:id="@+id/routes"
                            android:hint="@string/vpn_not_used"/>
                </LinearLayout>

@@ -201,15 +231,18 @@
                <TextView style="@style/vpn_label"
                        android:text="@string/vpn_username"
                        android:labelFor="@+id/username"/>
            <EditText style="@style/vpn_value" android:id="@+id/username"/>
                <EditText style="@style/vpn_value"
                        android:id="@+id/username"/>

                <TextView style="@style/vpn_label"
                        android:text="@string/vpn_password"
                        android:labelFor="@+id/password"/>
            <EditText style="@style/vpn_value" android:id="@+id/password"
                <EditText style="@style/vpn_value"
                        android:id="@+id/password"
                        android:password="true"/>

            <CheckBox style="@style/vpn_value" android:id="@+id/save_login"
                <CheckBox style="@style/vpn_value"
                        android:id="@+id/save_login"
                        android:singleLine="false"
                        android:text="@string/vpn_save_login"/>
            </LinearLayout>
@@ -219,12 +252,15 @@
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    android:animateLayoutChanges="true">
            <CheckBox style="@style/vpn_value" android:id="@+id/always_on_vpn"
                <CheckBox style="@style/vpn_value"
                        android:id="@+id/always_on_vpn"
                        android:singleLine="false"
                        android:text="@string/vpn_menu_lockdown"/>
            <TextView style="@style/vpn_warning" android:id="@+id/always_on_invalid_reason"
                <TextView style="@style/vpn_warning"
                        android:id="@+id/always_on_invalid_reason"
                        android:singleLine="false"
                        android:visibility="gone"/>
            </LinearLayout>
        </LinearLayout>
    </ScrollView>
</LinearLayout>
+3 −0
Original line number Diff line number Diff line
@@ -7061,6 +7061,9 @@
        [CHAR LIMIT=40] -->
    <string name="vpn_require_connection_title">Require VPN connection?</string>
    <!-- Dialog subtitle warning for a VPN app that has an insecure type. [CHAR LIMIT=100]  -->
    <string name="vpn_insecure_dialog_subtitle">This VPN is not secure. Update to an IKEv2 VPN</string>
    <!-- Summary describing the always-on VPN feature. [CHAR LIMIT=NONE] -->
    <string name="vpn_lockdown_summary">Select a VPN profile to always remain connected to. Network traffic will only be allowed when connected to this VPN.</string>
    <!-- List item indicating that no always-on VPN is selected. [CHAR LIMIT=64] -->
+7 −1
Original line number Diff line number Diff line
@@ -204,10 +204,16 @@ class ConfigDialog extends AlertDialog implements TextWatcher,

            configureAdvancedOptionsVisibility();

            // Create a button to forget the profile if it has already been saved..
            if (mExists) {
                // Create a button to forget the profile if it has already been saved..
                setButton(DialogInterface.BUTTON_NEUTRAL,
                        context.getString(R.string.vpn_forget), mListener);

                // Display warning subtitle if the existing VPN is an insecure type...
                if (VpnProfile.isLegacyType(mProfile.type)) {
                    TextView subtitle = mView.findViewById(R.id.dialog_alert_subtitle);
                    subtitle.setVisibility(View.VISIBLE);
                }
            }

            // Create a button to save the profile.