Skip to content

Commit 0590c1b

Browse files
Fabrice Di MeglioAndroid (Google) Code Review
authored andcommitted
Merge "Make CheckedTextView RTL aware - DO NOT MERGE" into jb-mr1-dev
2 parents b371657 + e2386c1 commit 0590c1b

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

core/java/android/widget/CheckedTextView.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,11 @@ public void onPaddingChanged(int layoutDirection) {
174174
int newPadding = (mCheckMarkDrawable != null) ?
175175
mCheckMarkWidth + mBasePadding : mBasePadding;
176176
mNeedRequestlayout |= (mPaddingRight != newPadding);
177-
mPaddingRight = newPadding;
177+
if (isLayoutRtl()) {
178+
mPaddingLeft = newPadding;
179+
} else {
180+
mPaddingRight = newPadding;
181+
}
178182
if (mNeedRequestlayout) {
179183
requestLayout();
180184
mNeedRequestlayout = false;
@@ -184,7 +188,7 @@ public void onPaddingChanged(int layoutDirection) {
184188
@Override
185189
public void setPadding(int left, int top, int right, int bottom) {
186190
super.setPadding(left, top, right, bottom);
187-
mBasePadding = mPaddingRight;
191+
mBasePadding = getPaddingEnd();
188192
}
189193

190194
@Override
@@ -213,12 +217,13 @@ protected void onDraw(Canvas canvas) {
213217
break;
214218
}
215219

216-
int right = getWidth();
217-
checkMarkDrawable.setBounds(
218-
right - mPaddingRight,
219-
y,
220-
right - mPaddingRight + mCheckMarkWidth,
221-
y + height);
220+
final boolean isLayoutRtl = isLayoutRtl();
221+
final int width = getWidth();
222+
final int top = y;
223+
final int bottom = top + height;
224+
final int left = isLayoutRtl ? getPaddingEnd() : width - getPaddingEnd();
225+
final int right = left + mCheckMarkWidth;
226+
checkMarkDrawable.setBounds( left, top, right, bottom);
222227
checkMarkDrawable.draw(canvas);
223228
}
224229
}

0 commit comments

Comments
 (0)