Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 40ed5e51 authored by Austin Delgado's avatar Austin Delgado Committed by Android (Google) Code Review
Browse files

Merge "Update Biometric Prompt padding" into main

parents f1d1fd82 26383ba6
Loading
Loading
Loading
Loading
+42 −104
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ android:layout_height="match_parent">
        android:paddingHorizontal="16dp"
        android:paddingVertical="16dp"
        android:visibility="visible"
        app:layout_constraintBottom_toTopOf="@+id/bottomGuideline"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/rightGuideline"
        app:layout_constraintStart_toStartOf="@+id/leftGuideline"
        app:layout_constraintTop_toTopOf="@+id/topGuideline" />
@@ -59,7 +59,7 @@ android:layout_height="match_parent">
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:fillViewport="true"
        android:padding="16dp"
        android:padding="24dp"
        app:layout_constrainedHeight="true"
        app:layout_constrainedWidth="true"
        app:layout_constraintBottom_toTopOf="@+id/buttonBarrier"
@@ -82,20 +82,20 @@ android:layout_height="match_parent">
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

            <LinearLayout
                android:id="@+id/customized_view_container"
                android:layout_width="wrap_content"
            <TextView
                android:id="@+id/logo_description"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:gravity="center_vertical"
                android:orientation="vertical"
                android:paddingHorizontal="0dp"
                android:visibility="gone"
                app:layout_constraintBottom_toBottomOf="parent"
                android:ellipsize="marquee"
                android:gravity="@integer/biometric_dialog_text_gravity"
                android:marqueeRepeatLimit="1"
                android:singleLine="true"
                android:textAlignment="viewStart"
                android:paddingLeft="8dp"
                app:layout_constraintBottom_toBottomOf="@+id/logo"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/subtitle"
                app:layout_constraintVertical_bias="0.0" />
                app:layout_constraintStart_toEndOf="@+id/logo"
                app:layout_constraintTop_toTopOf="@+id/logo" />

            <Space
                android:id="@+id/space_above_content"
@@ -108,6 +108,7 @@ android:layout_height="match_parent">
                style="@style/TextAppearance.AuthCredential.Title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="12dp"
                android:gravity="@integer/biometric_dialog_text_gravity"
                android:paddingHorizontal="0dp"
                android:textAlignment="viewStart"
@@ -124,6 +125,7 @@ android:layout_height="match_parent">
                style="@style/TextAppearance.AuthCredential.Subtitle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="12dp"
                android:gravity="@integer/biometric_dialog_text_gravity"
                android:paddingHorizontal="0dp"
                android:textAlignment="viewStart"
@@ -133,14 +135,14 @@ android:layout_height="match_parent">
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/title" />

            <TextView
                android:id="@+id/description"
                style="@style/TextAppearance.AuthCredential.Description"
            <LinearLayout
                android:id="@+id/customized_view_container"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="@integer/biometric_dialog_text_gravity"
                android:gravity="center_vertical"
                android:orientation="vertical"
                android:paddingHorizontal="0dp"
                android:textAlignment="viewStart"
                android:visibility="gone"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="0.0"
@@ -149,19 +151,20 @@ android:layout_height="match_parent">
                app:layout_constraintVertical_bias="0.0" />

            <TextView
                android:id="@+id/logo_description"
                android:layout_width="0dp"
                android:id="@+id/description"
                style="@style/TextAppearance.AuthCredential.Description"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ellipsize="marquee"
                android:gravity="@integer/biometric_dialog_text_gravity"
                android:marqueeRepeatLimit="1"
                android:singleLine="true"
                android:paddingHorizontal="0dp"
                android:textAlignment="viewStart"
                android:paddingLeft="8dp"
                app:layout_constraintBottom_toBottomOf="@+id/logo"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toEndOf="@+id/logo"
                app:layout_constraintTop_toTopOf="@+id/logo" />
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/subtitle"
                app:layout_constraintVertical_bias="0.0" />


            <androidx.constraintlayout.widget.Barrier
                android:id="@+id/contentBarrier"
