summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGilles Debunne <debunne@google.com>2011-01-13 13:52:49 -0800
committerGilles Debunne <debunne@google.com>2011-01-13 14:41:25 -0800
commitfb81703ab11c653a587b652b90ec3b550f500ccf (patch)
tree6fb6d2a5f393f6f2119fd296f0d8acae20158eeb
parenta6cbd72816932239a9d7e5fe665d05d6d0eae3bb (diff)
downloadframeworks_base-fb81703ab11c653a587b652b90ec3b550f500ccf.zip
frameworks_base-fb81703ab11c653a587b652b90ec3b550f500ccf.tar.gz
frameworks_base-fb81703ab11c653a587b652b90ec3b550f500ccf.tar.bz2
fix for cts DuplicateParentStateEnabled bug with TextViews.
Bug 3347206 Do not add an extra slot in the drawable state for multiline if it is not needed. Updated setDuplicateParentStateEnabled documentation. Change-Id: I95f74284721e25b483e12e9b861e810a55c260b6
-rw-r--r--core/java/android/view/View.java4
-rw-r--r--core/java/android/widget/TextView.java7
2 files changed, 9 insertions, 2 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 45c35f0..c319ad1 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -58,6 +58,7 @@ import android.util.PoolableManager;
import android.util.Pools;
import android.util.SparseArray;
import android.view.ContextMenu.ContextMenuInfo;
+import android.view.View.MeasureSpec;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityEventSource;
import android.view.accessibility.AccessibilityManager;
@@ -7822,6 +7823,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
*
* <p>Note: if this view's parent addStateFromChildren property is enabled and this
* property is enabled, an exception will be thrown.</p>
+ *
+ * <p>Note: if the child view uses and updates additionnal states which are unknown to the
+ * parent, these states should not be affected by this method.</p>
*
* @param enabled True to enable duplication of the parent's drawable state, false
* to disable it.
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index b892fe2..623cd41 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -4135,9 +4135,12 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
@Override
protected int[] onCreateDrawableState(int extraSpace) {
- final int[] drawableState = super.onCreateDrawableState(extraSpace + 1);
+ final int[] drawableState;
- if (!mSingleLine) {
+ if (mSingleLine) {
+ drawableState = super.onCreateDrawableState(extraSpace);
+ } else {
+ drawableState = super.onCreateDrawableState(extraSpace + 1);
mergeDrawableStates(drawableState, MULTILINE_STATE_SET);
}