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

Commit e4623cd2 authored by Jason Chang's avatar Jason Chang
Browse files

(1/n) Make the GlifHeader scrollable on FingerprintEnrollEnrolling(

UDPFS) layout page.

1. To override GlifLayout's onInflateTemplate() then embedding a
ScrollView on GlifHeader.
2. Remove previous hiding the description text snippet
3. Handling UDFPS enroll lottie position problem.
4. Solve the ProgressBar overlapped with FooterBar problem.

Flag: com.android.settings.flags.enroll_layout_truncate_improvement

Bug: 359149850
Bug: 367164671
Bug: 362522976

Test: atest UdfpsEnrollEnrollingViewTest
Test: Build Forrest ROM then check the UI in different scenarios
Change-Id: Iee44cb5815286233f23266e3d86fd8335ab2087d
parent c0c95926
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -15,6 +15,16 @@ flag {
  bug: "301226085"
}

flag {
  name: "enroll_layout_truncate_improvement"
  namespace: "biometrics_integration"
  description: "This flag controls whether the enroll layout truncate improvement feature should be enabled"
  bug: "359149850"
  metadata {
      purpose: PURPOSE_BUGFIX
  }
}

flag {
  name: "screen_off_unlock_power_optimization"
  namespace: "biometrics_integration"
+26 −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.
-->

<com.google.android.setupcompat.view.StatusBarBackgroundLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/suc_layout_status"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <include layout="@layout/biometrics_glif_content" />

</com.google.android.setupcompat.view.StatusBarBackgroundLayout>
+82 −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.
-->

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/sud_layout_template_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clipChildren="true"
    android:clipToPadding="true"
    android:orientation="vertical">

    <ViewStub
        android:id="@+id/sud_layout_sticky_header"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <com.google.android.setupdesign.view.BottomScrollView
        android:id="@+id/sud_header_scroll_view"
        android:layout_width="match_parent"
        android:layout_height="@dimen/biometrics_glif_header_height"
        android:fillViewport="true"
        android:orientation="vertical"
        tools:ignore="UnusedAttribute">

        <include layout="@layout/sud_glif_header" />

    </com.google.android.setupdesign.view.BottomScrollView>


    <com.google.android.setupdesign.view.BottomScrollView
        android:id="@+id/sud_scroll_view"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:fillViewport="true"
        android:scrollIndicators="?attr/sudScrollIndicators"
        tools:ignore="UnusedAttribute">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <ViewStub
                android:id="@+id/sud_layout_illustration_progress_stub"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inflatedId="@+id/sud_layout_progress_illustration"
                android:layout="@layout/sud_progress_illustration_layout" />

            <FrameLayout
                android:id="@+id/sud_layout_content"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1" />

        </LinearLayout>

    </com.google.android.setupdesign.view.BottomScrollView>

    <ViewStub
        android:id="@+id/suc_layout_footer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>
+48 −40
Original line number Diff line number Diff line
@@ -24,8 +24,29 @@
    android:layout_height="match_parent"
    style="?attr/fingerprint_layout_theme">

    <androidx.constraintlayout.widget.ConstraintLayout
        style="@style/SudContentFrame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipToPadding="false"
        android:clipChildren="false">

        <com.airbnb.lottie.LottieAnimationView
            android:id="@+id/illustration_lottie"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            app:layout_constraintTop_toTopOf="@id/udfps_view"
            android:scaleType="centerInside"
            android:visibility="gone"
            app:lottie_autoPlay="true"
            app:lottie_loop="true"
            android:clipChildren="false"
            android:clipToPadding="false"
            app:lottie_speed=".85" />

        <LinearLayout
            style="@style/SudContentFrame"
            android:id="@+id/udfps_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:clipToPadding="false"
@@ -48,20 +69,6 @@
                    android:layout_gravity="center_horizontal|bottom"
                    tools:ignore="Suspicious0dp">

              <!-- Animation res MUST be set in code -->
              <com.airbnb.lottie.LottieAnimationView
                  android:id="@+id/illustration_lottie"
                  android:layout_width="match_parent"
                  android:layout_height="200dp"
                  android:layout_marginTop="@dimen/udfps_lottie_translate_y"
                  android:scaleType="centerInside"
                  android:visibility="gone"
                  app:lottie_autoPlay="true"
                  app:lottie_loop="true"
                  android:clipChildren="false"
                  android:clipToPadding="false"
                  app:lottie_speed=".85" />

                    <include layout="@layout/udfps_enroll_view" />

                </FrameLayout>
@@ -77,5 +84,6 @@
                    android:visibility="invisible" />
            </LinearLayout>
        </LinearLayout>
    </androidx.constraintlayout.widget.ConstraintLayout>

</com.android.settings.biometrics.fingerprint.UdfpsEnrollEnrollingView>
+81 −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.
  -->

<com.android.settings.biometrics.fingerprint.UdfpsEnrollEnrollingView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/setup_wizard_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    style="?attr/fingerprint_layout_theme">

    <LinearLayout
        style="@style/SudContentFrame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipToPadding="false"
        android:clipChildren="false"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:gravity="center|bottom"
            android:orientation="vertical">

            <FrameLayout
                android:id="@+id/layout_container"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:clipChildren="false"
                android:clipToPadding="false"
                android:layout_gravity="center_horizontal|bottom"
                tools:ignore="Suspicious0dp">

                <!-- Animation res MUST be set in code -->
                <com.airbnb.lottie.LottieAnimationView
                    android:id="@+id/illustration_lottie"
                    android:layout_width="match_parent"
                    android:layout_height="200dp"
                    android:layout_marginTop="@dimen/udfps_lottie_translate_y"
                    android:scaleType="centerInside"
                    android:visibility="gone"
                    app:lottie_autoPlay="true"
                    app:lottie_loop="true"
                    android:clipChildren="false"
                    android:clipToPadding="false"
                    app:lottie_speed=".85" />

                <include layout="@layout/udfps_enroll_view" />

            </FrameLayout>

            <TextView
                android:id="@+id/error_text"
                style="@style/TextAppearance.ErrorText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal|bottom"
                android:accessibilityLiveRegion="polite"
                android:gravity="center_horizontal"
                android:visibility="invisible" />
        </LinearLayout>
    </LinearLayout>

</com.android.settings.biometrics.fingerprint.UdfpsEnrollEnrollingView>
Loading