Enable orientation listener at all times.
Fix: 186372522
Test: manual (Settings -> enroll fingerprint, flip device in all orientations)
Change-Id: Icce7846c5637711d8abad1121095fd7a25ed644f
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java
index 2a18055..2aa89e86 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthController.java
@@ -121,11 +121,15 @@
}
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 @@
Log.w(TAG, "ACTION_CLOSE_SYSTEM_DIALOGS received");
mCurrentDialog.dismissWithoutCallback(true /* animate */);
mCurrentDialog = null;
- mOrientationListener.disable();
try {
if (mReceiver != null) {
@@ -229,7 +232,6 @@
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 @@
mSidefpsControllerFactory = sidefpsControllerFactory;
mWindowManager = windowManager;
mOrientationListener = new BiometricOrientationEventListener(context);
+ mOrientationListener.enable();
mFaceProps = mFaceManager != null ? mFaceManager.getSensorPropertiesInternal() : null;
@@ -663,7 +666,6 @@
// 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 @@
mReceiver = (IBiometricSysuiReceiver) args.arg2;
mCurrentDialog = newDialog;
mCurrentDialog.show(mWindowManager, savedState);
- mOrientationListener.enable();
}
private void onDialogDismissed(@DismissedReason int reason) {
@@ -745,7 +746,6 @@
}
mReceiver = null;
mCurrentDialog = null;
- mOrientationListener.disable();
}
@Override
@@ -758,7 +758,6 @@
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.