1<?xml version="1.0" encoding="utf-8"?>
2<!--
3  ~ Copyright (C) 2021 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<!--
19  ~ A lot of content in this file is identical to grant_permissions.xml
20  ~ Be sure to update both files when making changes.
21  -->
22
23<!-- In (hopefully very rare) case dialog is too high: allow scrolling -->
24<ScrollView
25    xmlns:android="http://schemas.android.com/apk/res/android"
26    android:layout_width="match_parent"
27    android:layout_height="match_parent"
28    style="@style/PermissionGrantScrollView">
29
30    <LinearLayout
31        android:id="@+id/grant_singleton"
32        android:importantForAccessibility="no"
33        android:focusable="false"
34        style="@style/PermissionGrantSingleton">
35
36        <!-- The dialog -->
37        <LinearLayout
38            android:id="@+id/grant_dialog"
39            android:theme="@style/Theme.PermissionGrantDialog"
40            android:importantForAccessibility="no"
41            android:focusable="false"
42            style="@style/PermissionGrantDialogMaterial3">
43
44            <LinearLayout
45                android:id="@+id/content_container"
46                style="@style/PermissionGrantContent">
47
48                <LinearLayout
49                    style="@style/PermissionGrantDescription">
50
51                    <ImageView
52                        android:id="@+id/permission_icon"
53                        style="@style/PermissionGrantTitleIconMaterial3" />
54
55                    <TextView
56                        android:id="@+id/permission_message"
57                        android:accessibilityHeading="true"
58                        style="@style/PermissionGrantTitleMessage" />
59
60                </LinearLayout>
61
62                <TextView
63                    android:id="@+id/detail_message"
64                    style="@style/PermissionGrantDetailMessage" />
65
66            </LinearLayout>
67
68            <!-- permission rationale  -->
69            <LinearLayout
70                android:id="@+id/permission_rationale_container"
71                style="@style/PermissionGrantPermissionRationaleContent">
72
73                <ImageView
74                    android:id="@+id/permission_rationale_icon"
75                    android:importantForAccessibility="no"
76                    android:src="@drawable/ic_shield_exclamation_outline"
77                    style="@style/PermissionGrantPermissionRationaleIcon" />
78
79                <TextView
80                    android:id="@+id/permission_rationale_message"
81                    style="@style/PermissionGrantPermissionRationaleMessage" />
82
83                <ImageView
84                    android:id="@+id/permission_rationale_more_info_icon"
85                    android:importantForAccessibility="no"
86                    android:src="@drawable/ic_more_info_arrow"
87                    style="@style/PermissionGrantPermissionRationaleMoreInfoIcon" />
88
89            </LinearLayout>
90
91            <!-- location (precise/approximate) animations -->
92            <LinearLayout
93                android:layout_width="match_parent"
94                android:layout_height="wrap_content"
95                android:id="@+id/permission_location_accuracy">
96
97                <RadioGroup
98                    android:id="@+id/permission_location_accuracy_radio_group"
99                    style="@style/PermissionLocationAccuracyRadioGroupMaterial3">
100
101                    <RadioButton
102                        android:id="@+id/permission_location_accuracy_radio_fine"
103                        android:text="@string/permgrouprequest_finelocation_imagetext"
104                        style="@style/PermissionLocationAccuracyRadioFine"/>
105
106                    <RadioButton
107                        android:id="@+id/permission_location_accuracy_radio_coarse"
108                        android:text="@string/permgrouprequest_coarselocation_imagetext"
109                        style="@style/PermissionLocationAccuracyRadioCoarse" />
110                </RadioGroup>
111
112                <ImageView
113                    android:id="@+id/permission_location_accuracy_fine_only"
114                    android:contentDescription="@string/precise_image_description"
115                    style="@style/PermissionLocationAccuracyFineImageViewMaterial3" />
116
117                <ImageView
118                    android:id="@+id/permission_location_accuracy_coarse_only"
119                    android:contentDescription="@string/approximate_image_description"
120                    style="@style/PermissionLocationAccuracyCoarseImageViewMaterial3" />
121
122            </LinearLayout>
123
124            <!-- Buttons on bottom of dialog -->
125            <LinearLayout
126                style="@style/PermissionGrantButtonListMaterial3">
127
128                <Space
129                    style="@style/PermissionGrantButtonBarSpace"/>
130
131                <com.android.permissioncontroller.permission.ui.widget.SecureButton
132                    android:id="@+id/permission_allow_button"
133                    android:text="@string/grant_dialog_button_allow"
134                    style="@style/PermissionGrantButtonAllowMaterial3" />
135
136                <com.android.permissioncontroller.permission.ui.widget.SecureButton
137                    android:id="@+id/permission_allow_foreground_only_button"
138                    android:text="@string/grant_dialog_button_allow_foreground"
139                    style="@style/PermissionGrantButtonAllowForegroundMaterial3" />
140
141                <com.android.permissioncontroller.permission.ui.widget.SecureButton
142                    android:id="@+id/permission_allow_one_time_button"
143                    android:text="@string/grant_dialog_button_allow_one_time"
144                    style="@style/PermissionGrantButtonAllowOneTimeMaterial3" />
145
146                <com.android.permissioncontroller.permission.ui.widget.SecureButton
147                    android:id="@+id/permission_allow_selected_button"
148                    android:text="@string/grant_dialog_button_allow_limited_access"
149                    style="@style/PermissionGrantButtonAllowSelectedMaterial3" />
150
151                <com.android.permissioncontroller.permission.ui.widget.SecureButton
152                    android:id="@+id/permission_allow_all_button"
153                    android:text="@string/grant_dialog_button_allow_all"
154                    style="@style/PermissionGrantButtonAllowAllMaterial3" />
155
156                <com.android.permissioncontroller.permission.ui.widget.SecureButton
157                    android:id="@+id/permission_deny_button"
158                    android:text="@string/grant_dialog_button_deny"
159                    style="@style/PermissionGrantButtonDenyMaterial3" />
160
161                <com.android.permissioncontroller.permission.ui.widget.SecureButton
162                    android:id="@+id/permission_deny_and_dont_ask_again_button"
163                    android:text="@string/grant_dialog_button_deny"
164                    style="@style/PermissionGrantButtonDenyMaterial3" />
165
166                <com.android.permissioncontroller.permission.ui.widget.SecureButton
167                    android:id="@+id/permission_no_upgrade_button"
168                    android:text="@string/grant_dialog_button_no_upgrade"
169                    style="@style/PermissionGrantButtonNoUpgradeMaterial3" />
170
171                <com.android.permissioncontroller.permission.ui.widget.SecureButton
172                    android:id="@+id/permission_no_upgrade_and_dont_ask_again_button"
173                    android:text="@string/grant_dialog_button_no_upgrade"
174                    style="@style/PermissionGrantButtonNoUpgradeMaterial3" />
175
176                <com.android.permissioncontroller.permission.ui.widget.SecureButton
177                    android:id="@+id/permission_no_upgrade_one_time_button"
178                    android:text="@string/grant_dialog_button_no_upgrade_one_time"
179                    style="@style/PermissionGrantButtonNoUpgradeMaterial3" />
180
181                <com.android.permissioncontroller.permission.ui.widget.SecureButton
182                    android:id="@+id/permission_no_upgrade_one_time_and_dont_ask_again_button"
183                    android:text="@string/grant_dialog_button_no_upgrade_one_time"
184                    style="@style/PermissionGrantButtonNoUpgradeMaterial3" />
185
186                <com.android.permissioncontroller.permission.ui.widget.SecureButton
187                    android:id="@+id/permission_dont_allow_more_selected_button"
188                    android:text="@string/grant_dialog_button_dont_select_more"
189                    style="@style/PermissionGrantButtonDontAllowMoreMaterial3" />
190
191            </LinearLayout>
192
193            <com.android.permissioncontroller.permission.ui.v33.widget.SafetyProtectionSectionView
194                android:layout_width="wrap_content"
195                android:layout_height="wrap_content"
196                android:layout_marginTop="0dp"
197                android:layout_marginBottom="20dp"
198                android:layout_gravity="center" />
199        </LinearLayout>
200    </LinearLayout>
201</ScrollView>
202