Skip to content

Commit de91aa4

Browse files
Fabrice Di MeglioAndroid (Google) Code Review
authored andcommitted
Merge "Fix again bug #6887370 ListPreference shows misaligned radio drawables (in CheckedTextView?)" into jb-mr1-dev
2 parents 3a5c376 + 0dc9646 commit de91aa4

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

core/java/android/widget/CheckedTextView.java

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -175,11 +175,7 @@ public Drawable getCheckMarkDrawable() {
175175
@Override
176176
protected void internalSetPadding(int left, int top, int right, int bottom) {
177177
super.internalSetPadding(left, top, right, bottom);
178-
if (isLayoutRtl()) {
179-
mBasePadding = mUserPaddingLeft;
180-
} else {
181-
mBasePadding = mUserPaddingRight;
182-
}
178+
setBasePadding(isLayoutRtl());
183179
}
184180

185181
@Override
@@ -201,13 +197,21 @@ public void onPaddingChanged(int layoutDirection) {
201197
@Override
202198
public void setPadding(int left, int top, int right, int bottom) {
203199
super.setPadding(left, top, right, bottom);
204-
mBasePadding = getPaddingEnd();
200+
setBasePadding(isLayoutRtl());
205201
}
206202

207203
@Override
208204
public void setPaddingRelative(int start, int top, int end, int bottom) {
209205
super.setPaddingRelative(start, top, end, bottom);
210-
mBasePadding = getPaddingEnd();
206+
setBasePadding(isLayoutRtl());
207+
}
208+
209+
private void setBasePadding(boolean isLayoutRtl) {
210+
if (isLayoutRtl) {
211+
mBasePadding = mPaddingLeft;
212+
} else {
213+
mBasePadding = mPaddingRight;
214+
}
211215
}
212216

213217
@Override
@@ -237,11 +241,11 @@ protected void onDraw(Canvas canvas) {
237241
final int left;
238242
final int right;
239243
if (isLayoutRtl) {
240-
right = getPaddingEnd();
241-
left = right - mCheckMarkWidth;
242-
} else {
243-
left = width - getPaddingEnd();
244+
left = mBasePadding;
244245
right = left + mCheckMarkWidth;
246+
} else {
247+
right = width - mBasePadding;
248+
left = right - mCheckMarkWidth;
245249
}
246250
checkMarkDrawable.setBounds( left, top, right, bottom);
247251
checkMarkDrawable.draw(canvas);

0 commit comments

Comments
 (0)