Files
packages_apps_Settings/res/layout/vpn_dialog.xml
Weng Su 7d9db6ffe9 Refine the "Edit VPN profile" dialog layout
- Limit the content layout height to leave enough height for the buttons at the bottom

Bug: 417389474
Flag: EXEMPT resource update only
Test: Manual testing

Change-Id: Idd66a1a3757b59b1bbea998fb17030541095acf6
2025-12-10 00:41:49 +09:00

256 lines
12 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2011 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:theme="@style/Theme.Network"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxHeight="@dimen/vpn_dialog_max_height"
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
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:paddingTop="24dp">
<LinearLayout android:id="@+id/editor"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<com.google.android.material.textfield.TextInputLayout
style="@style/vpn_input_label"
android:id="@+id/name_layout"
android:hint="@string/vpn_name"
app:endIconMode="clear_text"
app:helperTextEnabled="true"
app:helperText="@string/vpn_field_required">
<com.google.android.material.textfield.TextInputEditText
style="@style/vpn_value"
android:id="@+id/name"
android:inputType="textCapWords"/>
</com.google.android.material.textfield.TextInputLayout>
<TextView style="@style/vpn_label"
android:text="@string/vpn_type"
android:labelFor="@+id/type"/>
<Spinner style="@style/vpn_value"
android:id="@+id/type"
android:prompt="@string/vpn_type"
android:entries="@array/vpn_types"/>
<com.google.android.material.textfield.TextInputLayout
style="@style/vpn_input_label"
android:id="@+id/server_layout"
android:hint="@string/vpn_server"
app:endIconMode="clear_text"
app:helperTextEnabled="true"
app:helperText="@string/vpn_field_required">
<com.google.android.material.textfield.TextInputEditText
style="@style/vpn_value"
android:id="@+id/server"/>
</com.google.android.material.textfield.TextInputLayout>
<LinearLayout android:id="@+id/options_ipsec_identity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<com.google.android.material.textfield.TextInputLayout
style="@style/vpn_input_label"
android:id="@+id/ipsec_identifier_layout"
android:hint="@string/vpn_ipsec_identifier"
app:endIconMode="clear_text"
app:helperTextEnabled="true"
app:helperText="@string/vpn_field_required">
<com.google.android.material.textfield.TextInputEditText
style="@style/vpn_value"
android:id="@+id/ipsec_identifier"/>
</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>
<LinearLayout android:id="@+id/ipsec_psk"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<com.google.android.material.textfield.TextInputLayout
style="@style/vpn_input_label"
android:id="@+id/ipsec_secret_layout"
android:hint="@string/vpn_ipsec_secret"
app:endIconMode="password_toggle"
app:helperTextEnabled="true"
app:helperText="@string/vpn_field_required">
<com.google.android.material.textfield.TextInputEditText
style="@style/vpn_value"
android:id="@+id/ipsec_secret"
android:inputType="textPassword"/>
</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>
<LinearLayout android:id="@+id/ipsec_user"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<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"
android:prompt="@string/vpn_ipsec_user_cert" />
</LinearLayout>
<LinearLayout android:id="@+id/ipsec_peer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<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"
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"
android:prompt="@string/vpn_ipsec_server_cert" />
</LinearLayout>
<CheckBox style="@style/vpn_value"
android:id="@+id/show_options"
android:text="@string/vpn_show_options"/>
</LinearLayout>
<LinearLayout android:id="@+id/options"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
<TextView android:id="@+id/vpn_proxy_settings_title"
style="@style/vpn_label"
android:text="@string/proxy_settings_title"
android:labelFor="@+id/vpn_proxy_settings" />
<Spinner android:id="@+id/vpn_proxy_settings"
style="@style/vpn_value"
android:prompt="@string/proxy_settings_title"
android:entries="@array/vpn_proxy_settings" />
<LinearLayout
android:id="@+id/vpn_proxy_fields"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone" >
<com.google.android.material.textfield.TextInputLayout
style="@style/vpn_input_label"
android:id="@+id/vpn_proxy_host_layout"
android:hint="@string/proxy_hostname_label"
app:endIconMode="clear_text">
<com.google.android.material.textfield.TextInputEditText
style="@style/vpn_value"
android:id="@+id/vpn_proxy_host"
android:inputType="textNoSuggestions"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
style="@style/vpn_input_label"
android:id="@+id/vpn_proxy_port_layout"
android:hint="@string/proxy_port_label"
app:endIconMode="clear_text">
<com.google.android.material.textfield.TextInputEditText
style="@style/vpn_value"
android:id="@+id/vpn_proxy_port"
android:inputType="number"/>
</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout android:id="@+id/userpass"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.google.android.material.textfield.TextInputLayout
style="@style/vpn_input_label"
android:id="@+id/username_layout"
android:hint="@string/vpn_username_optional"
app:endIconMode="clear_text">
<com.google.android.material.textfield.TextInputEditText
style="@style/vpn_value"
android:id="@+id/username"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
style="@style/vpn_input_label"
android:id="@+id/password_layout"
android:hint="@string/vpn_password_optional"
app:endIconMode="password_toggle">
<com.google.android.material.textfield.TextInputEditText
style="@style/vpn_value"
android:id="@+id/password"
android:inputType="textPassword"/>
</com.google.android.material.textfield.TextInputLayout>
<CheckBox style="@style/vpn_value"
android:id="@+id/save_login"
android:text="@string/vpn_save_login"/>
</LinearLayout>
<LinearLayout
android:id="@+id/connect"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/vpn_dialog_margin_bottom"
android:orientation="vertical"
android:animateLayoutChanges="true">
<CheckBox
android:id="@+id/always_on_vpn"
style="@style/vpn_value"
android:text="@string/vpn_menu_lockdown"/>
<TextView
android:id="@+id/always_on_invalid_reason"
style="@style/vpn_warning"/>
</LinearLayout>
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>