1<?xml version="1.0" encoding="utf-8"?> 2<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:id="@+id/biometric_prompt_constraint_layout" 6 android:layout_width="match_parent" 7 android:layout_height="match_parent"> 8 9 <ImageView 10 android:id="@+id/background" 11 android:layout_width="0dp" 12 android:layout_height="0dp" 13 android:contentDescription="@string/cancel" 14 app:layout_constraintBottom_toBottomOf="parent" 15 app:layout_constraintEnd_toEndOf="parent" 16 app:layout_constraintStart_toStartOf="parent" 17 app:layout_constraintTop_toTopOf="parent" /> 18 19 <View 20 android:id="@+id/panel" 21 style="@style/AuthCredentialPanelStyle" 22 android:layout_width="0dp" 23 android:layout_height="0dp" 24 app:layout_constraintBottom_toBottomOf="parent" 25 app:layout_constraintEnd_toStartOf="@id/rightGuideline" 26 app:layout_constraintStart_toStartOf="@id/leftGuideline" 27 app:layout_constraintTop_toTopOf="@id/topBarrier" 28 app:layout_constraintWidth_max="@dimen/biometric_prompt_panel_max_width" /> 29 30 <include 31 android:id="@+id/button_bar" 32 layout="@layout/biometric_prompt_button_bar" 33 android:layout_width="0dp" 34 android:layout_height="wrap_content" 35 app:layout_constraintBottom_toBottomOf="@id/bottomGuideline" 36 app:layout_constraintEnd_toEndOf="@id/panel" 37 app:layout_constraintStart_toStartOf="@id/panel" /> 38 39 <ScrollView 40 android:id="@+id/scrollView" 41 android:layout_width="0dp" 42 android:layout_height="wrap_content" 43 android:fillViewport="true" 44 android:fadeScrollbars="false" 45 android:paddingBottom="@dimen/biometric_prompt_top_scroll_view_bottom_padding" 46 android:paddingHorizontal="@dimen/biometric_prompt_top_scroll_view_horizontal_padding" 47 android:paddingTop="24dp" 48 app:layout_constrainedHeight="true" 49 app:layout_constrainedWidth="true" 50 app:layout_constraintBottom_toTopOf="@+id/scrollBarrier" 51 app:layout_constraintEnd_toEndOf="@id/panel" 52 app:layout_constraintStart_toStartOf="@id/panel" 53 app:layout_constraintTop_toTopOf="@+id/topGuideline" 54 app:layout_constraintVertical_bias="1.0"> 55 56 <androidx.constraintlayout.widget.ConstraintLayout 57 android:id="@+id/innerConstraint" 58 android:layout_width="match_parent" 59 android:layout_height="wrap_content"> 60 61 <ImageView 62 android:id="@+id/logo" 63 android:contentDescription="@string/biometric_dialog_logo" 64 android:layout_width="@dimen/biometric_prompt_logo_size" 65 android:layout_height="@dimen/biometric_prompt_logo_size" 66 android:layout_gravity="center" 67 android:scaleType="fitXY" 68 android:importantForAccessibility="no" 69 app:layout_constraintBottom_toTopOf="@+id/logo_description" 70 app:layout_constraintEnd_toEndOf="parent" 71 app:layout_constraintStart_toStartOf="parent" 72 app:layout_constraintTop_toTopOf="parent" 73 tools:visibility="visible" /> 74 75 <TextView 76 android:id="@+id/logo_description" 77 style="@style/TextAppearance.AuthCredential.LogoDescription" 78 android:layout_width="match_parent" 79 android:layout_height="wrap_content" 80 android:paddingTop="@dimen/biometric_prompt_logo_description_top_padding" 81 app:layout_constraintBottom_toTopOf="@+id/title" 82 app:layout_constraintEnd_toEndOf="parent" 83 app:layout_constraintStart_toStartOf="parent" 84 app:layout_constraintTop_toBottomOf="@+id/logo" /> 85 86 <TextView 87 android:id="@+id/title" 88 style="@style/TextAppearance.AuthCredential.Title" 89 android:layout_width="wrap_content" 90 android:layout_height="wrap_content" 91 android:gravity="@integer/biometric_dialog_text_gravity" 92 android:paddingTop="16dp" 93 app:layout_constraintBottom_toTopOf="@+id/subtitle" 94 app:layout_constraintEnd_toEndOf="parent" 95 app:layout_constraintStart_toStartOf="parent" 96 app:layout_constraintTop_toBottomOf="@+id/logo_description" /> 97 98 <TextView 99 android:id="@+id/subtitle" 100 style="@style/TextAppearance.AuthCredential.Subtitle" 101 android:layout_width="wrap_content" 102 android:layout_height="wrap_content" 103 android:gravity="@integer/biometric_dialog_text_gravity" 104 android:paddingTop="16dp" 105 app:layout_constraintBottom_toTopOf="@+id/contentBarrier" 106 app:layout_constraintEnd_toEndOf="parent" 107 app:layout_constraintStart_toStartOf="parent" 108 app:layout_constraintTop_toBottomOf="@+id/title" /> 109 110 <LinearLayout 111 android:id="@+id/customized_view_container" 112 android:layout_width="match_parent" 113 android:layout_height="wrap_content" 114 android:gravity="center_vertical" 115 android:orientation="vertical" 116 android:paddingTop="24dp" 117 android:visibility="gone" 118 app:layout_constraintBottom_toBottomOf="parent" 119 app:layout_constraintEnd_toEndOf="parent" 120 app:layout_constraintStart_toStartOf="parent" 121 app:layout_constraintTop_toBottomOf="@+id/subtitle" /> 122 123 <TextView 124 android:id="@+id/description" 125 style="@style/TextAppearance.AuthCredential.Description" 126 android:layout_width="wrap_content" 127 android:layout_height="wrap_content" 128 android:gravity="@integer/biometric_dialog_text_gravity" 129 android:textAlignment="viewStart" 130 android:paddingTop="16dp" 131 app:layout_constraintBottom_toBottomOf="parent" 132 app:layout_constraintEnd_toEndOf="parent" 133 app:layout_constraintStart_toStartOf="parent" 134 app:layout_constraintTop_toBottomOf="@+id/subtitle" /> 135 136 <androidx.constraintlayout.widget.Barrier 137 android:id="@+id/contentBarrier" 138 android:layout_width="wrap_content" 139 android:layout_height="wrap_content" 140 app:barrierAllowsGoneWidgets="false" 141 app:barrierDirection="top" 142 app:constraint_referenced_ids="description, customized_view_container" /> 143 144 </androidx.constraintlayout.widget.ConstraintLayout> 145 </ScrollView> 146 147 <TextView 148 android:id="@+id/indicator" 149 style="@style/TextAppearance.AuthCredential.Indicator" 150 android:layout_width="0dp" 151 android:layout_height="wrap_content" 152 android:layout_marginTop="24dp" 153 android:layout_marginHorizontal="24dp" 154 android:accessibilityLiveRegion="assertive" 155 android:fadingEdge="horizontal" 156 android:gravity="center_horizontal" 157 android:scrollHorizontally="true" 158 app:layout_constraintBottom_toTopOf="@+id/button_bar" 159 app:layout_constraintEnd_toEndOf="@+id/panel" 160 app:layout_constraintStart_toStartOf="@+id/panel" 161 app:layout_constraintTop_toBottomOf="@+id/biometric_icon" 162 app:layout_constraintVertical_bias="0.0" /> 163 164 <androidx.constraintlayout.widget.Barrier 165 android:id="@+id/topBarrier" 166 android:layout_width="wrap_content" 167 android:layout_height="wrap_content" 168 app:barrierAllowsGoneWidgets="false" 169 app:barrierDirection="top" 170 app:constraint_referenced_ids="scrollView" /> 171 172 <androidx.constraintlayout.widget.Barrier 173 android:id="@+id/scrollBarrier" 174 android:layout_width="wrap_content" 175 android:layout_height="wrap_content" 176 app:barrierAllowsGoneWidgets="false" 177 app:barrierDirection="top" 178 app:constraint_referenced_ids="biometric_icon, button_bar" /> 179 180 <androidx.constraintlayout.widget.Guideline 181 android:id="@+id/leftGuideline" 182 android:layout_width="wrap_content" 183 android:layout_height="wrap_content" 184 android:orientation="vertical" 185 app:layout_constraintGuide_begin="@dimen/biometric_prompt_one_pane_medium_horizontal_guideline_padding" /> 186 187 <androidx.constraintlayout.widget.Guideline 188 android:id="@+id/rightGuideline" 189 android:layout_width="wrap_content" 190 android:layout_height="wrap_content" 191 android:orientation="vertical" 192 app:layout_constraintGuide_end="@dimen/biometric_prompt_one_pane_medium_horizontal_guideline_padding" /> 193 194 <androidx.constraintlayout.widget.Guideline 195 android:id="@+id/bottomGuideline" 196 android:layout_width="wrap_content" 197 android:layout_height="wrap_content" 198 android:orientation="horizontal" 199 app:layout_constraintGuide_end="40dp" /> 200 201 <androidx.constraintlayout.widget.Guideline 202 android:id="@+id/topGuideline" 203 android:layout_width="0dp" 204 android:layout_height="0dp" 205 android:orientation="horizontal" 206 app:layout_constraintGuide_begin="@dimen/biometric_prompt_one_pane_medium_top_guideline_padding" /> 207 208 <com.android.systemui.biometrics.BiometricPromptLottieViewWrapper 209 android:id="@+id/biometric_icon" 210 android:layout_width="wrap_content" 211 android:layout_height="wrap_content" 212 app:layout_constraintBottom_toBottomOf="parent" 213 app:layout_constraintEnd_toEndOf="parent" 214 app:layout_constraintStart_toStartOf="parent" 215 app:layout_constraintTop_toTopOf="parent" 216 app:layout_constraintVertical_bias="1.0" 217 tools:srcCompat="@tools:sample/avatars" /> 218</androidx.constraintlayout.widget.ConstraintLayout> 219