From 31ff78b1465b26d50c629f8f47d1a485218f6ad5 Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Thu, 4 Jun 2015 17:18:34 +0000 Subject: Revert "Synchronize selected item data on-demand after data set invalidation" This CL was a can of worms. More extensive changes are needed to decouple AdapterView state from measure/layout passes. This reverts commit abed07f6c0186e16e1c8e8aaceaf8cf961695c66. Change-Id: I4e4e01692a1f660a04e9dfd16db882f13c3d0b94 --- core/java/android/widget/AbsListView.java | 7 ---- core/java/android/widget/AdapterView.java | 59 ++++++------------------------- 2 files changed, 10 insertions(+), 56 deletions(-) diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index c9ed369f2bc8..a3332fa21f2c 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -5305,13 +5305,6 @@ public abstract class AbsListView extends AdapterView implements Te } } - @Override - void syncSelectedItem() { - if (mDataChanged) { - layoutChildren(); - } - } - @Override protected void handleDataChanged() { int count = mItemCount; diff --git a/core/java/android/widget/AdapterView.java b/core/java/android/widget/AdapterView.java index cfe02bdd12f9..696271105639 100644 --- a/core/java/android/widget/AdapterView.java +++ b/core/java/android/widget/AdapterView.java @@ -551,67 +551,37 @@ public abstract class AdapterView extends ViewGroup { } /** - * Returns the position of the currently selected item within the adapter's - * data set, or {@link #INVALID_POSITION} if there is nothing selected. - *

- * Note: Prior to {@link android.os.Build.VERSION_CODES#MNC}, - * calling this method between an adapter data set change and a subsequent - * layout pass could return invalid data. + * Return the position of the currently selected item within the adapter's data set * - * @return the selected item's position (starting at 0), or - * {@link #INVALID_POSITION} if there is nothing selected + * @return int Position (starting at 0), or {@link #INVALID_POSITION} if there is nothing selected. */ @ViewDebug.CapturedViewProperty public int getSelectedItemPosition() { - syncSelectedItem(); return mNextSelectedPosition; } /** - * Returns the row ID corresponding to the currently selected item, or - * {@link #INVALID_ROW_ID} if nothing is selected. - *

- * Note: Prior to {@link android.os.Build.VERSION_CODES#MNC}, - * calling this method between an adapter data set change and a subsequent - * layout pass could return invalid data. - * - * @return the selected item's row ID, or {@link #INVALID_ROW_ID} if - * nothing is selected + * @return The id corresponding to the currently selected item, or {@link #INVALID_ROW_ID} + * if nothing is selected. */ @ViewDebug.CapturedViewProperty public long getSelectedItemId() { - syncSelectedItem(); return mNextSelectedRowId; } /** - * Returns the view corresponding to the currently selected item, or - * {@code null} if nothing is selected. - *

- * Note: Prior to {@link android.os.Build.VERSION_CODES#MNC}, - * calling this method between an adapter data set change and a subsequent - * layout pass could return inconsistent data. - * - * @return the selected item's view, or {@code null} if nothing is selected + * @return The view corresponding to the currently selected item, or null + * if nothing is selected */ - @Nullable public abstract View getSelectedView(); /** - * Returns the data corresponding to the currently selected item, or - * {@code null} if nothing is selected. - *

- * Note: Prior to {@link android.os.Build.VERSION_CODES#MNC}, - * calling this method between an adapter data set change and a subsequent - * layout pass could return inconsistent data. - * - * @return the data corresponding to the currently selected item, or - * {@code null} if there is nothing selected. + * @return The data corresponding to the currently selected item, or + * null if there is nothing selected. */ - @Nullable public Object getSelectedItem() { - final T adapter = getAdapter(); - final int selection = getSelectedItemPosition(); + T adapter = getAdapter(); + int selection = getSelectedItemPosition(); if (adapter != null && adapter.getCount() > 0 && selection >= 0) { return adapter.getItem(selection); } else { @@ -619,15 +589,6 @@ public abstract class AdapterView extends ViewGroup { } } - /** - * Synchronizes the selected item's position and ID, if necessary. - */ - void syncSelectedItem() { - if (mDataChanged) { - onLayout(false, mLeft, mTop, mRight, mBottom); - } - } - /** * @return The number of items owned by the Adapter associated with this * AdapterView. (This is the number of data items, which may be -- cgit v1.2.3-59-g8ed1b