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<!-- TODO(b/251476085): inline in biometric_prompt_layout after Biometric*Views are un-flagged --> 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 android:importantForAccessibility="no" 28 style="@style/TextAppearance.AuthCredential.Title"/> 29 30 <TextView 31 android:id="@+id/subtitle" 32 android:layout_width="match_parent" 33 android:layout_height="wrap_content" 34 android:gravity="@integer/biometric_dialog_text_gravity" 35 android:singleLine="true" 36 android:marqueeRepeatLimit="1" 37 android:ellipsize="marquee" 38 android:importantForAccessibility="no" 39 style="@style/TextAppearance.AuthCredential.Subtitle"/> 40 41 <TextView 42 android:id="@+id/description" 43 android:layout_width="match_parent" 44 android:layout_height="wrap_content" 45 android:scrollbars ="vertical" 46 style="@style/TextAppearance.AuthCredential.Description"/> 47 48 <Space android:id="@+id/space_above_icon" 49 android:layout_width="match_parent" 50 android:layout_height="48dp" /> 51 52 <FrameLayout 53 android:id="@+id/biometric_icon_frame" 54 android:layout_width="wrap_content" 55 android:layout_height="wrap_content" 56 android:layout_gravity="center"> 57 58 <include layout="@layout/auth_biometric_icon"/> 59 60 <com.android.systemui.biometrics.BiometricPromptLottieViewWrapper 61 android:id="@+id/biometric_icon_overlay" 62 android:layout_width="wrap_content" 63 android:layout_height="wrap_content" 64 android:layout_gravity="center" 65 android:contentDescription="@null" 66 android:scaleType="fitXY" /> 67 </FrameLayout> 68 69 <!-- For sensors such as UDFPS, this view is used during custom measurement/layout to add extra 70 padding so that the biometric icon is always in the right physical position. --> 71 <Space android:id="@+id/space_below_icon" 72 android:layout_width="match_parent" 73 android:layout_height="12dp" /> 74 75 <TextView 76 android:id="@+id/indicator" 77 android:layout_width="match_parent" 78 android:layout_height="wrap_content" 79 android:paddingHorizontal="24dp" 80 android:textSize="12sp" 81 android:gravity="center_horizontal" 82 android:accessibilityLiveRegion="polite" 83 android:singleLine="true" 84 android:ellipsize="marquee" 85 android:marqueeRepeatLimit="marquee_forever" 86 android:scrollHorizontally="true" 87 android:fadingEdge="horizontal" 88 android:textColor="@color/biometric_dialog_gray"/> 89 90 <LinearLayout 91 android:id="@+id/button_bar" 92 android:layout_width="match_parent" 93 android:layout_height="88dp" 94 style="?android:attr/buttonBarStyle" 95 android:orientation="horizontal" 96 android:paddingTop="24dp"> 97 98 <Space android:id="@+id/leftSpacer" 99 android:layout_width="8dp" 100 android:layout_height="match_parent" 101 android:visibility="visible" /> 102 103 <!-- Negative Button, reserved for app --> 104 <Button android:id="@+id/button_negative" 105 android:layout_width="wrap_content" 106 android:layout_height="wrap_content" 107 style="@*android:style/Widget.DeviceDefault.Button.Borderless.Colored" 108 android:layout_gravity="center_vertical" 109 android:ellipsize="end" 110 android:maxLines="2" 111 android:maxWidth="@dimen/biometric_dialog_button_negative_max_width"/> 112 <!-- Cancel Button, replaces negative button when biometric is accepted --> 113 <Button android:id="@+id/button_cancel" 114 android:layout_width="wrap_content" 115 android:layout_height="wrap_content" 116 style="@*android:style/Widget.DeviceDefault.Button.Borderless.Colored" 117 android:layout_gravity="center_vertical" 118 android:maxWidth="@dimen/biometric_dialog_button_negative_max_width" 119 android:text="@string/cancel" 120 android:visibility="gone"/> 121 <!-- "Use Credential" Button, replaces if device credential is allowed --> 122 <Button android:id="@+id/button_use_credential" 123 android:layout_width="wrap_content" 124 android:layout_height="wrap_content" 125 style="@*android:style/Widget.DeviceDefault.Button.Borderless.Colored" 126 android:layout_gravity="center_vertical" 127 android:maxWidth="@dimen/biometric_dialog_button_negative_max_width" 128 android:visibility="gone"/> 129 130 <Space android:id="@+id/middleSpacer" 131 android:layout_width="0dp" 132 android:layout_height="match_parent" 133 android:layout_weight="1" 134 android:visibility="visible"/> 135 136 <!-- Positive Button --> 137 <Button android:id="@+id/button_confirm" 138 android:layout_width="wrap_content" 139 android:layout_height="wrap_content" 140 style="@*android:style/Widget.DeviceDefault.Button.Colored" 141 android:layout_gravity="center_vertical" 142 android:ellipsize="end" 143 android:maxLines="2" 144 android:maxWidth="@dimen/biometric_dialog_button_positive_max_width" 145 android:text="@string/biometric_dialog_confirm" 146 android:visibility="gone"/> 147 <!-- Try Again Button --> 148 <Button android:id="@+id/button_try_again" 149 android:layout_width="wrap_content" 150 android:layout_height="wrap_content" 151 style="@*android:style/Widget.DeviceDefault.Button.Colored" 152 android:layout_gravity="center_vertical" 153 android:ellipsize="end" 154 android:maxLines="2" 155 android:maxWidth="@dimen/biometric_dialog_button_positive_max_width" 156 android:text="@string/biometric_dialog_try_again" 157 android:visibility="gone"/> 158 159 <Space android:id="@+id/rightSpacer" 160 android:layout_width="8dp" 161 android:layout_height="match_parent" 162 android:visibility="visible" /> 163 </LinearLayout> 164 165</merge>