From acd2bf22b8882121c7e97730855f8850accdd8f3 Mon Sep 17 00:00:00 2001 From: Grace Cheng Date: Wed, 1 Feb 2023 06:07:14 +0000 Subject: [PATCH] Updates AuthBiometricFingerprintIconController for reverse default orientation devices Updates AuthBiometricFingerprintIconController to translate system reported rotation values for reverse default orientation devices. This fixes an issue where the wrong orientation assets were being shown in BiometricPrompt Test: (manual) Checking BP assets in all orientations in x-aligned and y-aligned sfps devices Fixes: 266550908 Change-Id: If4c9c469d7be2c1ee406a87521e712902a1f0f0e --- .../biometrics/AuthBiometricFingerprintIconController.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricFingerprintIconController.kt b/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricFingerprintIconController.kt index 436f9dfb0d742..71d9940cf79d2 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricFingerprintIconController.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricFingerprintIconController.kt @@ -46,6 +46,8 @@ open class AuthBiometricFingerprintIconController( private var isDeviceFolded: Boolean = false private val isSideFps: Boolean + private val isReverseDefaultRotation = + context.resources.getBoolean(com.android.internal.R.bool.config_reverseDefaultRotation) private val screenSizeFoldProvider: ScreenSizeFoldProvider = ScreenSizeFoldProvider(context) var iconLayoutParamSize: Pair = Pair(1, 1) set(value) { @@ -76,7 +78,7 @@ open class AuthBiometricFingerprintIconController( isSideFps = sideFps val displayInfo = DisplayInfo() context.display?.getDisplayInfo(displayInfo) - if (isSideFps && displayInfo.rotation == Surface.ROTATION_180) { + if (isSideFps && getRotationFromDefault(displayInfo.rotation) == Surface.ROTATION_180) { iconView.rotation = 180f } screenSizeFoldProvider.registerCallback(this, context.mainExecutor) @@ -86,7 +88,7 @@ open class AuthBiometricFingerprintIconController( private fun updateIconSideFps(@BiometricState lastState: Int, @BiometricState newState: Int) { val displayInfo = DisplayInfo() context.display?.getDisplayInfo(displayInfo) - val rotation = displayInfo.rotation + val rotation = getRotationFromDefault(displayInfo.rotation) val iconAnimation = getSideFpsAnimationForTransition(rotation) val iconViewOverlayAnimation = getSideFpsOverlayAnimationForTransition(lastState, newState, rotation) ?: return @@ -217,6 +219,9 @@ open class AuthBiometricFingerprintIconController( return if (id != null) return id else null } + private fun getRotationFromDefault(rotation: Int): Int = + if (isReverseDefaultRotation) (rotation + 1) % 4 else rotation + @RawRes private fun getSideFpsAnimationForTransition(rotation: Int): Int = when (rotation) { Surface.ROTATION_90 -> if (isDeviceFolded) {