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

Commit a3aa7a13 authored by Adam Powell's avatar Adam Powell Committed by The Android Automerger
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 8e2eaea6
Loading
Loading
Loading
Loading
+16 −0
Original line number Original line Diff line number Diff line
@@ -3351,6 +3351,14 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
            mPositionScroller.stop();
            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) {
        if (mFastScroller != null) {
            boolean intercepted = mFastScroller.onTouchEvent(ev);
            boolean intercepted = mFastScroller.onTouchEvent(ev);
            if (intercepted) {
            if (intercepted) {
@@ -3846,6 +3854,14 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
            mPositionScroller.stop();
            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) {
        if (mFastScroller != null) {
            boolean intercepted = mFastScroller.onInterceptTouchEvent(ev);
            boolean intercepted = mFastScroller.onInterceptTouchEvent(ev);
            if (intercepted) {
            if (intercepted) {
+3 −0
Original line number Original line Diff line number Diff line
@@ -88,6 +88,9 @@ public class ListMenuPresenter implements MenuPresenter, AdapterView.OnItemClick
            }
            }
        }
        }
        mMenu = menu;
        mMenu = menu;
        if (mAdapter != null) {
            mAdapter.notifyDataSetChanged();
        }
    }
    }


    @Override
    @Override