diff --git a/res/drawable/middle_item_primary.xml b/res/drawable/middle_item_primary.xml index c9757142da..0c04ea14ec 100644 --- a/res/drawable/middle_item_primary.xml +++ b/res/drawable/middle_item_primary.xml @@ -16,5 +16,5 @@ - + \ No newline at end of file diff --git a/res/values/dimens.xml b/res/values/dimens.xml index b60b6113e4..36ee6bb38c 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -192,7 +192,7 @@ 32dp 2dp 100dp - 4dp + 4dp 12dp 16dp 10dp diff --git a/src/com/android/launcher3/popup/ArrowPopup.java b/src/com/android/launcher3/popup/ArrowPopup.java index a53fe1f848..373653829b 100644 --- a/src/com/android/launcher3/popup/ArrowPopup.java +++ b/src/com/android/launcher3/popup/ArrowPopup.java @@ -130,13 +130,14 @@ public abstract class ArrowPopup extends Abstrac R.dimen.popup_arrow_horizontal_center_offset) - (mArrowWidth / 2); mArrowPointRadius = resources.getDimensionPixelSize(R.dimen.popup_arrow_corner_radius); + int smallerRadius = resources.getDimensionPixelSize(R.dimen.popup_smaller_radius); mRoundedTop = new GradientDrawable(); mRoundedTop.setCornerRadii(new float[] { mOutlineRadius, mOutlineRadius, mOutlineRadius, - mOutlineRadius, 0, 0, 0, 0}); + mOutlineRadius, smallerRadius, smallerRadius, smallerRadius, smallerRadius}); mRoundedBottom = new GradientDrawable(); - mRoundedBottom.setCornerRadii(new float[] { 0, 0, 0, 0, mOutlineRadius, mOutlineRadius, - mOutlineRadius, mOutlineRadius}); + mRoundedBottom.setCornerRadii(new float[] { smallerRadius, smallerRadius, smallerRadius, + smallerRadius, mOutlineRadius, mOutlineRadius, mOutlineRadius, mOutlineRadius}); int primaryColor = Themes.getAttrColor(context, R.attr.popupColorPrimary); int secondaryColor = Themes.getAttrColor(context, R.attr.popupColorSecondary); @@ -272,7 +273,6 @@ public abstract class ArrowPopup extends Abstrac } onInflationComplete(reverseOrder); assignMarginsAndBackgrounds(); - orientAboutObject(); if (shouldAddArrow()) { addArrow(); } @@ -286,7 +286,6 @@ public abstract class ArrowPopup extends Abstrac setupForDisplay(); onInflationComplete(false); assignMarginsAndBackgrounds(); - orientAboutObject(); if (shouldAddArrow()) { addArrow(); } @@ -383,10 +382,18 @@ public abstract class ArrowPopup extends Abstrac private void orientAboutObject(boolean allowAlignLeft, boolean allowAlignRight) { measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED); - int width = getMeasuredWidth(); int extraVerticalSpace = mArrowHeight + mArrowOffsetVertical + getResources().getDimensionPixelSize(R.dimen.popup_vertical_padding); - int height = getMeasuredHeight() + extraVerticalSpace; + // The margins are added after we call this method, so we need to account for them here. + int numVisibleChildren = 0; + for (int i = getChildCount() - 1; i >= 0; --i) { + if (getChildAt(i).getVisibility() == VISIBLE) { + numVisibleChildren++; + } + } + int childMargins = (numVisibleChildren - 1) * mMargin; + int height = getMeasuredHeight() + extraVerticalSpace + childMargins; + int width = getMeasuredWidth(); getTargetObjectLocation(mTempRect); InsettableFrameLayout dragLayer = getPopupContainer();