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

Commit acd2bf22 authored by Grace Cheng's avatar Grace Cheng
Browse files

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
parent c52342b1
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -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<Int, Int> = 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) {