Merge "Don't rotate LS udfps location unless LS is occluded" into sc-qpr1-dev

This commit is contained in:
TreeHugger Robot
2021-09-16 23:39:37 +00:00
committed by Android (Google) Code Review
2 changed files with 24 additions and 5 deletions

View File

@@ -655,6 +655,20 @@ public class UdfpsController implements DozeReceiver {
} }
} }
private boolean shouldRotate(@Nullable UdfpsAnimationViewController animation) {
if (!(animation instanceof UdfpsKeyguardViewController)) {
// always rotate view if we're not on the keyguard
return true;
}
// on the keyguard, make sure we don't rotate if we're going to sleep or not occluded
if (mKeyguardUpdateMonitor.isGoingToSleep() || !mKeyguardStateController.isOccluded()) {
return false;
}
return true;
}
private WindowManager.LayoutParams computeLayoutParams( private WindowManager.LayoutParams computeLayoutParams(
@Nullable UdfpsAnimationViewController animation) { @Nullable UdfpsAnimationViewController animation) {
final int paddingX = animation != null ? animation.getPaddingX() : 0; final int paddingX = animation != null ? animation.getPaddingX() : 0;
@@ -678,9 +692,11 @@ public class UdfpsController implements DozeReceiver {
// Transform dimensions if the device is in landscape mode // Transform dimensions if the device is in landscape mode
switch (mContext.getDisplay().getRotation()) { switch (mContext.getDisplay().getRotation()) {
case Surface.ROTATION_90: case Surface.ROTATION_90:
if (animation instanceof UdfpsKeyguardViewController if (!shouldRotate(animation)) {
&& mKeyguardUpdateMonitor.isGoingToSleep()) { Log.v(TAG, "skip rotating udfps location ROTATION_90");
break; break;
} else {
Log.v(TAG, "rotate udfps location ROTATION_90");
} }
mCoreLayoutParams.x = mSensorProps.sensorLocationY - mSensorProps.sensorRadius mCoreLayoutParams.x = mSensorProps.sensorLocationY - mSensorProps.sensorRadius
- paddingX; - paddingX;
@@ -689,9 +705,11 @@ public class UdfpsController implements DozeReceiver {
break; break;
case Surface.ROTATION_270: case Surface.ROTATION_270:
if (animation instanceof UdfpsKeyguardViewController if (!shouldRotate(animation)) {
&& mKeyguardUpdateMonitor.isGoingToSleep()) { Log.v(TAG, "skip rotating udfps location ROTATION_270");
break; break;
} else {
Log.v(TAG, "rotate udfps location ROTATION_270");
} }
mCoreLayoutParams.x = p.x - mSensorProps.sensorLocationY - mSensorProps.sensorRadius mCoreLayoutParams.x = p.x - mSensorProps.sensorLocationY - mSensorProps.sensorRadius
- paddingX; - paddingX;

View File

@@ -191,6 +191,7 @@ public class UdfpsControllerTest extends SysuiTestCase {
when(mLayoutInflater.inflate(R.layout.udfps_keyguard_view, null)) when(mLayoutInflater.inflate(R.layout.udfps_keyguard_view, null))
.thenReturn(mKeyguardView); // for showOverlay REASON_AUTH_FPM_KEYGUARD .thenReturn(mKeyguardView); // for showOverlay REASON_AUTH_FPM_KEYGUARD
when(mEnrollView.getContext()).thenReturn(mContext); when(mEnrollView.getContext()).thenReturn(mContext);
when(mKeyguardStateController.isOccluded()).thenReturn(false);
final List<FingerprintSensorPropertiesInternal> props = new ArrayList<>(); final List<FingerprintSensorPropertiesInternal> props = new ArrayList<>();
final List<ComponentInfoInternal> componentInfo = new ArrayList<>(); final List<ComponentInfoInternal> componentInfo = new ArrayList<>();