summaryrefslogtreecommitdiffstats
path: root/core/java/com/android/internal/widget/ActionBarContextView.java
diff options
context:
space:
mode:
authorFabrice Di Meglio <fdimeglio@google.com>2012-06-25 15:49:11 -0700
committerFabrice Di Meglio <fdimeglio@google.com>2012-07-12 17:39:12 -0700
commitcf1ba0298c48ae56608ed556dc715eb69c54f9b9 (patch)
tree4f0b83de4bb8585506fed122a215757e87503754 /core/java/com/android/internal/widget/ActionBarContextView.java
parent92bd5f95ca078a795db7c2efd30e85d4260561de (diff)
downloadframeworks_base-cf1ba0298c48ae56608ed556dc715eb69c54f9b9.zip
frameworks_base-cf1ba0298c48ae56608ed556dc715eb69c54f9b9.tar.gz
frameworks_base-cf1ba0298c48ae56608ed556dc715eb69c54f9b9.tar.bz2
Make ActionBar aware of layout direction
- see bug #5429822 UI should be mirrored for RTL locales (Arabic, Hebrew, farsi) Change-Id: Iea8a512311ee99548f39bbbe342f21eabaffbe09
Diffstat (limited to 'core/java/com/android/internal/widget/ActionBarContextView.java')
-rw-r--r--core/java/com/android/internal/widget/ActionBarContextView.java21
1 files changed, 12 insertions, 9 deletions
diff --git a/core/java/com/android/internal/widget/ActionBarContextView.java b/core/java/com/android/internal/widget/ActionBarContextView.java
index 16f08f5..8bc1081 100644
--- a/core/java/com/android/internal/widget/ActionBarContextView.java
+++ b/core/java/com/android/internal/widget/ActionBarContextView.java
@@ -454,15 +454,18 @@ public class ActionBarContextView extends AbsActionBarView implements AnimatorLi
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
- int x = getPaddingLeft();
+ final boolean isLayoutRtl = isLayoutRtl();
+ int x = isLayoutRtl ? r - l - getPaddingRight() : getPaddingLeft();
final int y = getPaddingTop();
final int contentHeight = b - t - getPaddingTop() - getPaddingBottom();
if (mClose != null && mClose.getVisibility() != GONE) {
MarginLayoutParams lp = (MarginLayoutParams) mClose.getLayoutParams();
- x += lp.leftMargin;
- x += positionChild(mClose, x, y, contentHeight);
- x += lp.rightMargin;
+ final int startMargin = (isLayoutRtl ? lp.rightMargin : lp.leftMargin);
+ final int endMargin = (isLayoutRtl ? lp.leftMargin : lp.rightMargin);
+ x = next(x, startMargin, isLayoutRtl);
+ x += positionChild(mClose, x, y, contentHeight, isLayoutRtl);
+ x = next(x, endMargin, isLayoutRtl);
if (mAnimateInOnLayout) {
mAnimationMode = ANIMATE_IN;
@@ -473,17 +476,17 @@ public class ActionBarContextView extends AbsActionBarView implements AnimatorLi
}
if (mTitleLayout != null && mCustomView == null && mTitleLayout.getVisibility() != GONE) {
- x += positionChild(mTitleLayout, x, y, contentHeight);
+ x += positionChild(mTitleLayout, x, y, contentHeight, isLayoutRtl);
}
if (mCustomView != null) {
- x += positionChild(mCustomView, x, y, contentHeight);
+ x += positionChild(mCustomView, x, y, contentHeight, isLayoutRtl);
}
-
- x = r - l - getPaddingRight();
+
+ x = isLayoutRtl ? getPaddingLeft() : r - l - getPaddingRight();
if (mMenuView != null) {
- x -= positionChildInverse(mMenuView, x, y, contentHeight);
+ x += positionChild(mMenuView, x, y, contentHeight, !isLayoutRtl);
}
}