diff options
| -rw-r--r-- | core/res/res/values/attrs.xml | 1 | ||||
| -rw-r--r-- | policy/src/com/android/internal/policy/impl/PhoneWindow.java | 14 |
2 files changed, 14 insertions, 1 deletions
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index 369dda13f500..4d43831b8a95 100644 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -1677,6 +1677,7 @@ that is, when in portrait. Can be either an absolute dimension or a fraction of the screen size in that dimension. --> <attr name="windowFixedHeightMajor" format="dimension|fraction" /> + <attr name="windowOutsetBottom" format="dimension" /> </declare-styleable> <!-- The set of attributes that describe a AlertDialog's theme. --> diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindow.java b/policy/src/com/android/internal/policy/impl/PhoneWindow.java index a65f677a533a..fd0c896bb1c6 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindow.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindow.java @@ -145,6 +145,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { TypedValue mFixedWidthMinor; TypedValue mFixedHeightMajor; TypedValue mFixedHeightMinor; + TypedValue mOutsetBottom; // This is the top-level view of the window, containing the window decor. private DecorView mDecor; @@ -2370,7 +2371,6 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } else { h = 0; } - if (h > 0) { final int heightSize = MeasureSpec.getSize(heightMeasureSpec); heightMeasureSpec = MeasureSpec.makeMeasureSpec( @@ -2379,6 +2379,15 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } } + if (mOutsetBottom != null) { + int mode = MeasureSpec.getMode(heightMeasureSpec); + if (mode != MeasureSpec.UNSPECIFIED) { + int outset = (int) mOutsetBottom.getDimension(metrics); + int height = MeasureSpec.getSize(heightMeasureSpec); + heightMeasureSpec = MeasureSpec.makeMeasureSpec(height + outset, mode); + } + } + super.onMeasure(widthMeasureSpec, heightMeasureSpec); int width = getMeasuredWidth(); @@ -2992,6 +3001,9 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } if (a.getBoolean(com.android.internal.R.styleable.Window_windowContentTransitions, false)) { requestFeature(FEATURE_CONTENT_TRANSITIONS); + if (a.hasValue(com.android.internal.R.styleable.Window_windowOutsetBottom)) { + if (mOutsetBottom == null) mOutsetBottom = new TypedValue(); + a.getValue(com.android.internal.R.styleable.Window_windowOutsetBottom, mOutsetBottom); } final Context context = getContext(); |