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 <RadioGroup 87 android:id="@+id/radiogroup" 88 android:animateLayoutChanges="true" 89 android:layout_width="match_parent" 90 android:layout_height="wrap_content"> 91 92 <RadioButton 93 android:id="@+id/allow_radio_button" 94 android:text="@string/app_permission_button_allow" 95 style="@style/AppPermissionRadioButton" /> 96 97 <RadioButton 98 android:id="@+id/allow_always_radio_button" 99 android:text="@string/app_permission_button_allow_always" 100 style="@style/AppPermissionRadioButton" /> 101 102 <RadioButton 103 android:id="@+id/allow_foreground_only_radio_button" 104 android:text="@string/app_permission_button_allow_foreground" 105 style="@style/AppPermissionRadioButton" /> 106 107 <RadioButton 108 android:id="@+id/select_radio_button" 109 android:text="@string/app_permission_button_ask" 110 style="@style/AppPermissionRadioButton" /> 111 112 <RadioButton 113 android:id="@+id/ask_one_time_radio_button" 114 android:text="@string/app_permission_button_ask" 115 style="@style/AppPermissionRadioButton" /> 116 117 <RadioButton 118 android:id="@+id/ask_radio_button" 119 android:text="@string/app_permission_button_ask" 120 style="@style/AppPermissionRadioButton" /> 121 122 <RadioButton 123 android:id="@+id/deny_radio_button" 124 android:text="@string/app_permission_button_deny" 125 style="@style/AppPermissionRadioButton" /> 126 127 <RadioButton 128 android:id="@+id/deny_foreground_radio_button" 129 android:text="@string/app_permission_button_deny" 130 style="@style/AppPermissionRadioButton" /> 131 132 </RadioGroup> 133 134 <LinearLayout 135 android:layout_width="match_parent" 136 android:layout_height="wrap_content" 137 android:id="@+id/location_accuracy" 138 style="@style/AppPermissionLocationAccuracy"> 139 140 <LinearLayout 141 android:duplicateParentState="true" 142 style="@style/AppPermissionLocationAccuracyText"> 143 <TextView 144 android:duplicateParentState="true" 145 android:text="@string/app_permission_location_accuracy" 146 style="@style/AppPermissionLocationAccuracyTitle" /> 147 <TextView 148 android:duplicateParentState="true" 149 android:text="@string/app_permission_location_accuracy_subtitle" 150 style="@style/AppPermissionLocationAccuracySubtitle" /> 151 </LinearLayout> 152 153 <Switch 154 android:id="@+id/location_accuracy_switch" 155 android:checked="true" 156 android:duplicateParentState="true" 157 style="@style/AppPermissionLocationAccuracySwitch" /> 158 159 </LinearLayout> 160 161 <LinearLayout 162 android:layout_width="match_parent" 163 android:layout_height="wrap_content" 164 android:orientation="horizontal"> 165 166 <TextView 167 android:id="@+id/permission_details" 168 style="@style/AppPermissionDetails" 169 android:gravity="start" 170 android:textAlignment="viewStart"/> 171 172 <LinearLayout 173 android:id="@+id/two_target_divider" 174 style="@style/AppPermissionTwoTargetDivider"> 175 <View 176 android:layout_width="1dp" 177 android:layout_height="match_parent" 178 android:background="@drawable/list_divider_dark" /> 179 </LinearLayout> 180 181 <LinearLayout 182 android:id="@+id/widget_frame" 183 style="@style/AppPermissionWidgetFrame" /> 184 185 </LinearLayout> 186 187 </LinearLayout> 188 189 <LinearLayout 190 style="@style/AppPermissionFooter"> 191 192 <TextView 193 android:id="@+id/footer_link_1" 194 android:layout_width="wrap_content" 195 android:layout_height="wrap_content" 196 android:clickable="true" 197 style="@style/AppPermissionFooterLink" /> 198 199 <TextView 200 android:id="@+id/footer_link_2" 201 android:layout_width="wrap_content" 202 android:layout_height="wrap_content" 203 android:clickable="true" 204 style="@style/AppPermissionFooterLink" /> 205 206 <TextView 207 android:id="@+id/footer_storage_special_app_access" 208 android:clickable="false" 209 android:layout_width="wrap_content" 210 android:layout_height="wrap_content" 211 android:drawableLeft="@drawable/ic_info_outline" 212 style="@style/AppPermissionFooterTextWithIcon" /> 213 214 </LinearLayout> 215 216 <LinearLayout 217 style="@style/AppPermissionFooter"> 218 219 <ImageView 220 android:id="@+id/app_additional_info_icon" 221 android:clickable="false" 222 android:src="@drawable/ic_info_outline" 223 android:layout_marginBottom="16dp" 224 android:layout_marginStart="24dp" 225 style="@style/ImageViewIcon" /> 226 227 <TextView 228 android:id="@+id/app_additional_info_text" 229 android:layout_width="wrap_content" 230 android:layout_height="wrap_content" 231 android:paddingStart="24dp" 232 android:paddingEnd="24dp" 233 android:clickable="true" 234 android:textSize="14sp" 235 android:lineHeight="20sp" 236 style="@style/AppPermissionFooter" /> 237 238 </LinearLayout> 239 240 </LinearLayout> 241 242 </androidx.core.widget.NestedScrollView> 243 244</LinearLayout> 245