Merge "RESTRICT AUTOMERGE Add overlayBounds to UdfpsOverlayParams" into tm-qpr-dev

This commit is contained in:
Ilya Matyukhin
2022-11-09 21:31:31 +00:00
committed by Android (Google) Code Review
5 changed files with 32 additions and 21 deletions

View File

@@ -782,8 +782,17 @@ public class AuthController implements CoreStartable, CommandQueue.Callbacks,
mUdfpsBounds = udfpsProp.getLocation().getRect(); mUdfpsBounds = udfpsProp.getLocation().getRect();
mUdfpsBounds.scale(mScaleFactor); mUdfpsBounds.scale(mScaleFactor);
final UdfpsOverlayParams overlayParams = new UdfpsOverlayParams(mUdfpsBounds, final Rect overlayBounds = new Rect(
mCachedDisplayInfo.getNaturalWidth(), mCachedDisplayInfo.getNaturalHeight(), 0, /* left */
mCachedDisplayInfo.getNaturalHeight() / 2, /* top */
mCachedDisplayInfo.getNaturalWidth(), /* right */
mCachedDisplayInfo.getNaturalHeight() /* bottom */);
final UdfpsOverlayParams overlayParams = new UdfpsOverlayParams(
mUdfpsBounds,
overlayBounds,
mCachedDisplayInfo.getNaturalWidth(),
mCachedDisplayInfo.getNaturalHeight(),
mScaleFactor, mCachedDisplayInfo.rotation); mScaleFactor, mCachedDisplayInfo.rotation);
mUdfpsController.updateOverlayParams(udfpsProp, overlayParams); mUdfpsController.updateOverlayParams(udfpsProp, overlayParams);

View File

