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

Commit c24e305f authored by Hao Dong's avatar Hao Dong
Browse files

Wait for systemui udfps overlay ready to show settings udfps enroll view.

Previously, we show settings's udfps enroll animation view (the fingerprint icon and progress view) once the FingerprintEnrollEnrolling is shown.
However, touch events have to wait for systemui's udfps overlay to be valid. This CL lets settings's udfps enroll view wait for systemui's overlay.
1. Sets udfps enroll animation view's default visibility Gone.
2. Propagates FingerprintManager#onUdfpsOverlayShown to
   FingerprintEnrollEnrolling and when it's called, set the enroll view
   visible.

Besides, this CL renames onPointerDown() and onPointerUp() with Udfps.

Bug: 280718879
Test: atest FingerprintEnrollEnrollingTest
Change-Id: Ieed3e74c182828918785edcacb021f19a3665f2a
parent dbec7ba7
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -18,7 +18,8 @@
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/udfps_animation_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    android:layout_height="match_parent"
    android:visibility="gone">

    <ImageView
        android:id="@+id/udfps_enroll_animation_fp_progress_view"
+34 −14
Original line number Diff line number Diff line
@@ -48,11 +48,16 @@ public abstract class BiometricEnrollSidecar extends InstrumentedFragment {
        /**
         * Called when a pointer down event has occurred.
         */
        default void onPointerDown(int sensorId) { }
        default void onUdfpsPointerDown(int sensorId) { }
        /**
         * Called when a pointer up event has occurred.
         */
        default void onPointerUp(int sensorId) { }
        default void onUdfpsPointerUp(int sensorId) { }

        /**
         * Called when udfps overlay is shown.
         */
        default void onUdfpsOverlayShown() { }
    }

    private int mEnrollmentSteps = -1;
@@ -126,29 +131,36 @@ public abstract class BiometricEnrollSidecar extends InstrumentedFragment {
        }
    }

    private class QueuedPointerDown extends QueuedEvent {
    private class QueuedUdfpsPointerDown extends QueuedEvent {
        private final int sensorId;

        public QueuedPointerDown(int sensorId) {
        QueuedUdfpsPointerDown(int sensorId) {
            this.sensorId = sensorId;
        }

        @Override
        public void send(Listener listener) {
            listener.onPointerDown(sensorId);
            listener.onUdfpsPointerDown(sensorId);
        }
    }

    private class QueuedPointerUp extends QueuedEvent {
    private class QueuedUdfpsPointerUp extends QueuedEvent {
        private final int sensorId;

        public QueuedPointerUp(int sensorId) {
        QueuedUdfpsPointerUp(int sensorId) {
            this.sensorId = sensorId;
        }

        @Override
        public void send(Listener listener) {
            listener.onPointerUp(sensorId);
            listener.onUdfpsPointerUp(sensorId);
        }
    }

    private class QueuedUdfpsOverlayShown extends QueuedEvent {
        @Override
        public void send(Listener listener) {
            listener.onUdfpsOverlayShown();
        }
    }

@@ -249,19 +261,27 @@ public abstract class BiometricEnrollSidecar extends InstrumentedFragment {
        }
    }

    protected void onPointerDown(int sensorId) {
    protected void onUdfpsPointerDown(int sensorId) {
        if (mListener != null) {
            mListener.onUdfpsPointerDown(sensorId);
        } else {
            mQueuedEvents.add(new QueuedUdfpsPointerDown(sensorId));
        }
    }

    protected void onUdfpsPointerUp(int sensorId) {
        if (mListener != null) {
            mListener.onPointerDown(sensorId);
            mListener.onUdfpsPointerUp(sensorId);
        } else {
            mQueuedEvents.add(new QueuedPointerDown(sensorId));
            mQueuedEvents.add(new QueuedUdfpsPointerUp(sensorId));
        }
    }

    protected void onPointerUp(int sensorId) {
    protected void onUdfpsOverlayShown() {
        if (mListener != null) {
            mListener.onPointerUp(sensorId);
            mListener.onUdfpsOverlayShown();
        } else {
            mQueuedEvents.add(new QueuedPointerUp(sensorId));
            mQueuedEvents.add(new QueuedUdfpsOverlayShown());
        }
    }

+9 −2
Original line number Diff line number Diff line
@@ -828,19 +828,26 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling {
    }

    @Override
    public void onPointerDown(int sensorId) {
    public void onUdfpsPointerDown(int sensorId) {
        if (mUdfpsEnrollHelper != null) {
            mUdfpsEnrollHelper.onPointerDown(sensorId);
        }
    }

    @Override
    public void onPointerUp(int sensorId) {
    public void onUdfpsPointerUp(int sensorId) {
        if (mUdfpsEnrollHelper != null) {
            mUdfpsEnrollHelper.onPointerUp(sensorId);
        }
    }

    @Override
    public void onUdfpsOverlayShown() {
        if (mCanAssumeUdfps) {
            findViewById(R.id.udfps_animation_view).setVisibility(View.VISIBLE);
        }
    }

    private void updateProgress(boolean animate) {
        if (mSidecar == null || !mSidecar.isEnrolling()) {
            Log.d(TAG, "Enrollment not started yet");
+9 −4
Original line number Diff line number Diff line
@@ -124,13 +124,18 @@ public class FingerprintEnrollSidecar extends BiometricEnrollSidecar {
        }

        @Override
        public void onPointerDown(int sensorId) {
            FingerprintEnrollSidecar.super.onPointerDown(sensorId);
        public void onUdfpsPointerDown(int sensorId) {
            FingerprintEnrollSidecar.super.onUdfpsPointerDown(sensorId);
        }

        @Override
        public void onPointerUp(int sensorId) {
            FingerprintEnrollSidecar.super.onPointerUp(sensorId);
        public void onUdfpsPointerUp(int sensorId) {
            FingerprintEnrollSidecar.super.onUdfpsPointerUp(sensorId);
        }

        @Override
        public void onUdfpsOverlayShown() {
            FingerprintEnrollSidecar.super.onUdfpsOverlayShown();
        }
    };

+9 −4
Original line number Diff line number Diff line
@@ -98,13 +98,18 @@ public class FingerprintUpdater {
        }

        @Override
        public void onPointerDown(int sensorId) {
            mCallback.onPointerDown(sensorId);
        public void onUdfpsPointerDown(int sensorId) {
            mCallback.onUdfpsPointerDown(sensorId);
        }

        @Override
        public void onPointerUp(int sensorId) {
            mCallback.onPointerUp(sensorId);
        public void onUdfpsPointerUp(int sensorId) {
            mCallback.onUdfpsPointerUp(sensorId);
        }

        @Override
        public void onUdfpsOverlayShown() {
            mCallback.onUdfpsOverlayShown();
        }
    }

Loading