Merge "Use adjusted popup window position when calculating best-fit" into nyc-dev am: 0529197

am: e30e53b

* commit 'e30e53bd5fbd4e15fd27dccaf3f8a6986f5ba629':
  Use adjusted popup window position when calculating best-fit

Change-Id: I3d1f15fe641c1ab2c72b1ec04bd02447f2ff3b6b
This commit is contained in:
Alan Viverette
2016-04-19 16:50:38 +00:00
committed by android-build-merger

View File

@@ -1529,7 +1529,6 @@ public class PopupWindow {
height = displayFrame.bottom - displayFrame.top;
}
// If we need to adjust for gravity RIGHT, align to the bottom-right
// corner of the anchor (still accounting for offsets).
final int hgrav = Gravity.getAbsoluteGravity(gravity, anchor.getLayoutDirection())
@@ -1583,9 +1582,10 @@ public class PopupWindow {
private boolean tryFitVertical(@NonNull LayoutParams outParams, int yOffset, int height,
int anchorHeight, int drawingLocationY, int screenLocationY, int displayFrameTop,
int displayFrameBottom, boolean allowResize) {
final int anchorTopInScreen = screenLocationY + anchorHeight + yOffset;
final int winOffsetY = screenLocationY - drawingLocationY;
final int anchorTopInScreen = outParams.y + winOffsetY;
final int spaceBelow = displayFrameBottom - anchorTopInScreen;
if (height <= spaceBelow) {
if (anchorTopInScreen >= 0 && height <= spaceBelow) {
return true;
}
@@ -1644,9 +1644,10 @@ public class PopupWindow {
private boolean tryFitHorizontal(@NonNull LayoutParams outParams, int xOffset, int width,
int anchorWidth, int drawingLocationX, int screenLocationX, int displayFrameLeft,
int displayFrameRight, boolean allowResize) {
final int anchorLeftInScreen = screenLocationX + xOffset;
final int winOffsetX = screenLocationX - drawingLocationX;
final int anchorLeftInScreen = outParams.x + winOffsetX;
final int spaceRight = displayFrameRight - anchorLeftInScreen;
if (width <= spaceRight) {
if (anchorLeftInScreen >= 0 && width <= spaceRight) {
return true;
}