summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Viverette <alanv@google.com>2015-06-25 13:00:03 -0700
committerAlan Viverette <alanv@google.com>2015-06-25 13:00:03 -0700
commitba4332d9cf09b7e342783e39efd41646792a5b06 (patch)
treea60e8a2b3a30c12ce84b780d55c60c1ed2b384fe
parent60061c26a24f654f5a6ac599d85c3bea14ee9aff (diff)
downloadframeworks_base-ba4332d9cf09b7e342783e39efd41646792a5b06.zip
frameworks_base-ba4332d9cf09b7e342783e39efd41646792a5b06.tar.gz
frameworks_base-ba4332d9cf09b7e342783e39efd41646792a5b06.tar.bz2
Constrain ListPopupWindow hint width spec to >= 0
Bug: 22092169 Change-Id: Ia05302cf8d167aae26eccbf53dd3fd21d09b326d
-rw-r--r--core/java/android/widget/ListPopupWindow.java17
1 files changed, 13 insertions, 4 deletions
diff --git a/core/java/android/widget/ListPopupWindow.java b/core/java/android/widget/ListPopupWindow.java
index 534bfad..c6de5dd 100644
--- a/core/java/android/widget/ListPopupWindow.java
+++ b/core/java/android/widget/ListPopupWindow.java
@@ -1127,10 +1127,19 @@ public class ListPopupWindow {
break;
}
- // measure the hint's height to find how much more vertical space
- // we need to add to the drop down's height
- int widthSpec = MeasureSpec.makeMeasureSpec(mDropDownWidth, MeasureSpec.AT_MOST);
- int heightSpec = MeasureSpec.UNSPECIFIED;
+ // Measure the hint's height to find how much more vertical
+ // space we need to add to the drop down's height.
+ final int widthSize;
+ final int widthMode;
+ if (mDropDownWidth >= 0) {
+ widthMode = MeasureSpec.AT_MOST;
+ widthSize = mDropDownWidth;
+ } else {
+ widthMode = MeasureSpec.UNSPECIFIED;
+ widthSize = 0;
+ }
+ final int widthSpec = MeasureSpec.makeMeasureSpec(widthSize, widthMode);
+ final int heightSpec = MeasureSpec.UNSPECIFIED;
hintView.measure(widthSpec, heightSpec);
hintParams = (LinearLayout.LayoutParams) hintView.getLayoutParams();