Skip to content

Commit 15bbde4

Browse files
author
Fabrice Di Meglio
committed
Fix bug #7199562 UI mirroring for RTL locales (Arabic, Hebrew, Farsi): Play settings
- fix padding issue. Need to update padding if layout direction change Change-Id: I2924c1b94c7ef054dd9bd670de4c5c206f52e412
1 parent c552081 commit 15bbde4

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

core/java/android/widget/CheckedTextView.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ public class CheckedTextView extends TextView implements Checkable {
4646
private int mCheckMarkWidth;
4747
private boolean mNeedRequestlayout;
4848

49+
private int initialPaddingLeft = -1;
50+
private int initialPaddingRight = -1;
51+
4952
private static final int[] CHECKED_STATE_SET = {
5053
R.attr.state_checked
5154
};
@@ -176,10 +179,22 @@ public Drawable getCheckMarkDrawable() {
176179
protected void internalSetPadding(int left, int top, int right, int bottom) {
177180
super.internalSetPadding(left, top, right, bottom);
178181
setBasePadding(isLayoutRtl());
182+
initialPaddingLeft = mPaddingLeft;
183+
initialPaddingRight = mPaddingRight;
179184
}
180185

181186
@Override
182187
public void onPaddingChanged(int layoutDirection) {
188+
updatePadding();
189+
}
190+
191+
@Override
192+
public void onRtlPropertiesChanged() {
193+
super.onRtlPropertiesChanged();
194+
updatePadding();
195+
}
196+
197+
private void updatePadding() {
183198
int newPadding = (mCheckMarkDrawable != null) ?
184199
mCheckMarkWidth + mBasePadding : mBasePadding;
185200
mNeedRequestlayout |= (mPaddingRight != newPadding);
@@ -193,7 +208,7 @@ public void onPaddingChanged(int layoutDirection) {
193208
mNeedRequestlayout = false;
194209
}
195210
}
196-
211+
197212
@Override
198213
public void setPadding(int left, int top, int right, int bottom) {
199214
super.setPadding(left, top, right, bottom);

0 commit comments

Comments
 (0)