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

Commit e82b3e2e authored by Matt Pietal's avatar Matt Pietal Committed by Android (Google) Code Review
Browse files

Merge "Don't show udfps controller multiple times" into main

parents e8d7cf37 0d12d5ce
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -364,6 +364,25 @@ public class UdfpsControllerTest extends SysuiTestCase {
                TEST_REQUEST_ID, mOpticalProps.sensorId);
    }

    @Test
    public void showUdfpsOverlay_invokedTwice_doesNotNotifyListenerSecondTime() throws RemoteException {
        mOverlayController.showUdfpsOverlay(TEST_REQUEST_ID, mOpticalProps.sensorId,
                BiometricRequestConstants.REASON_AUTH_KEYGUARD, mUdfpsOverlayControllerCallback);
        mFgExecutor.runAllReady();

        verify(mFingerprintManager).onUdfpsUiEvent(FingerprintManager.UDFPS_UI_OVERLAY_SHOWN,
                TEST_REQUEST_ID, mOpticalProps.sensorId);

        reset(mFingerprintManager);

        // Second attempt should do nothing
        mOverlayController.showUdfpsOverlay(TEST_REQUEST_ID, mOpticalProps.sensorId,
                BiometricRequestConstants.REASON_AUTH_KEYGUARD, mUdfpsOverlayControllerCallback);
        mFgExecutor.runAllReady();
        verify(mFingerprintManager, never()).onUdfpsUiEvent(FingerprintManager.UDFPS_UI_OVERLAY_SHOWN,
                TEST_REQUEST_ID, mOpticalProps.sensorId);
    }

    @Test
    public void testSubscribesToOrientationChangesWhenShowingOverlay() throws Exception {
        mOverlayController.showUdfpsOverlay(TEST_REQUEST_ID, mOpticalProps.sensorId,
+7 −2
Original line number Diff line number Diff line
@@ -814,6 +814,11 @@ public class UdfpsController implements DozeReceiver, Dumpable {
    private void showUdfpsOverlay(@NonNull UdfpsControllerOverlay overlay) {
        mExecution.assertIsMainThread();

        if (mOverlay != null) {
            Log.d(TAG, "showUdfpsOverlay | the overlay is already showing");
            return;
        }

        mOverlay = overlay;
        final int requestReason = overlay.getRequestReason();
        if (requestReason == REASON_AUTH_KEYGUARD
@@ -823,7 +828,7 @@ public class UdfpsController implements DozeReceiver, Dumpable {
            return;
        }
        if (overlay.show(this, mOverlayParams)) {
            Log.v(TAG, "showUdfpsOverlay | adding window reason=" + requestReason);
            Log.d(TAG, "showUdfpsOverlay | adding window reason=" + requestReason);
            mOnFingerDown = false;
            mAttemptedToDismissKeyguard = false;
            mOrientationListener.enable();
@@ -832,7 +837,7 @@ public class UdfpsController implements DozeReceiver, Dumpable {
                        overlay.getRequestId(), mSensorProps.sensorId);
            }
        } else {
            Log.v(TAG, "showUdfpsOverlay | the overlay is already showing");
            Log.d(TAG, "showUdfpsOverlay | the overlay is already showing");
        }
    }

+2 −2
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import android.view.WindowManager
import android.view.accessibility.AccessibilityManager
import android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener
import androidx.annotation.VisibleForTesting
import com.android.app.tracing.coroutines.launchTraced as launch
import com.android.app.viewcapture.ViewCaptureAwareWindowManager
import com.android.keyguard.KeyguardUpdateMonitor
import com.android.systemui.animation.ActivityTransitionAnimator
@@ -73,7 +74,6 @@ import kotlinx.coroutines.Job
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.filter
import kotlinx.coroutines.flow.map
import com.android.app.tracing.coroutines.launchTraced as launch

private const val TAG = "UdfpsControllerOverlay"

@@ -245,7 +245,7 @@ constructor(
            return true
        }

        Log.v(TAG, "showUdfpsOverlay | the overlay is already showing")
        Log.d(TAG, "showUdfpsOverlay | the overlay is already showing")
        return false
    }