xref: /aosp_15_r20/frameworks/base/packages/SystemUI/res/layout/biometric_prompt_two_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"
3xmlns:app="http://schemas.android.com/apk/res-auto"
4xmlns:tools="http://schemas.android.com/tools"
5xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
6android:id="@+id/biometric_prompt_constraint_layout"
7android:layout_width="match_parent"
8android:layout_height="match_parent">
9
10    <ImageView
11        android:id="@+id/background"
12        android:layout_width="0dp"
13        android:layout_height="0dp"
14        android:contentDescription="@string/cancel"
15        app:layout_constraintBottom_toBottomOf="parent"
16        app:layout_constraintEnd_toEndOf="parent"
17        app:layout_constraintStart_toStartOf="parent"
18        app:layout_constraintTop_toTopOf="parent" />
19
20    <View
21        android:id="@+id/panel"
22        style="@style/AuthCredentialPanelStyle"
23        android:layout_width="0dp"
24        android:layout_height="0dp"
25        android:paddingHorizontal="16dp"
26        android:paddingVertical="16dp"
27        android:visibility="visible"
28        app:layout_constraintBottom_toBottomOf="parent"
29        app:layout_constraintRight_toLeftOf="@+id/rightGuideline"
30        app:layout_constraintLeft_toLeftOf="@+id/leftGuideline"
31        app:layout_constraintTop_toTopOf="@+id/topGuideline" />
32
33    <com.android.systemui.biometrics.BiometricPromptLottieViewWrapper
34        android:id="@+id/biometric_icon"
35        android:layout_width="wrap_content"
36        android:layout_height="wrap_content"
37        app:layout_constraintBottom_toBottomOf="parent"
38        app:layout_constraintRight_toRightOf="parent"
39        app:layout_constraintLeft_toLeftOf="parent"
40        app:layout_constraintTop_toTopOf="parent"
41        tools:srcCompat="@tools:sample/avatars" />
42
43    <ScrollView
44        android:id="@+id/scrollView"
45        android:layout_width="0dp"
46        android:layout_height="0dp"
47        android:paddingBottom="16dp"
48        android:paddingLeft="24dp"
49        android:paddingRight="12dp"
50        android:paddingTop="24dp"
51        android:fadeScrollbars="false"
52        app:layout_constraintBottom_toTopOf="@+id/button_bar"
53        app:layout_constraintRight_toLeftOf="@+id/midGuideline"
54        app:layout_constraintLeft_toLeftOf="@id/leftGuideline"
55        app:layout_constraintTop_toTopOf="@+id/topGuideline">
56
57        <androidx.constraintlayout.widget.ConstraintLayout
58            android:id="@+id/innerConstraint"
59            android:layout_width="match_parent"
60            android:layout_height="wrap_content">
61
62            <ImageView
63                android:id="@+id/logo"
64                android:contentDescription="@string/biometric_dialog_logo"
65                android:layout_width="@dimen/biometric_prompt_logo_size"
66                android:layout_height="@dimen/biometric_prompt_logo_size"
67                android:layout_gravity="center"
68                android:scaleType="fitXY"
69                android:visibility="visible"
70                app:layout_constraintStart_toStartOf="parent"
71                app:layout_constraintTop_toTopOf="parent" />
72
73            <TextView
74                android:id="@+id/logo_description"
75                style="@style/TextAppearance.AuthCredential.LogoDescription"
76                android:layout_width="0dp"
77                android:layout_height="@dimen/biometric_prompt_logo_size"
78                android:gravity="start|center_vertical"
79                android:textAlignment="viewStart"
80                android:layout_marginStart="16dp"
81                app:layout_goneMarginStart="0dp"
82                app:layout_constraintBottom_toTopOf="@+id/title"
83                app:layout_constraintEnd_toEndOf="parent"
84                app:layout_constraintStart_toEndOf="@+id/logo"
85                app:layout_constraintTop_toTopOf="parent" />
86
87            <TextView
88                android:id="@+id/title"
89                style="@style/TextAppearance.AuthCredential.Title"
90                android:layout_width="wrap_content"
91                android:layout_height="wrap_content"
92                android:gravity="@integer/biometric_dialog_text_gravity"
93                android:paddingHorizontal="0dp"
94                android:textAlignment="viewStart"
95                app:layout_constraintBottom_toTopOf="@+id/subtitle"
96                app:layout_constraintEnd_toEndOf="parent"
97                app:layout_constraintHorizontal_bias="0.0"
98                app:layout_constraintStart_toStartOf="parent"
99                app:layout_constraintTop_toBottomOf="@+id/logoBarrier"
100                app:layout_constraintVertical_bias="0.0"
101                app:layout_constraintVertical_chainStyle="packed" />
102
103            <TextView
104                android:id="@+id/subtitle"
105                style="@style/TextAppearance.AuthCredential.Subtitle"
106                android:layout_width="wrap_content"
107                android:layout_height="wrap_content"
108                android:layout_marginTop="16dp"
109                android:gravity="@integer/biometric_dialog_text_gravity"
110                android:paddingHorizontal="0dp"
111                android:textAlignment="viewStart"
112                app:layout_constraintBottom_toTopOf="@+id/contentBarrier"
113                app:layout_constraintEnd_toEndOf="parent"
114                app:layout_constraintHorizontal_bias="0.0"
115                app:layout_constraintStart_toStartOf="parent"
116                app:layout_constraintTop_toBottomOf="@+id/title" />
117
118            <LinearLayout
119                android:id="@+id/customized_view_container"
120                android:layout_width="match_parent"
121                android:layout_height="wrap_content"
122                android:layout_marginTop="24dp"
123                android:gravity="center_vertical"
124                android:orientation="vertical"
125                android:visibility="gone"
126                app:layout_constraintBottom_toBottomOf="parent"
127                app:layout_constraintEnd_toEndOf="parent"
128                app:layout_constraintHorizontal_bias="0.0"
129                app:layout_constraintStart_toStartOf="parent"
130                app:layout_constraintTop_toBottomOf="@+id/subtitle"
131                app:layout_constraintVertical_bias="0.0" />
132
133            <TextView
134                android:id="@+id/description"
135                style="@style/TextAppearance.AuthCredential.Description"
136                android:layout_width="wrap_content"
137                android:layout_height="wrap_content"
138                android:layout_marginTop="24dp"
139                android:gravity="@integer/biometric_dialog_text_gravity"
140                android:paddingHorizontal="0dp"
141                android:textAlignment="viewStart"
142                app:layout_constraintBottom_toBottomOf="parent"
143                app:layout_constraintEnd_toEndOf="parent"
144                app:layout_constraintHorizontal_bias="0.0"
145                app:layout_constraintStart_toStartOf="parent"
146                app:layout_constraintTop_toBottomOf="@+id/subtitle"
147                app:layout_constraintVertical_bias="0.0" />
148
149            <androidx.constraintlayout.widget.Barrier
150                android:id="@+id/logoBarrier"
151                android:layout_width="wrap_content"
152                android:layout_height="wrap_content"
153                app:barrierMargin="12dp"
154                app:barrierAllowsGoneWidgets="false"
155                app:barrierDirection="bottom"
156                app:constraint_referenced_ids="logo_description, logo" />
157
158            <androidx.constraintlayout.widget.Barrier
159                android:id="@+id/contentBarrier"
160                android:layout_width="wrap_content"
161                android:layout_height="wrap_content"
162                app:barrierAllowsGoneWidgets="false"
163                app:barrierDirection="top"
164                app:constraint_referenced_ids="description, customized_view_container" />
165
166        </androidx.constraintlayout.widget.ConstraintLayout>
167    </ScrollView>
168
169    <TextView
170        android:id="@+id/indicator"
171        style="@style/TextAppearance.AuthCredential.Indicator"
172        android:layout_width="wrap_content"
173        android:layout_height="wrap_content"
174        android:layout_marginTop="24dp"
175        android:accessibilityLiveRegion="assertive"
176        android:fadingEdge="horizontal"
177        android:gravity="center_horizontal"
178        android:scrollHorizontally="true"
179        android:maxLines="2"
180        app:layout_constraintBottom_toTopOf="@+id/button_bar"
181        app:layout_constraintEnd_toEndOf="@+id/biometric_icon"
182        app:layout_constraintStart_toStartOf="@+id/biometric_icon"
183        app:layout_constraintTop_toBottomOf="@+id/biometric_icon"
184        app:layout_constraintVertical_bias="0.0"
185        app:layout_constraintWidth_max="@dimen/biometric_dialog_indicator_max_width" />
186
187    <include
188        android:id="@+id/button_bar"
189        layout="@layout/biometric_prompt_button_bar"
190        android:layout_width="0dp"
191        android:layout_height="wrap_content"
192        app:layout_constraintBottom_toTopOf="@id/bottomGuideline"
193        app:layout_constraintEnd_toEndOf="@id/scrollView"
194        app:layout_constraintStart_toStartOf="@id/scrollView"
195        app:layout_constraintTop_toBottomOf="@id/scrollView" />
196
197    <!-- Guidelines for setting panel border -->
198    <androidx.constraintlayout.widget.Barrier
199        android:id="@+id/topBarrier"
200        android:layout_width="wrap_content"
201        android:layout_height="wrap_content"
202        app:barrierAllowsGoneWidgets="false"
203        app:barrierDirection="top"
204        app:constraint_referenced_ids="scrollView" />
205
206    <androidx.constraintlayout.widget.Guideline
207        android:id="@+id/leftGuideline"
208        android:layout_width="wrap_content"
209        android:layout_height="wrap_content"
210        android:orientation="vertical"
211        app:guidelineUseRtl="false"
212        app:layout_constraintGuide_begin="@dimen/biometric_dialog_border_padding" />
213
214    <androidx.constraintlayout.widget.Guideline
215        android:id="@+id/rightGuideline"
216        android:layout_width="wrap_content"
217        android:layout_height="wrap_content"
218        android:orientation="vertical"
219        app:guidelineUseRtl="false"
220        app:layout_constraintGuide_end="@dimen/biometric_dialog_border_padding" />
221
222    <androidx.constraintlayout.widget.Guideline
223        android:id="@+id/midGuideline"
224        android:layout_width="wrap_content"
225        android:layout_height="wrap_content"
226        android:orientation="vertical"
227        app:guidelineUseRtl="false"
228        app:layout_constraintGuide_begin="406dp" />
229
230    <androidx.constraintlayout.widget.Guideline
231        android:id="@+id/bottomGuideline"
232        android:layout_width="wrap_content"
233        android:layout_height="wrap_content"
234        android:orientation="horizontal"
235        app:layout_constraintGuide_end="40dp" />
236
237    <androidx.constraintlayout.widget.Guideline
238        android:id="@+id/topGuideline"
239        android:layout_width="0dp"
240        android:layout_height="0dp"
241        android:orientation="horizontal"
242        app:layout_constraintGuide_begin="0dp" />
243
244</androidx.constraintlayout.widget.ConstraintLayout>
245