1<?xml version="1.0" encoding="utf-8"?> 2<!-- Copyright (C) 2011 The Android Open Source Project 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15--> 16<LinearLayout 17 xmlns:android="http://schemas.android.com/apk/res/android" 18 xmlns:app="http://schemas.android.com/apk/res-auto" 19 android:theme="@style/Theme.Network" 20 android:layout_width="match_parent" 21 android:layout_height="wrap_content" 22 android:orientation="vertical" 23 android:paddingTop="0dp" 24 android:paddingLeft="24dp" 25 android:paddingRight="24dp" > 26 <TextView 27 android:layout_width="match_parent" 28 android:layout_height="wrap_content" 29 android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small" 30 android:id="@+id/dialog_alert_subtitle" 31 android:text="@string/vpn_insecure_dialog_subtitle" 32 android:textColor="?android:attr/colorError" 33 android:visibility="gone" 34 android:includeFontPadding="false" 35 android:padding="0dp" /> 36 37 <ScrollView 38 android:layout_width="match_parent" 39 android:layout_height="wrap_content"> 40 <LinearLayout android:layout_width="match_parent" 41 android:layout_height="wrap_content" 42 android:orientation="vertical" 43 android:paddingTop="24dp"> 44 45 <LinearLayout android:id="@+id/editor" 46 android:layout_width="match_parent" 47 android:layout_height="wrap_content" 48 android:orientation="vertical" 49 android:visibility="gone"> 50 51 <com.google.android.material.textfield.TextInputLayout 52 style="@style/vpn_input_label" 53 android:id="@+id/name_layout" 54 android:hint="@string/vpn_name" 55 app:endIconMode="clear_text" 56 app:helperTextEnabled="true" 57 app:helperText="@string/vpn_field_required"> 58 <com.google.android.material.textfield.TextInputEditText 59 style="@style/vpn_value" 60 android:id="@+id/name" 61 android:inputType="textCapWords"/> 62 </com.google.android.material.textfield.TextInputLayout> 63 64 <TextView style="@style/vpn_label" 65 android:text="@string/vpn_type" 66 android:labelFor="@+id/type"/> 67 <Spinner style="@style/vpn_value" 68 android:id="@+id/type" 69 android:prompt="@string/vpn_type" 70 android:entries="@array/vpn_types"/> 71 72 <com.google.android.material.textfield.TextInputLayout 73 style="@style/vpn_input_label" 74 android:id="@+id/server_layout" 75 android:hint="@string/vpn_server" 76 app:endIconMode="clear_text" 77 app:helperTextEnabled="true" 78 app:helperText="@string/vpn_field_required"> 79 <com.google.android.material.textfield.TextInputEditText 80 style="@style/vpn_value" 81 android:id="@+id/server"/> 82 </com.google.android.material.textfield.TextInputLayout> 83 84 <LinearLayout android:id="@+id/options_ipsec_identity" 85 android:layout_width="match_parent" 86 android:layout_height="wrap_content" 87 android:orientation="vertical" 88 android:visibility="gone"> 89 <com.google.android.material.textfield.TextInputLayout 90 style="@style/vpn_input_label" 91 android:id="@+id/ipsec_identifier_layout" 92 android:hint="@string/vpn_ipsec_identifier" 93 app:endIconMode="clear_text" 94 app:helperTextEnabled="true" 95 app:helperText="@string/vpn_field_required"> 96 <com.google.android.material.textfield.TextInputEditText 97 style="@style/vpn_value" 98 android:id="@+id/ipsec_identifier"/> 99 </com.google.android.material.textfield.TextInputLayout> 100 </LinearLayout> 101 102 <LinearLayout android:id="@+id/ipsec_psk" 103 android:layout_width="match_parent" 104 android:layout_height="wrap_content" 105 android:orientation="vertical" 106 android:visibility="gone"> 107 <com.google.android.material.textfield.TextInputLayout 108 style="@style/vpn_input_label" 109 android:id="@+id/ipsec_secret_layout" 110 android:hint="@string/vpn_ipsec_secret" 111 app:endIconMode="password_toggle" 112 app:helperTextEnabled="true" 113 app:helperText="@string/vpn_field_required"> 114 <com.google.android.material.textfield.TextInputEditText 115 style="@style/vpn_value" 116 android:id="@+id/ipsec_secret" 117 android:inputType="textPassword"/> 118 </com.google.android.material.textfield.TextInputLayout> 119 </LinearLayout> 120 121 <LinearLayout android:id="@+id/ipsec_user" 122 android:layout_width="match_parent" 123 android:layout_height="wrap_content" 124 android:orientation="vertical" 125 android:visibility="gone"> 126 <TextView style="@style/vpn_label" 127 android:text="@string/vpn_ipsec_user_cert" 128 android:labelFor="@+id/ipsec_user_cert"/> 129 <Spinner style="@style/vpn_value" 130 android:id="@+id/ipsec_user_cert" 131 android:prompt="@string/vpn_ipsec_user_cert" /> 132 </LinearLayout> 133 134 <LinearLayout android:id="@+id/ipsec_peer" 135 android:layout_width="match_parent" 136 android:layout_height="wrap_content" 137 android:orientation="vertical" 138 android:visibility="gone"> 139 <TextView style="@style/vpn_label" 140 android:text="@string/vpn_ipsec_ca_cert" 141 android:labelFor="@+id/ipsec_ca_cert"/> 142 <Spinner style="@style/vpn_value" 143 android:id="@+id/ipsec_ca_cert" 144 android:prompt="@string/vpn_ipsec_ca_cert" /> 145 146 <TextView style="@style/vpn_label" 147 android:text="@string/vpn_ipsec_server_cert" 148 android:labelFor="@+id/ipsec_server_cert"/> 149 <Spinner style="@style/vpn_value" 150 android:id="@+id/ipsec_server_cert" 151 android:prompt="@string/vpn_ipsec_server_cert" /> 152 </LinearLayout> 153 154 <CheckBox style="@style/vpn_value" 155 android:id="@+id/show_options" 156 android:text="@string/vpn_show_options"/> 157 </LinearLayout> 158 159 <LinearLayout android:id="@+id/options" 160 android:layout_width="match_parent" 161 android:layout_height="wrap_content" 162 android:orientation="vertical" 163 android:visibility="gone"> 164 165 <TextView android:id="@+id/vpn_proxy_settings_title" 166 style="@style/vpn_label" 167 android:text="@string/proxy_settings_title" 168 android:labelFor="@+id/vpn_proxy_settings" /> 169 170 <Spinner android:id="@+id/vpn_proxy_settings" 171 style="@style/vpn_value" 172 android:prompt="@string/proxy_settings_title" 173 android:entries="@array/vpn_proxy_settings" /> 174 175 <LinearLayout 176 android:id="@+id/vpn_proxy_fields" 177 android:layout_width="match_parent" 178 android:layout_height="wrap_content" 179 android:orientation="vertical" 180 android:visibility="gone" > 181 182 <com.google.android.material.textfield.TextInputLayout 183 style="@style/vpn_input_label" 184 android:id="@+id/vpn_proxy_host_layout" 185 android:hint="@string/proxy_hostname_label" 186 app:endIconMode="clear_text"> 187 <com.google.android.material.textfield.TextInputEditText 188 style="@style/vpn_value" 189 android:id="@+id/vpn_proxy_host" 190 android:inputType="textNoSuggestions"/> 191 </com.google.android.material.textfield.TextInputLayout> 192 193 <com.google.android.material.textfield.TextInputLayout 194 style="@style/vpn_input_label" 195 android:id="@+id/vpn_proxy_port_layout" 196 android:hint="@string/proxy_port_label" 197 app:endIconMode="clear_text"> 198 <com.google.android.material.textfield.TextInputEditText 199 style="@style/vpn_value" 200 android:id="@+id/vpn_proxy_port" 201 android:inputType="number"/> 202 </com.google.android.material.textfield.TextInputLayout> 203 </LinearLayout> 204 </LinearLayout> 205 206 <LinearLayout android:id="@+id/userpass" 207 android:layout_width="match_parent" 208 android:layout_height="wrap_content" 209 android:orientation="vertical"> 210 211 <com.google.android.material.textfield.TextInputLayout 212 style="@style/vpn_input_label" 213 android:id="@+id/username_layout" 214 android:hint="@string/vpn_username_optional" 215 app:endIconMode="clear_text"> 216 <com.google.android.material.textfield.TextInputEditText 217 style="@style/vpn_value" 218 android:id="@+id/username"/> 219 </com.google.android.material.textfield.TextInputLayout> 220 221 <com.google.android.material.textfield.TextInputLayout 222 style="@style/vpn_input_label" 223 android:id="@+id/password_layout" 224 android:hint="@string/vpn_password_optional" 225 app:endIconMode="password_toggle"> 226 <com.google.android.material.textfield.TextInputEditText 227 style="@style/vpn_value" 228 android:id="@+id/password" 229 android:inputType="textPassword"/> 230 </com.google.android.material.textfield.TextInputLayout> 231 232 <CheckBox style="@style/vpn_value" 233 android:id="@+id/save_login" 234 android:text="@string/vpn_save_login"/> 235 </LinearLayout> 236 237 <LinearLayout android:id="@+id/connect" 238 android:layout_width="match_parent" 239 android:layout_height="wrap_content" 240 android:orientation="vertical" 241 android:animateLayoutChanges="true"> 242 <CheckBox style="@style/vpn_value" 243 android:id="@+id/always_on_vpn" 244 android:text="@string/vpn_menu_lockdown"/> 245 <TextView style="@style/vpn_warning" 246 android:id="@+id/always_on_invalid_reason" 247 android:visibility="gone"/> 248 </LinearLayout> 249 </LinearLayout> 250 </ScrollView> 251</LinearLayout> 252