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

Commit 327eaf16 authored by Diya Bera's avatar Diya Bera
Browse files

Removed subtext from side fps enrollment flow

Test: Manual (Try to enroll your fingerprint in a side fps device, and
observe that there is no subtext in landscape mode)
Bug: 267271891

Change-Id: Iba4c13e8083ecb92f8033882af9147f14071e726
Merged-in: Iba4c13e8083ecb92f8033882af9147f14071e726
parent 64fd489c
Loading
Loading
Loading
Loading
+20 −29
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.settings.biometrics.fingerprint;

import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ERROR_USER_CANCELED;
import static android.text.Layout.HYPHENATION_FREQUENCY_NONE;

import android.animation.Animator;
import android.animation.ObjectAnimator;
@@ -278,7 +279,6 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
            setDescriptionText(R.string.security_settings_udfps_enroll_start_message);
        } else if (mCanAssumeSfps) {
            setContentView(R.layout.sfps_enroll_enrolling);
            setDescriptionText(R.string.security_settings_fingerprint_enroll_start_message);
            setHelpAnimation();
        } else {
            setContentView(R.layout.fingerprint_enroll_enrolling);
@@ -544,7 +544,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
                    mIllustrationLottie.setContentDescription(
                            getString(R.string.security_settings_udfps_tip_fingerprint_help)
                    );
                    configureEnrollmentStage("", R.raw.udfps_tip_hint_lottie);
                    configureEnrollmentStage(R.raw.udfps_tip_hint_lottie);
                }
                break;

