diff options
author | Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> | 2023-09-14 04:43:31 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2023-09-14 04:43:31 +0000 |
commit | 85e17950e72676e25f8a88d01c1f7f523ed2c6d3 (patch) | |
tree | 5b6a28edc7cc1d49d1ed766cf84a787f59086f06 | |
parent | cae1f48053a029675d8f0103e9c285857d231478 (diff) | |
parent | bdf16090c10c1ab442c3993077a9727f8fc09a61 (diff) | |
download | base-85e17950e72676e25f8a88d01c1f7f523ed2c6d3.tar.gz |
Merge "Implement targetSize in BoundingBoxOverlapDetector" into udc-gsi-dev
4 files changed, 23 insertions, 8 deletions
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index bd0fe40e758d..5235b95ab2a7 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -5185,6 +5185,7 @@ <item>1,1,1.0,0,1</item> <item>1,1,1.0,.4,1</item> <item>1,1,1.0,.15,15</item> + <item>0,0,0.7,0,1</item> </string-array> <!-- The integer index of the selected option in config_udfps_touch_detection_options --> diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/dagger/UdfpsModule.kt b/packages/SystemUI/src/com/android/systemui/biometrics/dagger/UdfpsModule.kt index 20c3e4098e83..f7f910391566 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/dagger/UdfpsModule.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/dagger/UdfpsModule.kt @@ -56,10 +56,10 @@ interface UdfpsModule { ) ) } else { - BoundingBoxOverlapDetector() + BoundingBoxOverlapDetector(values[2]) } } else { - return BoundingBoxOverlapDetector() + return BoundingBoxOverlapDetector(1f) } } } diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/udfps/BoundingBoxOverlapDetector.kt b/packages/SystemUI/src/com/android/systemui/biometrics/udfps/BoundingBoxOverlapDetector.kt index cf6044f146b0..9b946db0daf0 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/udfps/BoundingBoxOverlapDetector.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/udfps/BoundingBoxOverlapDetector.kt @@ -17,16 +17,30 @@ package com.android.systemui.biometrics.udfps import android.graphics.Rect +import android.os.Build +import android.util.Log import com.android.systemui.dagger.SysUISingleton /** Returns whether the touch coordinates are within the sensor's bounding box. */ @SysUISingleton -class BoundingBoxOverlapDetector : OverlapDetector { +class BoundingBoxOverlapDetector(private val targetSize: Float) : OverlapDetector { + + private val TAG = "BoundingBoxOverlapDetector" + override fun isGoodOverlap( touchData: NormalizedTouchData, nativeSensorBounds: Rect, nativeOverlayBounds: Rect, - ): Boolean = - touchData.isWithinBounds(nativeOverlayBounds) && - touchData.isWithinBounds(nativeSensorBounds) + ): Boolean { + val scaledRadius = (nativeSensorBounds.width() / 2) * targetSize + val scaledSensorBounds = + Rect( + (nativeSensorBounds.centerX() - scaledRadius).toInt(), + (nativeSensorBounds.centerY() - scaledRadius).toInt(), + (nativeSensorBounds.centerX() + scaledRadius).toInt(), + (nativeSensorBounds.centerY() + scaledRadius).toInt(), + ) + + return touchData.isWithinBounds(scaledSensorBounds) + } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/udfps/BoundingBoxOverlapDetectorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/biometrics/udfps/BoundingBoxOverlapDetectorTest.kt index da55d5a099b7..95b72d554896 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/udfps/BoundingBoxOverlapDetectorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/udfps/BoundingBoxOverlapDetectorTest.kt @@ -28,7 +28,7 @@ import org.junit.runners.Parameterized.Parameters @SmallTest @RunWith(Parameterized::class) class BoundingBoxOverlapDetectorTest(val testCase: TestCase) : SysuiTestCase() { - val underTest = BoundingBoxOverlapDetector() + val underTest = BoundingBoxOverlapDetector(1f) @Test fun isGoodOverlap() { @@ -83,7 +83,7 @@ private val TOUCH_DATA = GESTURE_START ) -private val SENSOR = Rect(100 /* left */, 200 /* top */, 300 /* right */, 500 /* bottom */) +private val SENSOR = Rect(100 /* left */, 200 /* top */, 300 /* right */, 400 /* bottom */) private val OVERLAY = Rect(0 /* left */, 100 /* top */, 400 /* right */, 600 /* bottom */) private fun genTestCases( |