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