@@ -178,7 +181,7 @@ android:layout_height="match_parent">
        android:id="@+id/indicator"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:layout_marginTop="24dp"
        android:accessibilityLiveRegion="polite"
        android:fadingEdge="horizontal"
        android:gravity="center_horizontal"
@@ -192,80 +195,15 @@ android:layout_height="match_parent">
        app:layout_constraintTop_toBottomOf="@+id/biometric_icon"
        app:layout_constraintVertical_bias="0.0" />

    <!-- Negative Button, reserved for app -->
    <Button
        android:id="@+id/button_negative"
        style="@*android:style/Widget.DeviceDefault.Button.Borderless.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginBottom="8dp"
        android:layout_marginLeft="8dp"
        android:ellipsize="end"
        android:maxLines="2"
        android:visibility="invisible"
        app:layout_constraintBottom_toBottomOf="@+id/bottomGuideline"
        app:layout_constraintStart_toStartOf="@+id/scrollView" />

    <!-- Cancel Button, replaces negative button when biometric is accepted -->
    <Button
        android:id="@+id/button_cancel"
        style="@*android:style/Widget.DeviceDefault.Button.Borderless.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginBottom="8dp"
        android:layout_marginLeft="8dp"
        android:text="@string/cancel"
        android:visibility="invisible"
        app:layout_constraintBottom_toBottomOf="@+id/bottomGuideline"
        app:layout_constraintStart_toStartOf="@+id/scrollView" />

    <!-- "Use Credential" Button, replaces if device credential is allowed -->
    <Button
        android:id="@+id/button_use_credential"
        style="@*android:style/Widget.DeviceDefault.Button.Borderless.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginBottom="8dp"
        android:layout_marginLeft="8dp"
        android:visibility="invisible"
        app:layout_constraintBottom_toBottomOf="@+id/bottomGuideline"
        app:layout_constraintStart_toStartOf="@+id/scrollView" />

    <!-- Positive Button -->
    <Button
        android:id="@+id/button_confirm"
        style="@*android:style/Widget.DeviceDefault.Button.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginBottom="8dp"
        android:layout_marginRight="8dp"
        android:ellipsize="end"
        android:maxLines="2"
        android:text="@string/biometric_dialog_confirm"
        android:visibility="invisible"
        app:layout_constraintBottom_toBottomOf="@+id/bottomGuideline"
        app:layout_constraintEnd_toEndOf="@+id/scrollView"
        tools:visibility="invisible" />

    <!-- Try Again Button -->
    <Button
        android:id="@+id/button_try_again"
        style="@*android:style/Widget.DeviceDefault.Button.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginBottom="8dp"
        android:layout_marginRight="8dp"
        android:ellipsize="end"
        android:maxLines="2"
        android:text="@string/biometric_dialog_try_again"
        android:visibility="invisible"
        app:layout_constraintBottom_toBottomOf="@+id/bottomGuideline"
        app:layout_constraintEnd_toEndOf="@+id/scrollView" />
    <include
        android:id="@+id/button_bar"
        layout="@layout/biometric_prompt_button_bar"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintBottom_toTopOf="@id/bottomGuideline"
        app:layout_constraintEnd_toEndOf="@id/scrollView"
        app:layout_constraintStart_toStartOf="@id/scrollView"
        app:layout_constraintTop_toBottomOf="@id/scrollView" />

    <!-- Guidelines for setting panel border -->
    <androidx.constraintlayout.widget.Barrier
@@ -282,7 +220,7 @@ android:layout_height="match_parent">
        android:layout_height="wrap_content"
        app:barrierAllowsGoneWidgets="false"
        app:barrierDirection="top"
        app:constraint_referenced_ids="button_negative, button_cancel, button_use_credential, button_confirm, button_try_again" />
        app:constraint_referenced_ids="button_bar" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/leftGuideline"
