Skip to content

Commit 0a27c48

Browse files
committed
Fix measurement bug in keyguard/MultiPaneChallengeLayout
Change-Id: Ifbcd32281f06e6c53e573998e7085d7d0542acac
1 parent b0ed8bd commit 0a27c48

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

policy/src/com/android/internal/policy/impl/keyguard/MultiPaneChallengeLayout.java

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -221,30 +221,35 @@ protected void onMeasure(int widthSpec, int heightSpec) {
221221
if (lp.centerWithinArea > 0) {
222222
if (mOrientation == HORIZONTAL) {
223223
adjustedWidthSpec = MeasureSpec.makeMeasureSpec(
224-
(int) (width * lp.centerWithinArea + 0.5f), MeasureSpec.EXACTLY);
225-
adjustedHeightSpec = heightSpec;
224+
(int) ((width - widthUsed) * lp.centerWithinArea + 0.5f),
225+
MeasureSpec.EXACTLY);
226+
adjustedHeightSpec = MeasureSpec.makeMeasureSpec(
227+
MeasureSpec.getSize(heightSpec) - heightUsed, MeasureSpec.EXACTLY);
226228
} else {
227-
adjustedWidthSpec = widthSpec;
229+
adjustedWidthSpec = MeasureSpec.makeMeasureSpec(
230+
MeasureSpec.getSize(widthSpec) - widthUsed, MeasureSpec.EXACTLY);
228231
adjustedHeightSpec = MeasureSpec.makeMeasureSpec(
229-
(int) (height * lp.centerWithinArea + 0.5f), MeasureSpec.EXACTLY);
232+
(int) ((height - heightUsed) * lp.centerWithinArea + 0.5f),
233+
MeasureSpec.EXACTLY);
230234
}
231235
} else {
232-
adjustedWidthSpec = widthSpec;
233-
adjustedHeightSpec = heightSpec;
236+
adjustedWidthSpec = MeasureSpec.makeMeasureSpec(
237+
MeasureSpec.getSize(widthSpec) - widthUsed, MeasureSpec.EXACTLY);
238+
adjustedHeightSpec = MeasureSpec.makeMeasureSpec(
239+
MeasureSpec.getSize(heightSpec) - heightUsed, MeasureSpec.EXACTLY);
234240
}
235241
if (lp.maxWidth >= 0) {
236242
adjustedWidthSpec = MeasureSpec.makeMeasureSpec(
237-
Math.min(lp.maxWidth, MeasureSpec.getSize(widthSpec)),
243+
Math.min(lp.maxWidth, MeasureSpec.getSize(adjustedWidthSpec)),
238244
MeasureSpec.EXACTLY);
239245
}
240246
if (lp.maxHeight >= 0) {
241247
adjustedHeightSpec = MeasureSpec.makeMeasureSpec(
242-
Math.min(lp.maxHeight, MeasureSpec.getSize(heightSpec)),
248+
Math.min(lp.maxHeight, MeasureSpec.getSize(adjustedHeightSpec)),
243249
MeasureSpec.EXACTLY);
244250
}
245251

246-
measureChildWithMargins(child, adjustedWidthSpec, widthUsed,
247-
adjustedHeightSpec, heightUsed);
252+
measureChildWithMargins(child, adjustedWidthSpec, 0, adjustedHeightSpec, 0);
248253
}
249254
}
250255

0 commit comments

Comments
 (0)