diff options
author | Hyunyoung Song <hyunyoungs@google.com> | 2017-07-19 19:35:46 +0000 |
---|---|---|
committer | Hyunyoung Song <hyunyoungs@google.com> | 2017-07-19 19:35:46 +0000 |
commit | febdbfcafb9bc99094fdc40169802048a3e68228 (patch) | |
tree | 108ce02f174a08ae26bdec46a8334e8ffbdcdf64 /src/com/android/launcher3 | |
parent | 0b5f8f82e3d4bf5664a39aa89b99872227ed6951 (diff) | |
parent | 435a35dec32c24e353a01228f3deef1d5b85810c (diff) | |
download | android_packages_apps_Trebuchet-febdbfcafb9bc99094fdc40169802048a3e68228.tar.gz android_packages_apps_Trebuchet-febdbfcafb9bc99094fdc40169802048a3e68228.tar.bz2 android_packages_apps_Trebuchet-febdbfcafb9bc99094fdc40169802048a3e68228.zip |
PopupContainerWithArrow should align correctly in RTL mode Test: see attached screenshot in the bug am: 435a35dec3
Change-Id: I4c290f603c94955a9b85a9c4b91fa0738820d932
Diffstat (limited to 'src/com/android/launcher3')
-rw-r--r-- | src/com/android/launcher3/popup/PopupContainerWithArrow.java | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/src/com/android/launcher3/popup/PopupContainerWithArrow.java b/src/com/android/launcher3/popup/PopupContainerWithArrow.java index 3de9bad4c..f5f7ddb31 100644 --- a/src/com/android/launcher3/popup/PopupContainerWithArrow.java +++ b/src/com/android/launcher3/popup/PopupContainerWithArrow.java @@ -399,6 +399,24 @@ public class PopupContainerWithArrow extends AbstractFloatingView implements Dra openAnim.start(); } + @Override + protected void onLayout(boolean changed, int l, int t, int r, int b) { + super.onLayout(changed, l, t, r, b); + DragLayer dragLayer = mLauncher.getDragLayer(); + if (getTranslationX() + l < 0 || + getTranslationX() + l + getMeasuredWidth() > dragLayer.getWidth()) { + // If we are still off screen, center horizontally too. + mGravity |= Gravity.CENTER_HORIZONTAL; + } + + if (Gravity.isHorizontal(mGravity)) { + setX(dragLayer.getWidth() / 2 - getMeasuredWidth() / 2); + } + if (Gravity.isVertical(mGravity)) { + setY(dragLayer.getHeight() / 2 - getMeasuredHeight() / 2); + } + } + /** * Returns the point at which the center of the arrow merges with the first popup item. */ @@ -517,21 +535,8 @@ public class PopupContainerWithArrow extends AbstractFloatingView implements Dra mIsAboveIcon = true; } - if (x < dragLayer.getLeft() || x + width > dragLayer.getRight()) { - // If we are still off screen, center horizontally too. - mGravity |= Gravity.CENTER_HORIZONTAL; - } - - if (Gravity.isHorizontal(mGravity)) { - setX(dragLayer.getWidth() / 2 - getMeasuredWidth() / 2); - } else { - setX(x); - } - if (Gravity.isVertical(mGravity)) { - setY(dragLayer.getHeight() / 2 - getMeasuredHeight() / 2); - } else { - setY(y); - } + setX(x); + setY(y); } private boolean isAlignedWithStart() { |