1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (C) 2019 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
17<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
18        android:layout_width="match_parent"
19        android:layout_height="wrap_content">
20    <LinearLayout android:layout_width="match_parent"
21            android:layout_height="wrap_content"
22            android:orientation="vertical"
23            android:padding="24dp">
24
25        <LinearLayout android:id="@+id/editor"
26                android:layout_width="match_parent"
27                android:layout_height="wrap_content"
28                android:orientation="vertical"
29                android:visibility="gone">
30
31            <TextView style="@style/vpn_label"
32                    android:text="@string/vpn_name"
33                    android:labelFor="@+id/name"/>
34            <EditText style="@style/vpn_value" android:id="@+id/name"
35                    android:inputType="textCapWords"/>
36
37            <TextView style="@style/vpn_label"
38                    android:text="@string/vpn_type"
39                    android:labelFor="@+id/type"/>
40            <Spinner style="@style/vpn_value"
41                     android:id="@+id/type"
42                    android:prompt="@string/vpn_type"
43                    android:entries="@array/vpn_types"/>
44
45            <TextView style="@style/vpn_label"
46                    android:text="@string/vpn_server"
47                    android:labelFor="@+id/server"/>
48            <EditText style="@style/vpn_value" android:id="@+id/server"/>
49
50            <CheckBox style="@style/vpn_value" android:id="@+id/mppe"
51                    android:text="@string/vpn_mppe"
52                    android:singleLine="false"
53                    android:visibility="gone"/>
54
55            <LinearLayout android:id="@+id/l2tp"
56                    android:layout_width="match_parent"
57                    android:layout_height="wrap_content"
58                    android:orientation="vertical"
59                    android:visibility="gone">
60                <TextView style="@style/vpn_label"
61                        android:text="@string/vpn_l2tp_secret"
62                        android:labelFor="@+id/l2tp_secret"/>
63                <EditText style="@style/vpn_value" android:id="@+id/l2tp_secret"
64                        android:password="true"
65                        android:hint="@string/vpn_not_used"/>
66            </LinearLayout>
67
68            <LinearLayout android:id="@+id/ipsec_psk"
69                    android:layout_width="match_parent"
70                    android:layout_height="wrap_content"
71                    android:orientation="vertical"
72                    android:visibility="gone">
73                <TextView style="@style/vpn_label"
74                        android:text="@string/vpn_ipsec_identifier"
75                        android:labelFor="@+id/ipsec_identifier"/>
76                <EditText style="@style/vpn_value" android:id="@+id/ipsec_identifier"
77                        android:hint="@string/vpn_not_used"/>
78
79                <TextView style="@style/vpn_label"
80                        android:text="@string/vpn_ipsec_secret"
81                        android:labelFor="@+id/ipsec_secret"/>
82                <EditText style="@style/vpn_value" android:id="@+id/ipsec_secret"
83                        android:password="true"/>
84            </LinearLayout>
85
86            <LinearLayout android:id="@+id/ipsec_user"
87                    android:layout_width="match_parent"
88                    android:layout_height="wrap_content"
89                    android:orientation="vertical"
90                    android:visibility="gone">
91                <TextView style="@style/vpn_label"
92                        android:text="@string/vpn_ipsec_user_cert"
93                        android:labelFor="@+id/ipsec_user_cert"/>
94                <Spinner style="@style/vpn_value" android:id="@+id/ipsec_user_cert"
95                        android:prompt="@string/vpn_ipsec_user_cert" />
96            </LinearLayout>
97
98            <LinearLayout android:id="@+id/ipsec_peer"
99                    android:layout_width="match_parent"
100                    android:layout_height="wrap_content"
101                    android:orientation="vertical"
102                    android:visibility="gone">
103                <TextView style="@style/vpn_label"
104                        android:text="@string/vpn_ipsec_ca_cert"
105                        android:labelFor="@+id/ipsec_ca_cert"/>
106                <Spinner style="@style/vpn_value" android:id="@+id/ipsec_ca_cert"
107                        android:prompt="@string/vpn_ipsec_ca_cert" />
108
109                <TextView style="@style/vpn_label"
110                        android:text="@string/vpn_ipsec_server_cert"
111                        android:labelFor="@+id/ipsec_server_cert"/>
112                <Spinner style="@style/vpn_value" android:id="@+id/ipsec_server_cert"
113                        android:prompt="@string/vpn_ipsec_server_cert" />
114            </LinearLayout>
115
116            <CheckBox style="@style/vpn_value" android:id="@+id/show_options"
117                    android:singleLine="false"
118                    android:text="@string/vpn_show_options"/>
119        </LinearLayout>
120
121        <LinearLayout android:id="@+id/options"
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_search_domains"
128                    android:labelFor="@+id/search_domains"/>
129            <EditText style="@style/vpn_value" android:id="@+id/search_domains"
130                    android:hint="@string/vpn_not_used"/>
131
132            <TextView style="@style/vpn_label"
133                    android:text="@string/vpn_dns_servers"
134                    android:labelFor="@+id/dns_servers"/>
135            <EditText style="@style/vpn_value" android:id="@+id/dns_servers"
136                    android:hint="@string/vpn_not_used"/>
137
138            <TextView style="@style/vpn_label"
139                    android:text="@string/vpn_routes"
140                    android:labelFor="@+id/routes"/>
141            <EditText style="@style/vpn_value" android:id="@+id/routes"
142                    android:hint="@string/vpn_not_used"/>
143
144            <TextView android:id="@+id/vpn_proxy_settings_title"
145                      style="@style/vpn_label"
146                      android:text="@string/proxy_settings_title"
147                      android:labelFor="@+id/vpn_proxy_settings" />
148
149            <Spinner android:id="@+id/vpn_proxy_settings"
150                     style="@style/vpn_value"
151                     android:prompt="@string/proxy_settings_title"
152                     android:entries="@array/vpn_proxy_settings" />
153
154            <LinearLayout
155                android:id="@+id/vpn_proxy_fields"
156                android:layout_width="match_parent"
157                android:layout_height="wrap_content"
158                android:orientation="vertical"
159                android:visibility="gone" >
160
161                <TextView
162                    style="@style/vpn_label"
163                    android:text="@string/proxy_hostname_label"
164                    android:labelFor="@+id/vpn_proxy_host" />
165
166                <EditText
167                    android:id="@+id/vpn_proxy_host"
168                    style="@style/vpn_value"
169                    android:hint="@string/proxy_hostname_hint"
170                    android:inputType="textNoSuggestions" />
171
172                <TextView
173                    style="@style/vpn_label"
174                    android:text="@string/proxy_port_label"
175                    android:labelFor="@+id/vpn_proxy_port" />
176
177                <EditText
178                    android:id="@+id/vpn_proxy_port"
179                    style="@style/vpn_value"
180                    android:hint="@string/proxy_port_hint"
181                    android:inputType="number" />
182            </LinearLayout>
183        </LinearLayout>
184
185        <LinearLayout android:id="@+id/login"
186                android:layout_width="match_parent"
187                android:layout_height="wrap_content"
188                android:orientation="vertical"
189                android:animateLayoutChanges="true">
190
191            <TextView style="@style/vpn_label"
192                    android:text="@string/vpn_username"
193                    android:labelFor="@+id/username"/>
194            <EditText style="@style/vpn_value" android:id="@+id/username"/>
195
196            <TextView style="@style/vpn_label"
197                    android:text="@string/vpn_password"
198                    android:labelFor="@+id/password"/>
199            <EditText style="@style/vpn_value" android:id="@+id/password"
200                    android:password="true"/>
201
202            <CheckBox style="@style/vpn_value" android:id="@+id/save_login"
203                    android:singleLine="false"
204                    android:text="@string/vpn_save_login"/>
205            <CheckBox style="@style/vpn_value" android:id="@+id/always_on_vpn"
206                android:singleLine="false"
207                android:text="@string/vpn_menu_lockdown"/>
208            <TextView style="@style/vpn_warning" android:id="@+id/always_on_invalid_reason"
209                android:singleLine="false"
210                android:visibility="gone"/>
211        </LinearLayout>
212    </LinearLayout>
213</ScrollView>
214