summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorAdam Powell <adamp@google.com>2012-06-07 12:17:48 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-06-07 12:17:48 -0700
commitf6e03e55401833cb764730257ce08639bd205529 (patch)
treecc4e0de241fc86253f2eab18354789c24c56e7e1 /core
parent3cab89e6911e9ed52b153d7cfb3fde2c9819c30e (diff)
parent72329952168fd86b911109602882b92494e9ccc5 (diff)
downloadframeworks_base-f6e03e55401833cb764730257ce08639bd205529.zip
frameworks_base-f6e03e55401833cb764730257ce08639bd205529.tar.gz
frameworks_base-f6e03e55401833cb764730257ce08639bd205529.tar.bz2
am 72329952: am 4c38fe36: Merge "Protect against bogus input for ListViews" into jb-dev
* commit '72329952168fd86b911109602882b92494e9ccc5': 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