From 54d69625558f401d5fe65309effb713d2ea06f54 Mon Sep 17 00:00:00 2001 From: Fabrice Di Meglio Date: Fri, 15 Jul 2011 16:46:44 -0700 Subject: Fix bug #4972141 Overlapping content in single-choice dialogs - need to take care about padding resolution Change-Id: Ida9738ffada6c6455b7949f933fa61924c4f7961 --- core/java/android/view/View.java | 12 ++++++--- core/java/android/widget/CheckedTextView.java | 10 ++++---- tests/BiDiTests/res/layout/basic.xml | 6 +++++ tests/BiDiTests/res/values/strings.xml | 1 + .../src/com/android/bidi/BiDiTestBasic.java | 29 ++++++++++++++++++++-- 5 files changed, 48 insertions(+), 10 deletions(-) diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 74dc10071e6b..8627ab2b1a1b 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -2167,21 +2167,27 @@ public class View implements Drawable.Callback2, KeyEvent.Callback, Accessibilit /** * Cache the paddingRight set by the user to append to the scrollbar's size. + * + * @hide */ @ViewDebug.ExportedProperty(category = "padding") - int mUserPaddingRight; + protected int mUserPaddingRight; /** * Cache the paddingBottom set by the user to append to the scrollbar's size. + * + * @hide */ @ViewDebug.ExportedProperty(category = "padding") - int mUserPaddingBottom; + protected int mUserPaddingBottom; /** * Cache the paddingLeft set by the user to append to the scrollbar's size. + * + * @hide */ @ViewDebug.ExportedProperty(category = "padding") - int mUserPaddingLeft; + protected int mUserPaddingLeft; /** * Cache if the user padding is relative. diff --git a/core/java/android/widget/CheckedTextView.java b/core/java/android/widget/CheckedTextView.java index 8d4aaea7455e..49616cc1ef18 100644 --- a/core/java/android/widget/CheckedTextView.java +++ b/core/java/android/widget/CheckedTextView.java @@ -130,10 +130,10 @@ public class CheckedTextView extends TextView implements Checkable { setMinHeight(d.getIntrinsicHeight()); mCheckMarkWidth = d.getIntrinsicWidth(); - mPaddingRight = mCheckMarkWidth + mBasePaddingRight; + mUserPaddingRight = mCheckMarkWidth + mBasePaddingRight; d.setState(getDrawableState()); } else { - mPaddingRight = mBasePaddingRight; + mUserPaddingRight = mBasePaddingRight; } mCheckMarkDrawable = d; requestLayout(); @@ -142,7 +142,7 @@ public class CheckedTextView extends TextView implements Checkable { @Override public void setPadding(int left, int top, int right, int bottom) { super.setPadding(left, top, right, bottom); - mBasePaddingRight = mPaddingRight; + mBasePaddingRight = mUserPaddingRight; } @Override @@ -167,9 +167,9 @@ public class CheckedTextView extends TextView implements Checkable { int right = getWidth(); checkMarkDrawable.setBounds( - right - mCheckMarkWidth - mBasePaddingRight, + right - mUserPaddingRight, y, - right - mBasePaddingRight, + right - mUserPaddingRight + mCheckMarkWidth, y + height); checkMarkDrawable.draw(canvas); } diff --git a/tests/BiDiTests/res/layout/basic.xml b/tests/BiDiTests/res/layout/basic.xml index d438b2cee732..348f8aa00d5b 100644 --- a/tests/BiDiTests/res/layout/basic.xml +++ b/tests/BiDiTests/res/layout/basic.xml @@ -49,6 +49,12 @@ +