@@ -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