Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 28048d01 authored by Adam Powell's avatar Adam Powell
Browse files

Protect against bogus input for ListViews

Guard against cases where ListView might receive touch events while
detached.

Update ListMenuPresenter to dispatch a data set change when the
backing menu is changed.

Bug 6543282

Change-Id: If2fb9b6aa3cf4a1b7070a7cd0de0edf0fc2f4cca
parent 538252cd
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -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) {
+3 −0
Original line number Diff line number Diff line
@@ -88,6 +88,9 @@ public class ListMenuPresenter implements MenuPresenter, AdapterView.OnItemClick
            }
        }
        mMenu = menu;
        if (mAdapter != null) {
            mAdapter.notifyDataSetChanged();
        }
    }

    @Override