+35 −95
Original line number Diff line number Diff line
@@ -23,92 +23,29 @@
        android:clickable="true"
        android:clipToOutline="true"
        android:importantForAccessibility="no"
        android:paddingHorizontal="16dp"
        android:paddingVertical="16dp"
        android:visibility="visible"
        app:layout_constraintBottom_toTopOf="@+id/bottomGuideline"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/rightGuideline"
        app:layout_constraintStart_toStartOf="@+id/leftGuideline"
        app:layout_constraintTop_toTopOf="@+id/topBarrier" />

    <Button
        android:id="@+id/button_negative"
        style="@*android:style/Widget.DeviceDefault.Button.Borderless.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginBottom="8dp"
        android:layout_marginLeft="8dp"
        android:ellipsize="end"
        android:maxLines="2"
        android:visibility="invisible"
        app:layout_constraintBottom_toBottomOf="@+id/panel"
        app:layout_constraintStart_toStartOf="@+id/panel" />

    <Button
        android:id="@+id/button_cancel"
        style="@*android:style/Widget.DeviceDefault.Button.Borderless.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginBottom="8dp"
        android:layout_marginLeft="8dp"
        android:text="@string/cancel"
        android:visibility="invisible"
        app:layout_constraintBottom_toBottomOf="@+id/panel"
        app:layout_constraintStart_toStartOf="@+id/panel" />

    <Button
        android:id="@+id/button_use_credential"
        style="@*android:style/Widget.DeviceDefault.Button.Borderless.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginBottom="8dp"
        android:layout_marginLeft="8dp"
        android:visibility="invisible"
        app:layout_constraintBottom_toBottomOf="@+id/panel"
        app:layout_constraintStart_toStartOf="@+id/panel" />

    <Button
        android:id="@+id/button_confirm"
        style="@*android:style/Widget.DeviceDefault.Button.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginBottom="8dp"
        android:layout_marginRight="8dp"
        android:ellipsize="end"
        android:maxLines="2"
        android:text="@string/biometric_dialog_confirm"
        android:visibility="invisible"
        app:layout_constraintBottom_toBottomOf="@+id/panel"
        app:layout_constraintEnd_toEndOf="@+id/panel"
        tools:visibility="invisible" />

    <Button
        android:id="@+id/button_try_again"
        style="@*android:style/Widget.DeviceDefault.Button.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginBottom="8dp"
        android:layout_marginRight="8dp"
        android:ellipsize="end"
        android:maxLines="2"
        android:text="@string/biometric_dialog_try_again"
        android:visibility="invisible"
        app:layout_constraintBottom_toBottomOf="@+id/panel"
        app:layout_constraintEnd_toEndOf="@+id/panel" />

    <!-- Negative Button, reserved for app -->
    <include
        layout="@layout/biometric_prompt_button_bar"
        android:id="@+id/button_bar"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        app:layout_constraintBottom_toTopOf="@id/bottomGuideline"
        app:layout_constraintEnd_toEndOf="@id/panel"
        app:layout_constraintStart_toStartOf="@id/panel"/>

    <ScrollView
        android:id="@+id/scrollView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:padding="16dp"
        android:paddingBottom="36dp"
        android:paddingHorizontal="24dp"
        android:paddingTop="24dp"
        app:layout_constrainedHeight="true"
        app:layout_constrainedWidth="true"
        app:layout_constraintBottom_toTopOf="@+id/biometric_icon"
@@ -134,18 +71,19 @@
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

            <LinearLayout
                android:id="@+id/customized_view_container"
                android:layout_width="wrap_content"
            <TextView
                android:id="@+id/logo_description"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center_vertical"
                android:orientation="vertical"
                android:paddingHorizontal="@dimen/biometric_prompt_content_container_padding_horizontal"
                android:visibility="gone"
                app:layout_constraintBottom_toBottomOf="parent"
                android:ellipsize="marquee"
                android:gravity="@integer/biometric_dialog_text_gravity"
                android:marqueeRepeatLimit="1"
                android:singleLine="true"
                android:paddingTop="16dp"
                app:layout_constraintBottom_toTopOf="@+id/title"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/subtitle" />
                app:layout_constraintTop_toBottomOf="@+id/logo" />

            <Space
                android:id="@+id/space_above_content"
