1<?xml version="1.0" encoding="utf-8"?>
2<!--
3  Copyright (C) 2018 The Android Open Source Project
4
5  Licensed under the Apache License, Version 2.0 (the "License");
6  you may not use this file except in compliance with the License.
7  You may obtain a copy of the License at
8
9       http://www.apache.org/licenses/LICENSE-2.0
10
11  Unless required by applicable law or agreed to in writing, software
12  distributed under the License is distributed on an "AS IS" BASIS,
13  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  See the License for the specific language governing permissions and
15  limitations under the License.
16  -->
17
18<LinearLayout
19    xmlns:android="http://schemas.android.com/apk/res/android"
20    android:layout_width="match_parent"
21    android:layout_height="wrap_content"
22    android:orientation="vertical"
23    android:id="@+id/app_permission_root">
24
25    <androidx.core.widget.NestedScrollView
26        android:id="@+id/nested_scroll_view"
27        android:layout_width="match_parent"
28        android:layout_height="wrap_content"
29        android:clipChildren="false">
30
31        <LinearLayout
32            android:layout_width="match_parent"
33            android:layout_height="wrap_content"
34            style="@style/AppPermission">
35
36            <include layout="@layout/header_large" />
37
38            <LinearLayout
39                style="@style/AppPermissionSelection">
40
41                <LinearLayout
42                    android:id="@+id/app_permission_rationale_container"
43                    android:layout_width="match_parent"
44                    android:layout_height="wrap_content"
45                    style="@style/AppPermissionRationaleContainer">
46                    <TextView
47                        android:id="@+id/app_permission_rationale_message"
48                        android:text="@string/app_permission_rationale_message"
49                        style="@style/AppPermissionMessage" />
50
51                    <LinearLayout
52                        android:id="@+id/app_permission_rationale_content"
53                        android:layout_width="match_parent"
54                        android:layout_height="wrap_content"
55                        style="@style/AppPermissionRationaleContent" >
56
57                        <ImageView
58                            android:id="@+id/app_permission_rationale_icon"
59                            android:importantForAccessibility="no"
60                            android:src="@drawable/ic_shield_exclamation_outline"
61                            style="@style/AppPermissionRationaleIcon" />
62
63                        <LinearLayout
64                            android:layout_width="match_parent"
65                            android:layout_height="wrap_content"
66                            style="@style/AppPermissionRationaleTextContent">
67                            <TextView
68                                android:duplicateParentState="true"
69                                android:id="@+id/app_permission_rationale_title"
70                                android:text="@string/app_location_permission_rationale_title"
71                                style="@style/AppPermissionRationaleTitle" />
72                            <TextView
73                                android:duplicateParentState="true"
74                                android:id="@+id/app_permission_rationale_subtitle"
75                                android:text="@string/app_location_permission_rationale_subtitle"
76                                style="@style/AppPermissionRationaleSubtitle" />
77                        </LinearLayout>
78
79                    </LinearLayout>
80                </LinearLayout>
81
82                <TextView
83                    android:id="@+id/permission_message"
84                    style="@style/AppPermissionMessage" />
85
86                <FrameLayout
87                    android:id="@+id/allow_radio_button_frame"
88                    android:layout_width="match_parent"
89                    android:layout_height="match_parent">
90                    <RadioButton
91                        android:id="@+id/allow_radio_button"
92                        android:text="@string/app_permission_button_allow"
93                        android:clickable="false"
94                        android:focusable="false"
95                        style="@style/AppPermissionRadioButton" />
96                </FrameLayout>
97
98                <RadioButton
99                    android:id="@+id/allow_always_radio_button"
100                    android:text="@string/app_permission_button_allow_always"
101                    style="@style/AppPermissionRadioButton" />
102
103                <RadioButton
104                    android:id="@+id/allow_foreground_only_radio_button"
105                    android:text="@string/app_permission_button_allow_foreground"
106                    style="@style/AppPermissionRadioButton" />
107
108                <RelativeLayout
109                    android:id="@+id/radio_select_layout"
110                    android:orientation="horizontal"
111                    android:layout_width="match_parent"
112                    android:layout_marginTop="16dp"
113                    android:layout_height="wrap_content">
114
115                    <RadioButton
116                        android:id="@+id/select_radio_button"
117                        android:text="@string/app_permission_button_allow_limited_access"
118                        android:layout_alignParentStart="true"
119                        style="@style/AppPermissionRadioButton"
120                        android:layout_marginTop="0dp" />
121
122                    <View
123                        android:id="@+id/edit_photos_divider"
124                        android:layout_width="1dp"
125                        android:layout_height="match_parent"
126                        android:layout_toStartOf="@id/edit_selected_button"
127                        android:layout_alignParentTop="true"
128                        android:layout_alignBottom="@+id/select_radio_button"
129                        android:layout_marginStart="16dp"
130                        android:layout_marginEnd="16dp"
131                        android:theme="@style/PreferenceDivider"/>
132
133                    <ImageButton
134                        android:id="@+id/edit_selected_button"
135                        android:layout_width="48dp"
136                        android:layout_height="48dp"
137                        android:layout_alignParentEnd="true"
138                        android:layout_centerVertical="true"
139                        android:contentDescription="@string/edit_photos_description"
140                        android:background="@null"
141                        android:src="@drawable/ic_edit"/>
142                </RelativeLayout>
143
144                <RadioButton
145                    android:id="@+id/ask_one_time_radio_button"
146                    android:text="@string/app_permission_button_ask"
147                    style="@style/AppPermissionRadioButton" />
148
149                <RadioButton
150                    android:id="@+id/ask_radio_button"
151                    android:text="@string/app_permission_button_ask"
152                    style="@style/AppPermissionRadioButton" />
153
154                <RadioButton
155                    android:id="@+id/deny_radio_button"
156                    android:text="@string/app_permission_button_deny"
157                    style="@style/AppPermissionRadioButton" />
158
159                <RadioButton
160                    android:id="@+id/deny_foreground_radio_button"
161                    android:text="@string/app_permission_button_deny"
162                    style="@style/AppPermissionRadioButton" />
163
164
165                <LinearLayout
166                    android:layout_width="match_parent"
167                    android:layout_height="wrap_content"
168                    android:id="@+id/location_accuracy"
169                    style="@style/AppPermissionLocationAccuracy">
170
171                    <LinearLayout
172                        android:duplicateParentState="true"
173                        style="@style/AppPermissionLocationAccuracyText">
174                        <TextView
175                            android:duplicateParentState="true"
176                            android:text="@string/app_permission_location_accuracy"
177                            style="@style/AppPermissionLocationAccuracyTitle" />
178                        <TextView
179                            android:duplicateParentState="true"
180                            android:text="@string/app_permission_location_accuracy_subtitle"
181                            style="@style/AppPermissionLocationAccuracySubtitle" />
182                    </LinearLayout>
183
184                    <Switch
185                        android:id="@+id/location_accuracy_switch"
186                        android:checked="true"
187                        android:duplicateParentState="true"
188                        style="@style/AppPermissionLocationAccuracySwitch" />
189
190                </LinearLayout>
191
192                <LinearLayout
193                    android:layout_width="match_parent"
194                    android:layout_height="wrap_content"
195                    android:orientation="horizontal">
196
197                    <TextView
198                        android:id="@+id/permission_details"
199                        style="@style/AppPermissionDetails"
200                        android:gravity="start"
201                        android:textAlignment="viewStart"/>
202
203                    <LinearLayout
204                        android:id="@+id/two_target_divider"
205                        style="@style/AppPermissionTwoTargetDivider">
206                        <View
207                            android:layout_width="1dp"
208                            android:layout_height="match_parent"
209                            android:background="@drawable/list_divider_dark" />
210                    </LinearLayout>
211
212                    <LinearLayout
213                        android:id="@+id/widget_frame"
214                        style="@style/AppPermissionWidgetFrame" />
215
216                </LinearLayout>
217
218            </LinearLayout>
219
220            <LinearLayout
221                style="@style/AppPermissionFooter">
222
223                <TextView
224                    android:id="@+id/footer_link_1"
225                    android:layout_width="wrap_content"
226                    android:layout_height="wrap_content"
227                    android:clickable="true"
228                    style="@style/AppPermissionFooterLink" />
229
230                <TextView
231                    android:id="@+id/footer_link_2"
232                    android:layout_width="wrap_content"
233                    android:layout_height="wrap_content"
234                    android:clickable="true"
235                    style="@style/AppPermissionFooterLink" />
236
237                <TextView
238                    android:id="@+id/footer_storage_special_app_access"
239                    android:clickable="false"
240                    android:layout_width="wrap_content"
241                    android:layout_height="wrap_content"
242                    android:drawableLeft="@drawable/ic_info_outline"
243                    style="@style/AppPermissionFooterTextWithIcon" />
244
245            </LinearLayout>
246
247            <LinearLayout
248                style="@style/AppPermissionFooter">
249
250                <ImageView
251                    android:id="@+id/app_additional_info_icon"
252                    android:clickable="false"
253                    android:src="@drawable/ic_info_outline"
254                    android:layout_marginBottom="16dp"
255                    android:layout_marginStart="24dp"
256                    style="@style/ImageViewIcon" />
257
258                <TextView
259                    android:id="@+id/app_additional_info_text"
260                    android:layout_width="wrap_content"
261                    android:layout_height="wrap_content"
262                    android:paddingStart="24dp"
263                    android:paddingEnd="24dp"
264                    android:clickable="true"
265                    android:textSize="14sp"
266                    android:lineHeight="20sp"
267                    style="@style/AppPermissionFooter" />
268
269            </LinearLayout>
270
271        </LinearLayout>
272
273    </androidx.core.widget.NestedScrollView>
274
275</LinearLayout>
276