@@ -555,7 +555,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
                    mIllustrationLottie.setContentDescription(
                            getString(R.string.security_settings_udfps_side_fingerprint_help)
                    );
                    configureEnrollmentStage("", R.raw.udfps_left_edge_hint_lottie);
                    configureEnrollmentStage(R.raw.udfps_left_edge_hint_lottie);
                } else if (mIllustrationLottie == null) {
                    if (isStageHalfCompleted()) {
                        setDescriptionText(
@@ -572,7 +572,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
                    mIllustrationLottie.setContentDescription(
                            getString(R.string.security_settings_udfps_side_fingerprint_help)
                    );
                    configureEnrollmentStage("", R.raw.udfps_right_edge_hint_lottie);
                    configureEnrollmentStage(R.raw.udfps_right_edge_hint_lottie);

                } else if (mIllustrationLottie == null) {
                    if (isStageHalfCompleted()) {
@@ -624,10 +624,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
                                    0
                            )
                    );
                    configureEnrollmentStage(
                            getString(R.string.security_settings_sfps_enroll_start_message),
                            R.raw.sfps_lottie_no_animation
                    );
                    configureEnrollmentStage(R.raw.sfps_lottie_no_animation);
                }
                break;

@@ -635,10 +632,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
                setHeaderText(R.string.security_settings_sfps_enroll_finger_center_title);
                if (!mHaveShownSfpsCenterLottie && mIllustrationLottie != null) {
                    mHaveShownSfpsCenterLottie = true;
                    configureEnrollmentStage(
                            getString(R.string.security_settings_sfps_enroll_start_message),
                            R.raw.sfps_lottie_pad_center
                    );
                    configureEnrollmentStage(R.raw.sfps_lottie_pad_center);
                }
                break;

@@ -646,7 +640,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
                setHeaderText(R.string.security_settings_sfps_enroll_fingertip_title);
                if (!mHaveShownSfpsTipLottie && mIllustrationLottie != null) {
                    mHaveShownSfpsTipLottie = true;
                    configureEnrollmentStage("", R.raw.sfps_lottie_tip);
                    configureEnrollmentStage(R.raw.sfps_lottie_tip);
                }
                break;

@@ -654,7 +648,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
                setHeaderText(R.string.security_settings_sfps_enroll_left_edge_title);
                if (!mHaveShownSfpsLeftEdgeLottie && mIllustrationLottie != null) {
                    mHaveShownSfpsLeftEdgeLottie = true;
                    configureEnrollmentStage("", R.raw.sfps_lottie_left_edge);
                    configureEnrollmentStage(R.raw.sfps_lottie_left_edge);
                }
                break;

@@ -662,7 +656,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
                setHeaderText(R.string.security_settings_sfps_enroll_right_edge_title);
                if (!mHaveShownSfpsRightEdgeLottie && mIllustrationLottie != null) {
                    mHaveShownSfpsRightEdgeLottie = true;
                    configureEnrollmentStage("", R.raw.sfps_lottie_right_edge);
                    configureEnrollmentStage(R.raw.sfps_lottie_right_edge);
                }
                break;

@@ -673,7 +667,6 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
                // announce a different string for a11y upon entering the page.
                getLayout().setHeaderText(
                        R.string.security_settings_sfps_enroll_find_sensor_title);
                setDescriptionText(R.string.security_settings_sfps_enroll_start_message);
                final CharSequence description = getString(
                        R.string.security_settings_sfps_enroll_find_sensor_message);
                getLayout().getHeaderTextView().setContentDescription(description);
@@ -683,8 +676,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
        }
    }

    private void configureEnrollmentStage(CharSequence description, @RawRes int lottie) {
        setDescriptionText(description);
    private void configureEnrollmentStage(@RawRes int lottie) {
        LottieCompositionFactory.fromRawRes(this, lottie)
                .addListener((c) -> {
                    mIllustrationLottie.setComposition(c);
@@ -858,16 +850,16 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
    }

    private void showError(CharSequence error) {
        if (mCanAssumeUdfps || mCanAssumeSfps) {
            setHeaderText(error);
            // Show nothing for subtitle when getting an error message.
            setDescriptionText("");
        if (mCanAssumeSfps) {
            setHeaderText(error);
            if (!mHelpAnimation.isRunning()) {
                mHelpAnimation.start();
            }
            applySfpsErrorDynamicColors(getApplicationContext(), true);
            }
        } else if (mCanAssumeUdfps) {
            setHeaderText(error);
            // Show nothing for subtitle when getting an error message.
            setDescriptionText("");
        } else {
            mErrorText.setText(error);
            if (mErrorText.getVisibility() == View.INVISIBLE) {
@@ -1090,17 +1082,16 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
        final boolean isLandscape = newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE;

        if (mCanAssumeSfps) {
            // hide the description
            descriptionMixin.getTextView().setVisibility(View.GONE);
            headerMixin.getTextView().setHyphenationFrequency(HYPHENATION_FREQUENCY_NONE);
            if (isLandscape) {
                headerMixin.setAutoTextSizeEnabled(true);
                headerMixin.getTextView().setMinLines(0);
                headerMixin.getTextView().setMaxLines(10);
                descriptionMixin.getTextView().setMinLines(0);
                descriptionMixin.getTextView().setMaxLines(10);
            } else {
                headerMixin.setAutoTextSizeEnabled(false);
                headerMixin.getTextView().setLines(4);
                // hide the description
                descriptionMixin.getTextView().setLines(0);
            }
        }
    }
+27 −0
Original line number Diff line number Diff line
@@ -51,12 +51,14 @@ import android.os.CancellationSignal;
import android.os.Vibrator;
import android.view.Display;
import android.view.Surface;
import android.view.View;

import com.android.settings.R;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.widget.RingProgressBar;

import com.airbnb.lottie.LottieAnimationView;
import com.google.android.setupdesign.GlifLayout;

import org.junit.Before;
import org.junit.Test;
@@ -263,6 +265,28 @@ public class FingerprintEnrollEnrollingTest {
        assertThat(appliedThemes.contains("SetupWizardPartnerResource")).isTrue();
    }

    @Test
    public void fingerprintSfpsEnroll_descriptionTextVisibility() {
        initializeActivityFor(TYPE_POWER_BUTTON);

        mActivity.onEnrollmentProgressChange(1 /* steps */, 1 /* remaining */);

        assertThat(getLayout().getDescriptionTextView().getVisibility()).isEqualTo(View.GONE);
    }

    @Test
    public void fingerprintUdfpsEnroll_descriptionTextVisibility() {
        initializeActivityFor(TYPE_UDFPS_OPTICAL);

        mActivity.onEnrollmentProgressChange(1 /* steps */, 1 /* remaining */);

        assertThat(getLayout().getDescriptionTextView().getVisibility()).isEqualTo(View.VISIBLE);
    }

    private GlifLayout getLayout() {
        return (GlifLayout) mActivity.findViewById(R.id.setup_wizard_layout);
    }

    private void initializeActivityFor(int sensorType) {
        final List<ComponentInfoInternal> componentInfo = new ArrayList<>();
        final FingerprintSensorPropertiesInternal prop =
@@ -297,6 +321,9 @@ public class FingerprintEnrollEnrollingTest {
                doReturn(mSfpsStageThresholds[stage]).when(mActivity).getStageThresholdSteps(stage);
            }
            doReturn(true).when(mSidecar).isEnrolling();
            ReflectionHelpers.setField(mActivity, "mCanAssumeSfps", true);
        } else if (sensorType == TYPE_UDFPS_OPTICAL) {
            ReflectionHelpers.setField(mActivity, "mCanAssumeUdfps", true);
        }

        ActivityController.of(mActivity).create(savedInstanceState);