@@ -159,6 +97,7 @@
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="@integer/biometric_dialog_text_gravity"
                android:paddingTop="16dp"
                app:layout_constraintBottom_toTopOf="@+id/subtitle"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
@@ -170,23 +109,24 @@
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="@integer/biometric_dialog_text_gravity"
                android:paddingTop="16dp"
                app:layout_constraintBottom_toTopOf="@+id/contentBarrier"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/title" />

            <TextView
                android:id="@+id/logo_description"
                android:layout_width="match_parent"
            <LinearLayout
                android:id="@+id/customized_view_container"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ellipsize="marquee"
                android:gravity="@integer/biometric_dialog_text_gravity"
                android:marqueeRepeatLimit="1"
                android:singleLine="true"
                app:layout_constraintBottom_toTopOf="@+id/title"
                android:gravity="center_vertical"
                android:orientation="vertical"
                android:paddingHorizontal="@dimen/biometric_prompt_content_container_padding_horizontal"
                android:visibility="gone"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/logo" />
                app:layout_constraintTop_toBottomOf="@+id/subtitle" />

            <TextView
                android:id="@+id/description"
@@ -215,7 +155,7 @@
        android:id="@+id/indicator"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:layout_marginTop="24dp"
        android:accessibilityLiveRegion="polite"
        android:fadingEdge="horizontal"
        android:gravity="center_horizontal"
@@ -247,7 +187,7 @@
        android:layout_height="wrap_content"
        app:barrierAllowsGoneWidgets="false"
        app:barrierDirection="top"
        app:constraint_referenced_ids="button_negative, button_cancel, button_use_credential, button_confirm, button_try_again" />
        app:constraint_referenced_ids="button_bar" />

    <!-- Guidelines for setting panel border -->
    <androidx.constraintlayout.widget.Guideline
+91 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?><!--
  ~ Copyright (C) 2024 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <!-- Negative Button, reserved for app -->
    <Button
        android:id="@+id/button_negative"
        style="@*android:style/Widget.DeviceDefault.Button.Borderless.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="24dp"
        android:ellipsize="end"
        android:maxLines="2"
        android:visibility="invisible"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

    <!-- Cancel Button, replaces negative button when biometric is accepted -->
    <Button
        android:id="@+id/button_cancel"
        style="@*android:style/Widget.DeviceDefault.Button.Borderless.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="24dp"
        android:text="@string/cancel"
        android:visibility="invisible"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

    <!-- "Use Credential" Button, replaces if device credential is allowed -->
    <Button
        android:id="@+id/button_use_credential"
        style="@*android:style/Widget.DeviceDefault.Button.Borderless.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="24dp"
        android:visibility="invisible"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

    <!-- Positive Button -->
    <Button
        android:id="@+id/button_confirm"
        style="@*android:style/Widget.DeviceDefault.Button.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginRight="24dp"
        android:ellipsize="end"
        android:maxLines="2"
        android:text="@string/biometric_dialog_confirm"
        android:visibility="invisible"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent" />

    <!-- Try Again Button -->
    <Button
        android:id="@+id/button_try_again"
        style="@*android:style/Widget.DeviceDefault.Button.Colored"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginRight="24dp"
        android:ellipsize="end"
        android:maxLines="2"
        android:text="@string/biometric_dialog_try_again"
        android:visibility="invisible"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>
+61 −130

File changed.

Preview size limit exceeded, changes collapsed.

+1 −1
Original line number Diff line number Diff line
@@ -1087,7 +1087,7 @@
    <dimen name="biometric_dialog_fingerprint_icon_height">80dp</dimen>
    <dimen name="biometric_dialog_button_negative_max_width">160dp</dimen>
    <dimen name="biometric_dialog_button_positive_max_width">136dp</dimen>
    <dimen name="biometric_dialog_corner_size">4dp</dimen>
    <dimen name="biometric_dialog_corner_size">28dp</dimen>
    <!-- Y translation when showing/dismissing the dialog-->
    <dimen name="biometric_dialog_animation_translation_offset">350dp</dimen>
    <dimen name="biometric_dialog_border_padding">4dp</dimen>
Loading