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

Commit 4b40fa50 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Update animation for fingerprint edu page" into sc-v2-dev

parents 29063a79 dc4ec9bf
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@

<com.google.android.setupdesign.GlifLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/setup_wizard_layout"
    style="?attr/fingerprint_layout_theme"
    android:layout_width="match_parent"
@@ -40,5 +41,27 @@
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"/>

        <com.airbnb.lottie.LottieAnimationView
            android:id="@+id/illustration_lottie"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scaleType="centerInside"
            android:visibility="gone"
            app:lottie_imageAssetsFolder="images"
            app:lottie_autoPlay="true"
            app:lottie_loop="true"
            app:lottie_rawRes="@raw/fingerprint_edu_lottie"/>

        <com.airbnb.lottie.LottieAnimationView
            android:id="@+id/illustration_lottie_portrait"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scaleType="centerInside"
            android:visibility="gone"
            app:lottie_imageAssetsFolder="images"
            app:lottie_autoPlay="true"
            app:lottie_loop="true"
            app:lottie_rawRes="@raw/fingerprint_edu_lottie_portrait"/>

    </LinearLayout>
</com.google.android.setupdesign.GlifLayout>
+0 −0

Empty file added.

+0 −0

Empty file added.

+66 −1
Original line number Diff line number Diff line
@@ -21,13 +21,14 @@ import android.content.Intent;
import android.hardware.fingerprint.FingerprintManager;
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
import android.os.Bundle;
import android.view.OrientationEventListener;
import android.view.Surface;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.accessibility.AccessibilityManager;

import androidx.annotation.Nullable;

import com.airbnb.lottie.LottieAnimationView;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.biometrics.BiometricEnrollBase;
@@ -35,6 +36,7 @@ import com.android.settings.biometrics.BiometricEnrollSidecar;
import com.android.settings.biometrics.BiometricUtils;
import com.android.settings.password.ChooseLockSettingsHelper;

import com.airbnb.lottie.LottieAnimationView;
import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupcompat.template.FooterButton;

@@ -52,6 +54,10 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements
    private FingerprintEnrollSidecar mSidecar;
    private boolean mNextClicked;
    private boolean mCanAssumeUdfps;
    private boolean mCanAssumeSidefps;

    private OrientationEventListener mOrientationEventListener;
    private int mPreviousRotation = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
@@ -61,6 +67,7 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements
        final List<FingerprintSensorPropertiesInternal> props =
                fingerprintManager.getSensorPropertiesInternal();
        mCanAssumeUdfps = props != null && props.size() == 1 && props.get(0).isAnyUdfpsType();
        mCanAssumeSidefps = props != null && props.size() == 1 && props.get(0).isAnySidefpsType();
        setContentView(getContentView());
        mFooterBarMixin = getLayout().getMixin(FooterBarMixin.class);
        mFooterBarMixin.setSecondaryButton(
@@ -72,6 +79,8 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements
                        .build()
        );

        listenOrientationEvent();

        if (mCanAssumeUdfps) {
            setHeaderText(R.string.security_settings_udfps_enroll_find_sensor_title);
            setDescriptionText(R.string.security_settings_udfps_enroll_find_sensor_message);
@@ -90,6 +99,28 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements
                lottieAnimationView.setAnimation(R.raw.udfps_edu_a11y_lottie);
            }

        } else if (mCanAssumeSidefps) {
            setHeaderText(R.string.security_settings_fingerprint_enroll_find_sensor_title);
            setDescriptionText(R.string.security_settings_fingerprint_enroll_find_sensor_message);
            final LottieAnimationView lottieAnimationView = findViewById(R.id.illustration_lottie);
            final LottieAnimationView lottieAnimationViewPortrait =
                    findViewById(R.id.illustration_lottie_portrait);
            final int rotation = getApplicationContext().getDisplay().getRotation();
            switch(rotation) {
                case Surface.ROTATION_90:
                    lottieAnimationView.setVisibility(View.GONE);
                    lottieAnimationViewPortrait.setVisibility(View.VISIBLE);
                    break;
                case Surface.ROTATION_270:
                    lottieAnimationView.setVisibility(View.GONE);
                    lottieAnimationViewPortrait.setVisibility(View.VISIBLE);
                    lottieAnimationViewPortrait.setRotation(180);
                    break;
                default:
                    lottieAnimationView.setVisibility(View.VISIBLE);
                    lottieAnimationViewPortrait.setVisibility(View.GONE);
                    break;
            }
        } else {
            setHeaderText(R.string.security_settings_fingerprint_enroll_find_sensor_title);
            setDescriptionText(R.string.security_settings_fingerprint_enroll_find_sensor_message);
@@ -220,6 +251,7 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements

    @Override
    protected void onDestroy() {
        stopListenOrientationEvent();
        super.onDestroy();
        if (mAnimation != null) {
            mAnimation.stopAnimation();
@@ -297,4 +329,37 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements
    public int getMetricsCategory() {
        return SettingsEnums.FINGERPRINT_FIND_SENSOR;
    }

    private void listenOrientationEvent() {
        if (!mCanAssumeSidefps) {
            // Do nothing if the device doesn't support SideFPS.
            return;
        }
        mOrientationEventListener = new OrientationEventListener(this) {
            @Override
            public void onOrientationChanged(int orientation) {
                final int currentRotation = getDisplay().getRotation();
                if ((mPreviousRotation == Surface.ROTATION_90
                        && currentRotation == Surface.ROTATION_270) || (
                        mPreviousRotation == Surface.ROTATION_270
                                && currentRotation == Surface.ROTATION_90)) {
                    mPreviousRotation = currentRotation;
                    recreate();
                }
            }
        };
        mOrientationEventListener.enable();
        mPreviousRotation = getDisplay().getRotation();
    }

    private void stopListenOrientationEvent() {
        if (!mCanAssumeSidefps) {
            // Do nothing if the device doesn't support SideFPS.
            return;
        }
        if (mOrientationEventListener != null) {
            mOrientationEventListener.disable();
        }
        mOrientationEventListener = null;
    }
}