summaryrefslogtreecommitdiff
path: root/core/java/android/widget
diff options
context:
space:
mode:
authorAdam Powell <adamp@google.com>2011-01-18 20:43:23 -0800
committerAdam Powell <adamp@google.com>2011-01-18 20:44:01 -0800
commitb1f498afc379ec84b86137e91afda6eccb8f4c0a (patch)
treed5bb4a627840b4e578e890fed652bebccab2f3dc /core/java/android/widget
parent6cfc7a0acb0d3b202ae1dbee88e7e8bdfaee5590 (diff)
Fix bug 3362258 - Fastscroll is out of sync with the list
Change-Id: I13282bfed355f5794041e83818ee2e9e97c1b318
Diffstat (limited to 'core/java/android/widget')
-rw-r--r--core/java/android/widget/AbsListView.java18
-rw-r--r--core/java/android/widget/FastScroller.java4
2 files changed, 22 insertions, 0 deletions
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java
index d8f597207dac..f85772ca898e 100644
--- a/core/java/android/widget/AbsListView.java
+++ b/core/java/android/widget/AbsListView.java
@@ -5315,6 +5315,24 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
mRecycler.mRecyclerListener = listener;
}
+ class AdapterDataSetObserver extends AdapterView<ListAdapter>.AdapterDataSetObserver {
+ @Override
+ public void onChanged() {
+ super.onChanged();
+ if (mFastScroller != null) {
+ mFastScroller.onSectionsChanged();
+ }
+ }
+
+ @Override
+ public void onInvalidated() {
+ super.onInvalidated();
+ if (mFastScroller != null) {
+ mFastScroller.onSectionsChanged();
+ }
+ }
+ }
+
/**
* A MultiChoiceModeListener receives events for {@link AbsListView#CHOICE_MODE_MULTIPLE_MODAL}.
* It acts as the {@link ActionMode.Callback} for the selection mode and also receives
diff --git a/core/java/android/widget/FastScroller.java b/core/java/android/widget/FastScroller.java
index dfa94c75aaaa..200c870f3790 100644
--- a/core/java/android/widget/FastScroller.java
+++ b/core/java/android/widget/FastScroller.java
@@ -476,6 +476,10 @@ class FastScroller {
}
}
+ public void onSectionsChanged() {
+ mListAdapter = null;
+ }
+
private void scrollTo(float position) {
int count = mList.getCount();
mScrollCompleted = false;