From f30f327d5bc0e353281377adfefa9d8ac3d41548 Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Wed, 6 Oct 2021 14:14:08 -0700 Subject: [PATCH] Update BiometricPrompt UI for large displays Bug: 201811580 Test: manual Change-Id: I3ff2beba20014bcc6f44a36b6f9c64f2147e23e2 --- .../biometrics/AuthBiometricView.java | 20 ++++++++++++++++++- .../biometrics/AuthPanelController.java | 18 ----------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricView.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricView.java index 60b06378a61a1..da69f4556547c 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricView.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricView.java @@ -824,11 +824,29 @@ public abstract class AuthBiometricView extends LinearLayout { return new AuthDialog.LayoutParams(width, totalHeight); } + /** + * Simple heuristic which should return true displays that are larger than a normal phone. + * For example, tablet displays, or the unfolded display for foldables. + */ + private boolean isLargeDisplay(int width, int height) { + return width > 1200 && height > 1200; + } + @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { final int width = MeasureSpec.getSize(widthMeasureSpec); final int height = MeasureSpec.getSize(heightMeasureSpec); - final int newWidth = Math.min(width, height); + + Log.d(TAG, "Width: " + width + ", height: " + height); + + final int newWidth; + if (isLargeDisplay(width, height)) { + // TODO: Unless we can come up with a one-size-fits-all equation, we may want to + // consider moving this to an overlay. + newWidth = 2 * Math.min(width, height) / 3; + } else { + newWidth = Math.min(width, height); + } // Use "newWidth" instead, so the landscape dialog width is the same as the portrait // width. diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthPanelController.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthPanelController.java index fa50f895f83ec..f1e42e0c54548 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthPanelController.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthPanelController.java @@ -117,24 +117,6 @@ public class AuthPanelController extends ViewOutlineProvider { mUseFullScreen = fullScreen; } - public ValueAnimator getTranslationAnimator(float relativeTranslationY) { - final ValueAnimator animator = ValueAnimator.ofFloat( - mPanelView.getY(), mPanelView.getY() - relativeTranslationY); - animator.addUpdateListener(animation -> { - final float translation = (float) animation.getAnimatedValue(); - mPanelView.setTranslationY(translation); - }); - return animator; - } - - public ValueAnimator getAlphaAnimator(float alpha) { - final ValueAnimator animator = ValueAnimator.ofFloat(mPanelView.getAlpha(), alpha); - animator.addUpdateListener(animation -> { - mPanelView.setAlpha((float) animation.getAnimatedValue()); - }); - return animator; - } - public void updateForContentDimensions(int contentWidth, int contentHeight, int animateDurationMs) { if (DEBUG) {