diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 2d94b15c95987..871e3b98651d2 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -674,11 +674,6 @@ public abstract class AbsListView extends AdapterView implements Te private int mLastAccessibilityScrollEventFromIndex; private int mLastAccessibilityScrollEventToIndex; - /** - * Track if we are currently attached to a window. - */ - boolean mIsAttached; - /** * Track the item count from the last time we handled a data change. */ @@ -1908,7 +1903,7 @@ public abstract class AbsListView extends AdapterView implements Te protected void onFocusChanged(boolean gainFocus, int direction, Rect previouslyFocusedRect) { super.onFocusChanged(gainFocus, direction, previouslyFocusedRect); if (gainFocus && mSelectedPosition < 0 && !isInTouchMode()) { - if (!mIsAttached && mAdapter != null) { + if (!isAttachedToWindow() && mAdapter != null) { // Data may have changed while we were detached and it's valid // to change focus while detached. Refresh so we don't die. mDataChanged = true; @@ -2719,7 +2714,6 @@ public abstract class AbsListView extends AdapterView implements Te mOldItemCount = mItemCount; mItemCount = mAdapter.getCount(); } - mIsAttached = true; } @Override @@ -2774,7 +2768,6 @@ public abstract class AbsListView extends AdapterView implements Te removeCallbacks(mTouchModeReset); mTouchModeReset.run(); } - mIsAttached = false; } @Override @@ -3401,7 +3394,7 @@ public abstract class AbsListView extends AdapterView implements Te mPositionScroller.stop(); } - if (!mIsAttached) { + if (!isAttachedToWindow()) { // Something isn't right. // Since we rely on being attached to get data set change notifications, // don't risk doing anything where we might try to resync and find things @@ -3640,7 +3633,7 @@ public abstract class AbsListView extends AdapterView implements Te mTouchMode = TOUCH_MODE_REST; child.setPressed(false); setPressed(false); - if (!mDataChanged) { + if (!mDataChanged && isAttachedToWindow()) { performClick.run(); } } @@ -3915,7 +3908,7 @@ public abstract class AbsListView extends AdapterView implements Te mPositionScroller.stop(); } - if (!mIsAttached) { + if (!isAttachedToWindow()) { // Something isn't right. // Since we rely on being attached to get data set change notifications, // don't risk doing anything where we might try to resync and find things diff --git a/core/java/android/widget/FastScroller.java b/core/java/android/widget/FastScroller.java index 006b96e7834da..e2f6d7d3712ac 100644 --- a/core/java/android/widget/FastScroller.java +++ b/core/java/android/widget/FastScroller.java @@ -210,7 +210,7 @@ class FastScroller { private final Runnable mDeferStartDrag = new Runnable() { @Override public void run() { - if (mList.mIsAttached) { + if (mList.isAttachedToWindow()) { beginDrag(); final float pos = getPosFromMotionEvent(mInitialTouchY); diff --git a/core/java/android/widget/ListView.java b/core/java/android/widget/ListView.java index f79ad8d3da218..31e58204e1fd4 100644 --- a/core/java/android/widget/ListView.java +++ b/core/java/android/widget/ListView.java @@ -2126,7 +2126,7 @@ public class ListView extends AbsListView { } private boolean commonKey(int keyCode, int count, KeyEvent event) { - if (mAdapter == null || !mIsAttached) { + if (mAdapter == null || !isAttachedToWindow()) { return false; }