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

Commit ddaca8c9 authored by Vincent Wang's avatar Vincent Wang Committed by Automerger Merge Worker
Browse files

Merge "Fix biometric prompt will delay dismiss after long press power key"...

Merge "Fix biometric prompt will delay dismiss after long press power key" into udc-dev am: a9142c6a am: 32ea79a7

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21915583



Change-Id: I5c338c0bcfb5cc925d4a0eed6377103b87a54205
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 85c56400 32ea79a7
Loading
Loading
Loading
Loading
+26 −17
Original line number Diff line number Diff line
@@ -198,12 +198,17 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks,
    final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (mCurrentDialog != null
                    && Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(intent.getAction())) {
            if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(intent.getAction())) {
                String reason = intent.getStringExtra("reason");
                reason = (reason != null) ? reason : "unknown";
                Log.d(TAG, "ACTION_CLOSE_SYSTEM_DIALOGS received, reason: " + reason);
                closeDioalog(reason);
            }
        }
    };

    private void closeDioalog(String reason) {
        if (isShowing()) {
            Log.i(TAG, "Close BP, reason :" + reason);
            mCurrentDialog.dismissWithoutCallback(true /* animate */);
            mCurrentDialog = null;

@@ -222,7 +227,6 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks,
            }
        }
    }
    };

    private void cancelIfOwnerIsNotInForeground() {
        mExecution.assertIsMainThread();
@@ -546,6 +550,11 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks,
        }
    }

    @Override
    public void handleShowGlobalActionsMenu() {
        closeDioalog("PowerMenu shown");
    }

    /**
     * @return where the UDFPS exists on the screen in pixels in portrait mode.
     */
+9 −1
Original line number Diff line number Diff line
@@ -35,7 +35,6 @@ import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
@@ -930,6 +929,15 @@ public class AuthControllerTest extends SysuiTestCase {
        assertNotSame(firstFpLocation, mAuthController.getFingerprintSensorLocation());
    }

    @Test
    public void testCloseDialog_whenGlobalActionsMenuShown() throws Exception {
        showDialog(new int[]{1} /* sensorIds */, false /* credentialAllowed */);
        mAuthController.handleShowGlobalActionsMenu();
        verify(mReceiver).onDialogDismissed(
                eq(BiometricPrompt.DISMISSED_REASON_USER_CANCEL),
                eq(null) /* credentialAttestation */);
    }

    private void showDialog(int[] sensorIds, boolean credentialAllowed) {
        mAuthController.showAuthenticationDialog(createTestPromptInfo(),
                mReceiver /* receiver */,