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

Commit 1db3eec0 authored by Austin Delgado's avatar Austin Delgado Committed by Android (Google) Code Review
Browse files

Merge "Add support for 180 rotation BP" into main

parents 0c1aab59 8dd1c089
Loading
Loading
Loading
Loading
+37 −15
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ import com.android.systemui.biometrics.ui.viewmodel.isLeft
import com.android.systemui.biometrics.ui.viewmodel.isMedium
import com.android.systemui.biometrics.ui.viewmodel.isNullOrNotSmall
import com.android.systemui.biometrics.ui.viewmodel.isSmall
import com.android.systemui.biometrics.ui.viewmodel.isTop
import com.android.systemui.lifecycle.repeatWhenAttached
import com.android.systemui.res.R
import kotlin.math.abs
@@ -100,13 +101,13 @@ object BiometricViewSizeBinder {
            val iconHolderView = view.requireViewById<View>(R.id.biometric_icon)
            val panelView = view.requireViewById<View>(R.id.panel)
            val cornerRadius = view.resources.getDimension(R.dimen.biometric_dialog_corner_size)
            val cornerRadiusPx =
            val pxToDp =
                TypedValue.applyDimension(
                    TypedValue.COMPLEX_UNIT_DIP,
                        cornerRadius,
                    1f,
                    view.resources.displayMetrics
                )
                    .toInt()
            val cornerRadiusPx = (pxToDp * cornerRadius).toInt()

            var currentSize: PromptSize? = null
            var currentPosition: PromptPosition = PromptPosition.Bottom
@@ -132,16 +133,8 @@ object BiometricViewSizeBinder {
                                    cornerRadiusPx.toFloat()
                                )
                            }
                            PromptPosition.Bottom,
                            PromptPosition.Top -> {
                                outline.setRoundRect(
                                    0,
                                    -cornerRadiusPx,
                                    view.width,
                                    view.height,
                                    cornerRadiusPx.toFloat()
                                )
                            }
                            PromptPosition.Bottom -> {
                                outline.setRoundRect(
                                    0,
                                    0,
@@ -308,6 +301,7 @@ object BiometricViewSizeBinder {
                            }
                        }
                    }

                    lifecycleScope.launch {
                        viewModel.iconSize.collect { iconSize ->
                            iconHolderView.layoutParams.width = iconSize.first
@@ -385,6 +379,7 @@ object BiometricViewSizeBinder {
                            }
                        }
                    }

                    lifecycleScope.launch {
                        combine(viewModel.hideSensorIcon, viewModel.size, ::Pair).collect {
                            (hideSensorIcon, size) ->
@@ -415,6 +410,33 @@ object BiometricViewSizeBinder {
                                    R.id.rightGuideline,
                                    ConstraintSet.RIGHT
                                )
                            } else if (position.isTop) {
                                // Top position is only used for 180 rotation Udfps
                                // Requires repositioning due to sensor location at top of screen
                                mediumConstraintSet.connect(
                                    R.id.scrollView,
                                    ConstraintSet.TOP,
                                    R.id.indicator,
                                    ConstraintSet.BOTTOM
                                )
                                mediumConstraintSet.connect(
                                    R.id.scrollView,
                                    ConstraintSet.BOTTOM,
                                    R.id.button_bar,
                                    ConstraintSet.TOP
                                )
                                mediumConstraintSet.connect(
                                    R.id.panel,
                                    ConstraintSet.TOP,
                                    R.id.biometric_icon,
                                    ConstraintSet.TOP
                                )
                                mediumConstraintSet.setMargin(
                                    R.id.panel,
                                    ConstraintSet.TOP,
                                    (-24 * pxToDp).toInt()
                                )
                                mediumConstraintSet.setVerticalBias(R.id.scrollView, 0f)
                            }

                            when {
+12 −3
Original line number Diff line number Diff line
@@ -262,7 +262,8 @@ constructor(
                _forceLargeSize,
                displayStateInteractor.isLargeScreen,
                displayStateInteractor.currentRotation,
            ) { forceLarge, isLargeScreen, rotation ->
                modalities
            ) { forceLarge, isLargeScreen, rotation, modalities ->
                when {
                    forceLarge ||
                        isLargeScreen ||
@@ -270,7 +271,8 @@ constructor(
                        PromptPosition.Bottom
                    rotation == DisplayRotation.ROTATION_90 -> PromptPosition.Right
                    rotation == DisplayRotation.ROTATION_270 -> PromptPosition.Left
                    rotation == DisplayRotation.ROTATION_180 -> PromptPosition.Top
                    rotation == DisplayRotation.ROTATION_180 && modalities.hasUdfps ->
                        PromptPosition.Top
                    else -> PromptPosition.Bottom
                }
            }
@@ -362,7 +364,14 @@ constructor(
                                landscapeMediumBottomPadding
                            )
                        }
                    PromptPosition.Top -> Rect()
                    PromptPosition.Top ->
                        if (size.isSmall) {
                            Rect(0, 0, 0, portraitSmallBottomPadding)
                        } else if (size.isMedium && modalities.hasUdfps) {
                            Rect(0, 0, 0, sensorBounds.bottom)
                        } else {
                            Rect(0, 0, 0, portraitMediumBottomPadding)
                        }
                }
            }
            .distinctUntilChanged()