From 09b7dea5b7613e3c96e46006a7b62e2ff84e77f2 Mon Sep 17 00:00:00 2001 From: Selim Cinek Date: Tue, 30 Aug 2016 11:28:19 -0700 Subject: [PATCH] Overflow number supports RTL layout Fix overlapping issue of overflow number view in RTL layout. And also, fit the width of overflow Single-line view to match_parent. Change-Id: I436a3770c8a0001b7a577e3f726bb52cd978298e Fixes: 31181327 --- .../android/systemui/statusbar/NotificationContentView.java | 2 +- .../statusbar/stack/NotificationChildrenContainer.java | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java index 9fd09d92162cb..78e56c04ce9bd 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java @@ -205,7 +205,7 @@ public class NotificationContentView extends FrameLayout { && MeasureSpec.getMode(widthMeasureSpec) != MeasureSpec.UNSPECIFIED) { singleLineWidthSpec = MeasureSpec.makeMeasureSpec( width - mSingleLineWidthIndention + mSingleLineView.getPaddingEnd(), - MeasureSpec.AT_MOST); + MeasureSpec.EXACTLY); } mSingleLineView.measure(singleLineWidthSpec, MeasureSpec.makeMeasureSpec(maxSize, MeasureSpec.AT_MOST)); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationChildrenContainer.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationChildrenContainer.java index 3c9373bd46a27..d7920a9b1e7b3 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationChildrenContainer.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationChildrenContainer.java @@ -123,8 +123,10 @@ public class NotificationChildrenContainer extends ViewGroup { mDividers.get(i).layout(0, 0, getWidth(), mDividerHeight); } if (mOverflowNumber != null) { - mOverflowNumber.layout(getWidth() - mOverflowNumber.getMeasuredWidth(), 0, getWidth(), - mOverflowNumber.getMeasuredHeight()); + boolean isRtl = getLayoutDirection() == LAYOUT_DIRECTION_RTL; + int left = (isRtl ? 0 : getWidth() - mOverflowNumber.getMeasuredWidth()); + int right = left + mOverflowNumber.getMeasuredWidth(); + mOverflowNumber.layout(left, 0, right, mOverflowNumber.getMeasuredHeight()); } if (mNotificationHeader != null) { mNotificationHeader.layout(0, 0, mNotificationHeader.getMeasuredWidth(),