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