From a19ab347be2ca9c7cac6a1943a658063b3571d92 Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Mon, 18 May 2015 13:20:52 -0700 Subject: [PATCH] Update cached child enabled state before selector state We reference the cached enabled state from the selector state update code, so we need to ensure it is accurate first. Bug: 20121334 Change-Id: I5859e9e8c594e1ba64ec9f001f47c2a6ea311c4f --- core/java/android/widget/AbsListView.java | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 9903b7e88ed9f..e963f53dd915a 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -2568,7 +2568,13 @@ public abstract class AbsListView extends AdapterView implements Te selectorRect.right += mSelectionRightPadding; selectorRect.bottom += mSelectionBottomPadding; - // Update the selector drawable. + // Update the child enabled state prior to updating the selector. + final boolean isChildViewEnabled = sel.isEnabled(); + if (mIsChildViewEnabled != isChildViewEnabled) { + mIsChildViewEnabled = isChildViewEnabled; + } + + // Update the selector drawable's state and position. final Drawable selector = mSelector; if (selector != null) { if (positionChanged) { @@ -2588,14 +2594,6 @@ public abstract class AbsListView extends AdapterView implements Te selector.setHotspot(x, y); } } - - final boolean isChildViewEnabled = mIsChildViewEnabled; - if (sel.isEnabled() != isChildViewEnabled) { - mIsChildViewEnabled = !isChildViewEnabled; - if (getSelectedItemPosition() != INVALID_POSITION) { - refreshDrawableState(); - } - } } @Override