xref: /aosp_15_r20/frameworks/base/packages/SystemUI/res/layout/biometric_prompt_one_pane_layout.xml (revision d57664e9bc4670b3ecf6748a746a57c557b6bc9e)
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