diff options
author | Adam Powell <adamp@google.com> | 2012-06-07 12:17:48 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-06-07 12:17:48 -0700 |
commit | f6e03e55401833cb764730257ce08639bd205529 (patch) | |
tree | cc4e0de241fc86253f2eab18354789c24c56e7e1 /core | |
parent | 3cab89e6911e9ed52b153d7cfb3fde2c9819c30e (diff) | |
parent | 72329952168fd86b911109602882b92494e9ccc5 (diff) | |
download | frameworks_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.java | 16 | ||||
-rw-r--r-- | core/java/com/android/internal/view/menu/ListMenuPresenter.java | 3 |
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 |