Enable orientation listener at all times.

Fix: 186372522
Test: manual (Settings -> enroll fingerprint, flip device in all orientations)
Change-Id: Icce7846c5637711d8abad1121095fd7a25ed644f
This commit is contained in:
Joe Bolinger
2021-07-07 15:07:36 -07:00
parent 679e91ac61
commit 7efc7a9171

View File

@@ -121,11 +121,15 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks,
}
private class BiometricOrientationEventListener extends OrientationEventListener {
@Surface.Rotation private int mLastRotation;
@Surface.Rotation private int mLastRotation = ORIENTATION_UNKNOWN;
BiometricOrientationEventListener(Context context) {
super(context);
mLastRotation = context.getDisplay().getRotation();
final Display display = context.getDisplay();
if (display != null) {
mLastRotation = display.getRotation();
}
}
@Override
@@ -200,7 +204,6 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks,
Log.w(TAG, "ACTION_CLOSE_SYSTEM_DIALOGS received");
mCurrentDialog.dismissWithoutCallback(true /* animate */);
mCurrentDialog = null;
mOrientationListener.disable();
try {
if (mReceiver != null) {
@@ -229,7 +232,6 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks,
Log.w(TAG, "Evicting client due to: " + topPackage);
mCurrentDialog.dismissWithoutCallback(true /* animate */);
mCurrentDialog = null;
mOrientationListener.disable();
if (mReceiver != null) {
mReceiver.onDialogDismissed(
@@ -469,6 +471,7 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks,
mSidefpsControllerFactory = sidefpsControllerFactory;
mWindowManager = windowManager;
mOrientationListener = new BiometricOrientationEventListener(context);
mOrientationListener.enable();
mFaceProps = mFaceManager != null ? mFaceManager.getSensorPropertiesInternal() : null;
@@ -663,7 +666,6 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks,
// BiometricService will have already sent the callback to the client in this case.
// This avoids a round trip to SystemUI. So, just dismiss the dialog and we're done.
mCurrentDialog = null;
mOrientationListener.disable();
}
/**
@@ -735,7 +737,6 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks,
mReceiver = (IBiometricSysuiReceiver) args.arg2;
mCurrentDialog = newDialog;
mCurrentDialog.show(mWindowManager, savedState);
mOrientationListener.enable();
}
private void onDialogDismissed(@DismissedReason int reason) {
@@ -745,7 +746,6 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks,
}
mReceiver = null;
mCurrentDialog = null;
mOrientationListener.disable();
}
@Override
@@ -758,7 +758,6 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks,
mCurrentDialog.onSaveState(savedState);
mCurrentDialog.dismissWithoutCallback(false /* animate */);
mCurrentDialog = null;
mOrientationListener.disable();
// Only show the dialog if necessary. If it was animating out, the dialog is supposed
// to send its pending callback immediately.