@@ -20,6 +20,7 @@ import android.view.Surface.Rotation
data class UdfpsOverlayParams( data class UdfpsOverlayParams(
val sensorBounds: Rect = Rect(), val sensorBounds: Rect = Rect(),
val overlayBounds: Rect = Rect(),
val naturalDisplayWidth: Int = 0, val naturalDisplayWidth: Int = 0,
val naturalDisplayHeight: Int = 0, val naturalDisplayHeight: Int = 0,
val scaleFactor: Float = 1f, val scaleFactor: Float = 1f,

View File

@@ -190,11 +190,12 @@ class UdfpsControllerOverlayTest : SysuiTestCase() {
// Sensor that's in the top left corner of the display in natural orientation. // Sensor that's in the top left corner of the display in natural orientation.
val sensorBounds = Rect(0, 0, SENSOR_WIDTH, SENSOR_HEIGHT) val sensorBounds = Rect(0, 0, SENSOR_WIDTH, SENSOR_HEIGHT)
overlayParams = UdfpsOverlayParams( overlayParams = UdfpsOverlayParams(
sensorBounds,
sensorBounds, sensorBounds,
DISPLAY_WIDTH, DISPLAY_WIDTH,
DISPLAY_HEIGHT, DISPLAY_HEIGHT,
scaleFactor = 1f, scaleFactor = 1f,
rotation rotation = rotation
) )
block() block()
} }

View File

@@ -437,7 +437,7 @@ public class UdfpsControllerTest extends SysuiTestCase {
final float[] scaleFactor = new float[]{1f, displayHeight[1] / (float) displayHeight[0]}; final float[] scaleFactor = new float[]{1f, displayHeight[1] / (float) displayHeight[0]};
final int[] rotation = new int[]{Surface.ROTATION_0, Surface.ROTATION_90}; final int[] rotation = new int[]{Surface.ROTATION_0, Surface.ROTATION_90};
final UdfpsOverlayParams oldParams = new UdfpsOverlayParams(sensorBounds[0], final UdfpsOverlayParams oldParams = new UdfpsOverlayParams(sensorBounds[0],
displayWidth[0], displayHeight[0], scaleFactor[0], rotation[0]); sensorBounds[0], displayWidth[0], displayHeight[0], scaleFactor[0], rotation[0]);
for (int i1 = 0; i1 <= 1; ++i1) { for (int i1 = 0; i1 <= 1; ++i1) {
for (int i2 = 0; i2 <= 1; ++i2) { for (int i2 = 0; i2 <= 1; ++i2) {
@@ -445,9 +445,8 @@ public class UdfpsControllerTest extends SysuiTestCase {
for (int i4 = 0; i4 <= 1; ++i4) { for (int i4 = 0; i4 <= 1; ++i4) {
for (int i5 = 0; i5 <= 1; ++i5) { for (int i5 = 0; i5 <= 1; ++i5) {
final UdfpsOverlayParams newParams = new UdfpsOverlayParams( final UdfpsOverlayParams newParams = new UdfpsOverlayParams(
sensorBounds[i1], sensorBounds[i1], sensorBounds[i1], displayWidth[i2],
displayWidth[i2], displayHeight[i3], scaleFactor[i4], displayHeight[i3], scaleFactor[i4], rotation[i5]);
rotation[i5]);
if (newParams.equals(oldParams)) { if (newParams.equals(oldParams)) {
continue; continue;
@@ -490,8 +489,8 @@ public class UdfpsControllerTest extends SysuiTestCase {
// Initialize the overlay. // Initialize the overlay.
mUdfpsController.updateOverlayParams(mOpticalProps, mUdfpsController.updateOverlayParams(mOpticalProps,
new UdfpsOverlayParams(sensorBounds, displayWidth, displayHeight, scaleFactor, new UdfpsOverlayParams(sensorBounds, sensorBounds, displayWidth, displayHeight,
rotation)); scaleFactor, rotation));
// Show the overlay. // Show the overlay.
mOverlayController.showUdfpsOverlay(TEST_REQUEST_ID, mOpticalProps.sensorId, mOverlayController.showUdfpsOverlay(TEST_REQUEST_ID, mOpticalProps.sensorId,
@@ -501,8 +500,8 @@ public class UdfpsControllerTest extends SysuiTestCase {
// Update overlay with the same parameters. // Update overlay with the same parameters.
mUdfpsController.updateOverlayParams(mOpticalProps, mUdfpsController.updateOverlayParams(mOpticalProps,
new UdfpsOverlayParams(sensorBounds, displayWidth, displayHeight, scaleFactor, new UdfpsOverlayParams(sensorBounds, sensorBounds, displayWidth, displayHeight,
rotation)); scaleFactor, rotation));
mFgExecutor.runAllReady(); mFgExecutor.runAllReady();
// Ensure the overlay was not recreated. // Ensure the overlay was not recreated.
@@ -549,8 +548,8 @@ public class UdfpsControllerTest extends SysuiTestCase {
// Test ROTATION_0 // Test ROTATION_0
mUdfpsController.updateOverlayParams(mOpticalProps, mUdfpsController.updateOverlayParams(mOpticalProps,
new UdfpsOverlayParams(sensorBounds, displayWidth, displayHeight, scaleFactor, new UdfpsOverlayParams(sensorBounds, sensorBounds, displayWidth, displayHeight,
Surface.ROTATION_0)); scaleFactor, Surface.ROTATION_0));
MotionEvent event = obtainMotionEvent(ACTION_DOWN, displayWidth, displayHeight, touchMinor, MotionEvent event = obtainMotionEvent(ACTION_DOWN, displayWidth, displayHeight, touchMinor,
touchMajor); touchMajor);
mTouchListenerCaptor.getValue().onTouch(mUdfpsView, event); mTouchListenerCaptor.getValue().onTouch(mUdfpsView, event);
@@ -566,8 +565,8 @@ public class UdfpsControllerTest extends SysuiTestCase {
// Test ROTATION_90 // Test ROTATION_90
reset(mAlternateTouchProvider); reset(mAlternateTouchProvider);
mUdfpsController.updateOverlayParams(mOpticalProps, mUdfpsController.updateOverlayParams(mOpticalProps,
new UdfpsOverlayParams(sensorBounds, displayWidth, displayHeight, scaleFactor, new UdfpsOverlayParams(sensorBounds, sensorBounds, displayWidth, displayHeight,
Surface.ROTATION_90)); scaleFactor, Surface.ROTATION_90));
event = obtainMotionEvent(ACTION_DOWN, displayHeight, 0, touchMinor, touchMajor); event = obtainMotionEvent(ACTION_DOWN, displayHeight, 0, touchMinor, touchMajor);
mTouchListenerCaptor.getValue().onTouch(mUdfpsView, event); mTouchListenerCaptor.getValue().onTouch(mUdfpsView, event);
mBiometricsExecutor.runAllReady(); mBiometricsExecutor.runAllReady();
@@ -582,8 +581,8 @@ public class UdfpsControllerTest extends SysuiTestCase {
// Test ROTATION_270 // Test ROTATION_270
reset(mAlternateTouchProvider); reset(mAlternateTouchProvider);
mUdfpsController.updateOverlayParams(mOpticalProps, mUdfpsController.updateOverlayParams(mOpticalProps,
new UdfpsOverlayParams(sensorBounds, displayWidth, displayHeight, scaleFactor, new UdfpsOverlayParams(sensorBounds, sensorBounds, displayWidth, displayHeight,
Surface.ROTATION_270)); scaleFactor, Surface.ROTATION_270));
event = obtainMotionEvent(ACTION_DOWN, 0, displayWidth, touchMinor, touchMajor); event = obtainMotionEvent(ACTION_DOWN, 0, displayWidth, touchMinor, touchMajor);
mTouchListenerCaptor.getValue().onTouch(mUdfpsView, event); mTouchListenerCaptor.getValue().onTouch(mUdfpsView, event);
mBiometricsExecutor.runAllReady(); mBiometricsExecutor.runAllReady();
@@ -598,8 +597,8 @@ public class UdfpsControllerTest extends SysuiTestCase {
// Test ROTATION_180 // Test ROTATION_180
reset(mAlternateTouchProvider); reset(mAlternateTouchProvider);
mUdfpsController.updateOverlayParams(mOpticalProps, mUdfpsController.updateOverlayParams(mOpticalProps,
new UdfpsOverlayParams(sensorBounds, displayWidth, displayHeight, scaleFactor, new UdfpsOverlayParams(sensorBounds, sensorBounds, displayWidth, displayHeight,
Surface.ROTATION_180)); scaleFactor, Surface.ROTATION_180));
// ROTATION_180 is not supported. It should be treated like ROTATION_0. // ROTATION_180 is not supported. It should be treated like ROTATION_0.
event = obtainMotionEvent(ACTION_DOWN, displayWidth, displayHeight, touchMinor, touchMajor); event = obtainMotionEvent(ACTION_DOWN, displayWidth, displayHeight, touchMinor, touchMajor);
mTouchListenerCaptor.getValue().onTouch(mUdfpsView, event); mTouchListenerCaptor.getValue().onTouch(mUdfpsView, event);

View File

@@ -40,8 +40,8 @@ import org.mockito.Mock
import org.mockito.Mockito.never import org.mockito.Mockito.never
import org.mockito.Mockito.nullable import org.mockito.Mockito.nullable
import org.mockito.Mockito.verify import org.mockito.Mockito.verify
import org.mockito.Mockito.`when` as whenever
import org.mockito.junit.MockitoJUnit import org.mockito.junit.MockitoJUnit
import org.mockito.Mockito.`when` as whenever
private const val SENSOR_X = 50 private const val SENSOR_X = 50
private const val SENSOR_Y = 250 private const val SENSOR_Y = 250
@@ -68,7 +68,8 @@ class UdfpsViewTest : SysuiTestCase() {
view = LayoutInflater.from(context).inflate(R.layout.udfps_view, null) as UdfpsView view = LayoutInflater.from(context).inflate(R.layout.udfps_view, null) as UdfpsView
view.animationViewController = animationViewController view.animationViewController = animationViewController
val sensorBounds = SensorLocationInternal("", SENSOR_X, SENSOR_Y, SENSOR_RADIUS).rect val sensorBounds = SensorLocationInternal("", SENSOR_X, SENSOR_Y, SENSOR_RADIUS).rect
view.overlayParams = UdfpsOverlayParams(sensorBounds, 1920, 1080, 1f, Surface.ROTATION_0) view.overlayParams = UdfpsOverlayParams(sensorBounds, sensorBounds, 1920,
1080, 1f, Surface.ROTATION_0)
view.setUdfpsDisplayModeProvider(hbmProvider) view.setUdfpsDisplayModeProvider(hbmProvider)
ViewUtils.attachView(view) ViewUtils.attachView(view)
} }