• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!--
2  ~ Copyright (C) 2019 The Android Open Source Project
3  ~
4  ~ Licensed under the Apache License, Version 2.0 (the "License");
5  ~ you may not use this file except in compliance with the License.
6  ~ You may obtain a copy of the License at
7  ~
8  ~      http://www.apache.org/licenses/LICENSE-2.0
9  ~
10  ~ Unless required by applicable law or agreed to in writing, software
11  ~ distributed under the License is distributed on an "AS IS" BASIS,
12  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  ~ See the License for the specific language governing permissions and
14  ~ limitations under the License.
15  -->
16
17<merge xmlns:android="http://schemas.android.com/apk/res/android">
18
19    <TextView
20        android:id="@+id/title"
21        android:layout_width="match_parent"
22        android:layout_height="wrap_content"
23        android:gravity="@integer/biometric_dialog_text_gravity"
24        android:singleLine="true"
25        android:marqueeRepeatLimit="1"
26        android:ellipsize="marquee"
27        style="@style/TextAppearance.AuthCredential.Title"/>
28
29    <TextView
30        android:id="@+id/subtitle"
31        android:layout_width="match_parent"
32        android:layout_height="wrap_content"
33        android:gravity="@integer/biometric_dialog_text_gravity"
34        android:singleLine="true"
35        android:marqueeRepeatLimit="1"
36        android:ellipsize="marquee"
37        style="@style/TextAppearance.AuthCredential.Subtitle"/>
38
39    <TextView
40        android:id="@+id/description"
41        android:layout_width="match_parent"
42        android:layout_height="wrap_content"
43        android:scrollbars ="vertical"
44        style="@style/TextAppearance.AuthCredential.Description"/>
45
46    <Space android:id="@+id/space_above_icon"
47        android:layout_width="match_parent"
48        android:layout_height="48dp" />
49
50    <FrameLayout
51        android:id="@+id/biometric_icon_frame"
52        android:layout_width="wrap_content"
53        android:layout_height="wrap_content"
54        android:layout_gravity="center">
55
56        <com.airbnb.lottie.LottieAnimationView
57            android:id="@+id/biometric_icon"
58            android:layout_width="wrap_content"
59            android:layout_height="wrap_content"
60            android:layout_gravity="center"
61            android:contentDescription="@null"
62            android:scaleType="fitXY" />
63
64        <com.airbnb.lottie.LottieAnimationView
65            android:id="@+id/biometric_icon_overlay"
66            android:layout_width="wrap_content"
67            android:layout_height="wrap_content"
68            android:layout_gravity="center"
69            android:contentDescription="@null"
70            android:scaleType="fitXY" />
71    </FrameLayout>
72
73    <!-- For sensors such as UDFPS, this view is used during custom measurement/layout to add extra
74         padding so that the biometric icon is always in the right physical position. -->
75    <Space android:id="@+id/space_below_icon"
76        android:layout_width="match_parent"
77        android:layout_height="12dp" />
78
79    <TextView
80        android:id="@+id/indicator"
81        android:layout_width="match_parent"
82        android:layout_height="wrap_content"
83        android:paddingHorizontal="24dp"
84        android:textSize="12sp"
85        android:gravity="center_horizontal"
86        android:accessibilityLiveRegion="polite"
87        android:singleLine="true"
88        android:ellipsize="marquee"
89        android:marqueeRepeatLimit="marquee_forever"
90        android:scrollHorizontally="true"
91        android:fadingEdge="horizontal"
92        android:textColor="@color/biometric_dialog_gray"/>
93
94    <LinearLayout
95        android:id="@+id/button_bar"
96        android:layout_width="match_parent"
97        android:layout_height="88dp"
98        style="?android:attr/buttonBarStyle"
99        android:orientation="horizontal"
100        android:paddingTop="24dp">
101
102        <Space android:id="@+id/leftSpacer"
103            android:layout_width="8dp"
104            android:layout_height="match_parent"
105            android:visibility="visible" />
106
107        <!-- Negative Button, reserved for app -->
108        <Button android:id="@+id/button_negative"
109            android:layout_width="wrap_content"
110            android:layout_height="wrap_content"
111            style="@*android:style/Widget.DeviceDefault.Button.Borderless.Colored"
112            android:layout_gravity="center_vertical"
113            android:ellipsize="end"
114            android:maxLines="2"
115            android:maxWidth="@dimen/biometric_dialog_button_negative_max_width"/>
116        <!-- Cancel Button, replaces negative button when biometric is accepted -->
117        <Button android:id="@+id/button_cancel"
118            android:layout_width="wrap_content"
119            android:layout_height="wrap_content"
120            style="@*android:style/Widget.DeviceDefault.Button.Borderless.Colored"
121            android:layout_gravity="center_vertical"
122            android:maxWidth="@dimen/biometric_dialog_button_negative_max_width"
123            android:text="@string/cancel"
124            android:visibility="gone"/>
125        <!-- "Use Credential" Button, replaces if device credential is allowed -->
126        <Button android:id="@+id/button_use_credential"
127            android:layout_width="wrap_content"
128            android:layout_height="wrap_content"
129            style="@*android:style/Widget.DeviceDefault.Button.Borderless.Colored"
130            android:layout_gravity="center_vertical"
131            android:maxWidth="@dimen/biometric_dialog_button_negative_max_width"
132            android:visibility="gone"/>
133
134        <Space android:id="@+id/middleSpacer"
135            android:layout_width="0dp"
136            android:layout_height="match_parent"
137            android:layout_weight="1"
138            android:visibility="visible"/>
139
140        <!-- Positive Button -->
141        <Button android:id="@+id/button_confirm"
142            android:layout_width="wrap_content"
143            android:layout_height="wrap_content"
144            style="@*android:style/Widget.DeviceDefault.Button.Colored"
145            android:layout_gravity="center_vertical"
146            android:ellipsize="end"
147            android:maxLines="2"
148            android:maxWidth="@dimen/biometric_dialog_button_positive_max_width"
149            android:text="@string/biometric_dialog_confirm"
150            android:visibility="gone"/>
151        <!-- Try Again Button -->
152        <Button android:id="@+id/button_try_again"
153            android:layout_width="wrap_content"
154            android:layout_height="wrap_content"
155            style="@*android:style/Widget.DeviceDefault.Button.Colored"
156            android:layout_gravity="center_vertical"
157            android:ellipsize="end"
158            android:maxLines="2"
159            android:maxWidth="@dimen/biometric_dialog_button_positive_max_width"
160            android:text="@string/biometric_dialog_try_again"
161            android:visibility="gone"/>
162
163        <Space android:id="@+id/rightSpacer"
164            android:layout_width="8dp"
165            android:layout_height="match_parent"
166            android:visibility="visible" />
167    </LinearLayout>
168
169</merge>