summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorAdam Powell <adamp@google.com>2012-06-07 12:14:21 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-06-07 12:14:21 -0700
commit72329952168fd86b911109602882b92494e9ccc5 (patch)
tree82356503fc0a9c79ad77cbd3bf3d2c25eab0efd0 /core
parentb4b0a7fea8735dc7de4bdcfe5e7f065a39ee8e2d (diff)
parent4c38fe369fee76b8d4fca5a7b0b8d81a96f0219f (diff)
downloadframeworks_base-72329952168fd86b911109602882b92494e9ccc5.zip
frameworks_base-72329952168fd86b911109602882b92494e9ccc5.tar.gz
frameworks_base-72329952168fd86b911109602882b92494e9ccc5.tar.bz2
am 4c38fe36: Merge "Protect against bogus input for ListViews" into jb-dev
* commit '4c38fe369fee76b8d4fca5a7b0b8d81a96f0219f': Protect against bogus input for ListViews
Diffstat (limited to 'core')
-rw-r--r--core/java/android/widget/AbsListView.java16
-rw-r--r--core/java/com/android/internal/view/menu/ListMenuPresenter.java3
2 files changed, 19 insertions, 0 deletions
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java
index 5f60735..c7d0569 100644
--- a/core/java/android/widget/AbsListView.java
+++ b/core/java/android/widget/AbsListView.java
@@ -3351,6 +3351,14 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
mPositionScroller.stop();
}
+ if (!mIsAttached) {
+ // 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
+ // in a bogus state.
+ return false;
+ }
+
if (mFastScroller != null) {
boolean intercepted = mFastScroller.onTouchEvent(ev);
if (intercepted) {
@@ -3846,6 +3854,14 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
mPositionScroller.stop();
}
+ if (!mIsAttached) {
+ // 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
+ // in a bogus state.
+ return false;
+ }
+
if (mFastScroller != null) {
boolean intercepted = mFastScroller.onInterceptTouchEvent(ev);
if (intercepted) {
diff --git a/core/java/com/android/internal/view/menu/ListMenuPresenter.java b/core/java/com/android/internal/view/menu/ListMenuPresenter.java
index b3e2d27..4882adc 100644
--- a/core/java/com/android/internal/view/menu/ListMenuPresenter.java
+++ b/core/java/com/android/internal/view/menu/ListMenuPresenter.java
@@ -88,6 +88,9 @@ public class ListMenuPresenter implements MenuPresenter, AdapterView.OnItemClick
}
}
mMenu = menu;
+ if (mAdapter != null) {
+ mAdapter.notifyDataSetChanged();
+ }
}
@Override