Loading packages/SystemUI/res/values/dimens.xml +5 −1 Original line number Original line Diff line number Diff line Loading @@ -1936,5 +1936,9 @@ <dimen name="bouncer_user_switcher_view_mode_view_flipper_bottom_margin">0dp</dimen> <dimen name="bouncer_user_switcher_view_mode_view_flipper_bottom_margin">0dp</dimen> <!-- UDFPS view attributes --> <!-- UDFPS view attributes --> <dimen name="udfps_icon_size">6mm</dimen> <!-- UDFPS icon size in microns/um --> <dimen name="udfps_icon_size" format="float">6000</dimen> <!-- Microns/ums (1000 um = 1mm) per pixel for the given device. If unspecified, UI that relies on this value will not be sized correctly. --> <item name="pixel_pitch" format="float" type="dimen">-1</item> </resources> </resources> packages/SystemUI/src/com/android/systemui/biometrics/domain/interactor/UdfpsOverlayInteractor.kt +14 −2 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.biometrics.domain.interactor package com.android.systemui.biometrics.domain.interactor import android.content.Context import android.content.Context import android.util.Log import android.view.MotionEvent import android.view.MotionEvent import com.android.systemui.biometrics.AuthController import com.android.systemui.biometrics.AuthController import com.android.systemui.biometrics.shared.model.UdfpsOverlayParams import com.android.systemui.biometrics.shared.model.UdfpsOverlayParams Loading @@ -42,12 +43,23 @@ import kotlinx.coroutines.flow.stateIn class UdfpsOverlayInteractor class UdfpsOverlayInteractor @Inject @Inject constructor( constructor( @Application context: Context, @Application private val context: Context, private val authController: AuthController, private val authController: AuthController, private val selectedUserInteractor: SelectedUserInteractor, private val selectedUserInteractor: SelectedUserInteractor, @Application scope: CoroutineScope @Application scope: CoroutineScope ) { ) { private val iconSize: Int = context.resources.getDimensionPixelSize(R.dimen.udfps_icon_size) private fun calculateIconSize(): Int { val pixelPitch = context.resources.getFloat(R.dimen.pixel_pitch) if (pixelPitch <= 0) { Log.e( "UdfpsOverlayInteractor", "invalid pixelPitch: $pixelPitch. Pixel pitch must be updated per device." ) } return (context.resources.getFloat(R.dimen.udfps_icon_size) / pixelPitch).toInt() } private var iconSize: Int = calculateIconSize() /** Whether a touch is within the under-display fingerprint sensor area */ /** Whether a touch is within the under-display fingerprint sensor area */ fun isTouchWithinUdfpsArea(ev: MotionEvent): Boolean { fun isTouchWithinUdfpsArea(ev: MotionEvent): Boolean { Loading Loading
packages/SystemUI/res/values/dimens.xml +5 −1 Original line number Original line Diff line number Diff line Loading @@ -1936,5 +1936,9 @@ <dimen name="bouncer_user_switcher_view_mode_view_flipper_bottom_margin">0dp</dimen> <dimen name="bouncer_user_switcher_view_mode_view_flipper_bottom_margin">0dp</dimen> <!-- UDFPS view attributes --> <!-- UDFPS view attributes --> <dimen name="udfps_icon_size">6mm</dimen> <!-- UDFPS icon size in microns/um --> <dimen name="udfps_icon_size" format="float">6000</dimen> <!-- Microns/ums (1000 um = 1mm) per pixel for the given device. If unspecified, UI that relies on this value will not be sized correctly. --> <item name="pixel_pitch" format="float" type="dimen">-1</item> </resources> </resources>
packages/SystemUI/src/com/android/systemui/biometrics/domain/interactor/UdfpsOverlayInteractor.kt +14 −2 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.biometrics.domain.interactor package com.android.systemui.biometrics.domain.interactor import android.content.Context import android.content.Context import android.util.Log import android.view.MotionEvent import android.view.MotionEvent import com.android.systemui.biometrics.AuthController import com.android.systemui.biometrics.AuthController import com.android.systemui.biometrics.shared.model.UdfpsOverlayParams import com.android.systemui.biometrics.shared.model.UdfpsOverlayParams Loading @@ -42,12 +43,23 @@ import kotlinx.coroutines.flow.stateIn class UdfpsOverlayInteractor class UdfpsOverlayInteractor @Inject @Inject constructor( constructor( @Application context: Context, @Application private val context: Context, private val authController: AuthController, private val authController: AuthController, private val selectedUserInteractor: SelectedUserInteractor, private val selectedUserInteractor: SelectedUserInteractor, @Application scope: CoroutineScope @Application scope: CoroutineScope ) { ) { private val iconSize: Int = context.resources.getDimensionPixelSize(R.dimen.udfps_icon_size) private fun calculateIconSize(): Int { val pixelPitch = context.resources.getFloat(R.dimen.pixel_pitch) if (pixelPitch <= 0) { Log.e( "UdfpsOverlayInteractor", "invalid pixelPitch: $pixelPitch. Pixel pitch must be updated per device." ) } return (context.resources.getFloat(R.dimen.udfps_icon_size) / pixelPitch).toInt() } private var iconSize: Int = calculateIconSize() /** Whether a touch is within the under-display fingerprint sensor area */ /** Whether a touch is within the under-display fingerprint sensor area */ fun isTouchWithinUdfpsArea(ev: MotionEvent): Boolean { fun isTouchWithinUdfpsArea(ev: MotionEvent): Boolean { Loading