Merge "Update BiometricPrompt UI for large displays" into sc-v2-dev

This commit is contained in:
Kevin Chyn
2021-10-07 17:58:42 +00:00
committed by Android (Google) Code Review
2 changed files with 19 additions and 19 deletions

View File

@@ -824,11 +824,29 @@ public abstract class AuthBiometricView extends LinearLayout {
return new AuthDialog.LayoutParams(width, totalHeight); 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 @Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
final int width = MeasureSpec.getSize(widthMeasureSpec); final int width = MeasureSpec.getSize(widthMeasureSpec);
final int height = MeasureSpec.getSize(heightMeasureSpec); 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 // Use "newWidth" instead, so the landscape dialog width is the same as the portrait
// width. // width.

View File

@@ -117,24 +117,6 @@ public class AuthPanelController extends ViewOutlineProvider {
mUseFullScreen = fullScreen; 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, public void updateForContentDimensions(int contentWidth, int contentHeight,
int animateDurationMs) { int animateDurationMs) {
if (DEBUG) { if (DEBUG) {