From ddbf138d11d9ad4fa9ec871b2fc5862dad20f02c Mon Sep 17 00:00:00 2001 From: Brian Colonna Date: Tue, 30 Oct 2012 18:34:39 -0400 Subject: [PATCH] Fixed misplacement of cancel(X) button for Face Unlock Before the FUL service started, the FUL cancel button was positioned off of the right side of the window. This was because the FaceUnlockView (derived from RelativeLayout) was calling super.onMeasure() incorrectly, preventing it from using the new 'square' size when laying out child views. Change-Id: I2f1e86617da5c8f37123febab2e433288bdea062 --- core/java/com/android/internal/widget/FaceUnlockView.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/core/java/com/android/internal/widget/FaceUnlockView.java b/core/java/com/android/internal/widget/FaceUnlockView.java index c8d65fcc56e0..e3c124730ae5 100644 --- a/core/java/com/android/internal/widget/FaceUnlockView.java +++ b/core/java/com/android/internal/widget/FaceUnlockView.java @@ -53,15 +53,17 @@ public class FaceUnlockView extends RelativeLayout { @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - final int minimumWidth = getSuggestedMinimumWidth(); final int minimumHeight = getSuggestedMinimumHeight(); int viewWidth = resolveMeasured(widthMeasureSpec, minimumWidth); int viewHeight = resolveMeasured(heightMeasureSpec, minimumHeight); - viewWidth = viewHeight = Math.min(viewWidth, viewHeight); - Log.v(TAG, "FaceUnlockView dimensions: " + viewWidth + "x" + viewHeight); - setMeasuredDimension(viewWidth, viewHeight); + final int chosenSize = Math.min(viewWidth, viewHeight); + final int newWidthMeasureSpec = + MeasureSpec.makeMeasureSpec(chosenSize, MeasureSpec.AT_MOST); + final int newHeightMeasureSpec = + MeasureSpec.makeMeasureSpec(chosenSize, MeasureSpec.AT_MOST); + + super.onMeasure(newWidthMeasureSpec, newHeightMeasureSpec); } } -- 2.11.0