summaryrefslogtreecommitdiff
path: root/core/java/android/widget/CheckedTextView.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/widget/CheckedTextView.java')
-rw-r--r--core/java/android/widget/CheckedTextView.java26
1 files changed, 23 insertions, 3 deletions
diff --git a/core/java/android/widget/CheckedTextView.java b/core/java/android/widget/CheckedTextView.java
index 46079f937201..f91201a6973d 100644
--- a/core/java/android/widget/CheckedTextView.java
+++ b/core/java/android/widget/CheckedTextView.java
@@ -151,7 +151,7 @@ public class CheckedTextView extends TextView implements Checkable {
mCheckMarkWidth = 0;
}
mCheckMarkDrawable = d;
- // Do padding resolution. This will call setPadding() and do a requestLayout() if needed.
+ // Do padding resolution. This will call internalSetPadding() and do a requestLayout() if needed.
resolvePadding();
}
@@ -169,6 +169,19 @@ public class CheckedTextView extends TextView implements Checkable {
return mCheckMarkDrawable;
}
+ /**
+ * @hide
+ */
+ @Override
+ protected void internalSetPadding(int left, int top, int right, int bottom) {
+ super.internalSetPadding(left, top, right, bottom);
+ if (isLayoutRtl()) {
+ mBasePadding = mUserPaddingLeft;
+ } else {
+ mBasePadding = mUserPaddingRight;
+ }
+ }
+
@Override
public void onPaddingChanged(int layoutDirection) {
int newPadding = (mCheckMarkDrawable != null) ?
@@ -221,8 +234,15 @@ public class CheckedTextView extends TextView implements Checkable {
final int width = getWidth();
final int top = y;
final int bottom = top + height;
- final int left = isLayoutRtl ? getPaddingEnd() : width - getPaddingEnd();
- final int right = left + mCheckMarkWidth;
+ final int left;
+ final int right;
+ if (isLayoutRtl) {
+ right = getPaddingEnd();
+ left = right - mCheckMarkWidth;
+ } else {
+ left = width - getPaddingEnd();
+ right = left + mCheckMarkWidth;
+ }
checkMarkDrawable.setBounds( left, top, right, bottom);
checkMarkDrawable.draw(canvas);
}