Loading packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewSizeBinder.kt +37 −15 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading @@ -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, Loading Loading @@ -308,6 +301,7 @@ object BiometricViewSizeBinder { } } } lifecycleScope.launch { viewModel.iconSize.collect { iconSize -> iconHolderView.layoutParams.width = iconSize.first Loading Loading @@ -385,6 +379,7 @@ object BiometricViewSizeBinder { } } } lifecycleScope.launch { combine(viewModel.hideSensorIcon, viewModel.size, ::Pair).collect { (hideSensorIcon, size) -> Loading Loading @@ -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 { Loading packages/SystemUI/src/com/android/systemui/biometrics/ui/viewmodel/PromptViewModel.kt +12 −3 Original line number Diff line number Diff line Loading @@ -262,7 +262,8 @@ constructor( _forceLargeSize, displayStateInteractor.isLargeScreen, displayStateInteractor.currentRotation, ) { forceLarge, isLargeScreen, rotation -> modalities ) { forceLarge, isLargeScreen, rotation, modalities -> when { forceLarge || isLargeScreen || Loading @@ -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 } } Loading Loading @@ -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() Loading Loading
packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewSizeBinder.kt +37 −15 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading @@ -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, Loading Loading @@ -308,6 +301,7 @@ object BiometricViewSizeBinder { } } } lifecycleScope.launch { viewModel.iconSize.collect { iconSize -> iconHolderView.layoutParams.width = iconSize.first Loading Loading @@ -385,6 +379,7 @@ object BiometricViewSizeBinder { } } } lifecycleScope.launch { combine(viewModel.hideSensorIcon, viewModel.size, ::Pair).collect { (hideSensorIcon, size) -> Loading Loading @@ -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 { Loading
packages/SystemUI/src/com/android/systemui/biometrics/ui/viewmodel/PromptViewModel.kt +12 −3 Original line number Diff line number Diff line Loading @@ -262,7 +262,8 @@ constructor( _forceLargeSize, displayStateInteractor.isLargeScreen, displayStateInteractor.currentRotation, ) { forceLarge, isLargeScreen, rotation -> modalities ) { forceLarge, isLargeScreen, rotation, modalities -> when { forceLarge || isLargeScreen || Loading @@ -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 } } Loading Loading @@ -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() Loading