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:layout_toStartOf="@id/edit_photos_divider"
118                        android:text="@string/app_permission_button_allow_limited_access"
119                        android:layout_alignParentStart="true"
120                        style="@style/AppPermissionRadioButton"
121                        android:layout_marginTop="0dp" />
122
123                    <View
124                        android:id="@+id/edit_photos_divider"
125                        android:layout_width="1dp"
126                        android:layout_height="match_parent"
127                        android:layout_toStartOf="@id/edit_selected_button"
128                        android:layout_alignParentTop="true"
129                        android:layout_alignBottom="@+id/select_radio_button"
130                        android:layout_marginStart="16dp"
131                        android:layout_marginEnd="16dp"
132                        android:theme="@style/PreferenceDivider"/>
133
134                    <ImageButton
135                        android:id="@+id/edit_selected_button"
136                        android:layout_width="48dp"
137                        android:layout_height="48dp"
138                        android:layout_alignParentEnd="true"
139                        android:layout_centerVertical="true"
140                        android:contentDescription="@string/edit_photos_description"
141                        android:background="@null"
142                        android:src="@drawable/ic_edit"/>
143                </RelativeLayout>
144
145                <RadioButton
146                    android:id="@+id/ask_one_time_radio_button"
147                    android:text="@string/app_permission_button_ask"
148                    style="@style/AppPermissionRadioButton" />
149
150                <RadioButton
151                    android:id="@+id/ask_radio_button"
152                    android:text="@string/app_permission_button_ask"
153                    style="@style/AppPermissionRadioButton" />
154
155                <RadioButton
156                    android:id="@+id/deny_radio_button"
157                    android:text="@string/app_permission_button_deny"
158                    style="@style/AppPermissionRadioButton" />
159
160                <RadioButton
161                    android:id="@+id/deny_foreground_radio_button"
162                    android:text="@string/app_permission_button_deny"
163                    style="@style/AppPermissionRadioButton" />
164
165
166                <LinearLayout
167                    android:layout_width="match_parent"
168                    android:layout_height="wrap_content"
169                    android:id="@+id/location_accuracy"
170                    style="@style/AppPermissionLocationAccuracy">
171
172                    <LinearLayout
173                        android:duplicateParentState="true"
174                        style="@style/AppPermissionLocationAccuracyText">
175                        <TextView
176                            android:duplicateParentState="true"
177                            android:text="@string/app_permission_location_accuracy"
178                            style="@style/AppPermissionLocationAccuracyTitle" />
179                        <TextView
180                            android:duplicateParentState="true"
181                            android:text="@string/app_permission_location_accuracy_subtitle"
182                            style="@style/AppPermissionLocationAccuracySubtitle" />
183                    </LinearLayout>
184
185                    <Switch
186                        android:id="@+id/location_accuracy_switch"
187                        android:checked="true"
188                        android:duplicateParentState="true"
189                        style="@style/AppPermissionLocationAccuracySwitch" />
190
191                </LinearLayout>
192
193                <LinearLayout
194                    android:layout_width="match_parent"
195                    android:layout_height="wrap_content"
196                    android:orientation="horizontal">
197
198                    <TextView
199                        android:id="@+id/permission_details"
200                        style="@style/AppPermissionDetails"
201                        android:gravity="start"
202                        android:textAlignment="viewStart"/>
203
204                    <LinearLayout
205                        android:id="@+id/two_target_divider"
206                        style="@style/AppPermissionTwoTargetDivider">
207                        <View
208                            android:layout_width="1dp"
209                            android:layout_height="match_parent"
210                            android:background="@drawable/list_divider_dark" />
211                    </LinearLayout>
212
213                    <LinearLayout
214                        android:id="@+id/widget_frame"
215                        style="@style/AppPermissionWidgetFrame" />
216
217                </LinearLayout>
218
219            </LinearLayout>
220
221            <LinearLayout
222                style="@style/AppPermissionFooter">
223
224                <TextView
225                    android:id="@+id/footer_link_1"
226                    android:layout_width="wrap_content"
227                    android:layout_height="wrap_content"
228                    android:clickable="true"
229                    style="@style/AppPermissionFooterLink" />
230
231                <TextView
232                    android:id="@+id/footer_link_2"
233                    android:layout_width="wrap_content"
234                    android:layout_height="wrap_content"
235                    android:clickable="true"
236                    style="@style/AppPermissionFooterLink" />
237
238                <TextView
239                    android:id="@+id/footer_storage_special_app_access"
240                    android:clickable="false"
241                    android:layout_width="wrap_content"
242                    android:layout_height="wrap_content"
243                    android:drawableLeft="@drawable/ic_info_outline"
244                    style="@style/AppPermissionFooterTextWithIcon" />
245
246            </LinearLayout>
247
248            <LinearLayout
249                style="@style/AppPermissionFooter">
250
251                <ImageView
252                    android:id="@+id/app_additional_info_icon"
253                    android:clickable="false"
254                    android:src="@drawable/ic_info_outline"
255                    android:layout_marginBottom="16dp"
256                    android:layout_marginStart="24dp"
257                    style="@style/ImageViewIcon" />
258
259                <TextView
260                    android:id="@+id/app_additional_info_text"
261                    android:layout_width="wrap_content"
262                    android:layout_height="wrap_content"
263                    android:paddingStart="24dp"
264                    android:paddingEnd="24dp"
265                    android:clickable="true"
266                    android:textSize="14sp"
267                    android:lineHeight="20sp"
268                    style="@style/AppPermissionFooter" />
269
270            </LinearLayout>
271
272        </LinearLayout>
273
274    </androidx.core.widget.NestedScrollView>
275
276</LinearLayout>
277