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

Commit fa139757 authored by Adrian Roos's avatar Adrian Roos
Browse files

Prevent dismissal on RemoteInputView

Prevents swiping out a notification when started on
the RemoteInputView, as this can easily happen during
text manipulation otherwise.

Change-Id: I8f658eab88ca1daf8ffcb7a5d1fac4468f5f0845
Fixes: 28336831
parent 9fa8b545
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -250,6 +250,7 @@ public class RemoteInputView extends LinearLayout implements View.OnClickListene
            findScrollContainer();
            findScrollContainer();
            if (mScrollContainer != null) {
            if (mScrollContainer != null) {
                mScrollContainer.requestDisallowLongPress();
                mScrollContainer.requestDisallowLongPress();
                mScrollContainer.requestDisallowDismiss();
            }
            }
        }
        }
        return super.onInterceptTouchEvent(ev);
        return super.onInterceptTouchEvent(ev);
+11 −2
Original line number Original line Diff line number Diff line
@@ -231,6 +231,7 @@ public class NotificationStackScrollLayout extends ViewGroup
     * animating.
     * animating.
     */
     */
    private boolean mOnlyScrollingInThisMotion;
    private boolean mOnlyScrollingInThisMotion;
    private boolean mDisallowDismissInThisMotion;
    private boolean mInterceptDelegateEnabled;
    private boolean mInterceptDelegateEnabled;
    private boolean mDelegateToScrollView;
    private boolean mDelegateToScrollView;
    private boolean mDisallowScrollingInThisMotion;
    private boolean mDisallowScrollingInThisMotion;
@@ -1023,7 +1024,8 @@ public class NotificationStackScrollLayout extends ViewGroup
        if (!mIsBeingDragged
        if (!mIsBeingDragged
                && !mExpandingNotification
                && !mExpandingNotification
                && !mExpandedInThisMotion
                && !mExpandedInThisMotion
                && !mOnlyScrollingInThisMotion) {
                && !mOnlyScrollingInThisMotion
                && !mDisallowDismissInThisMotion) {
            horizontalSwipeWantsIt = mSwipeHelper.onTouchEvent(ev);
            horizontalSwipeWantsIt = mSwipeHelper.onTouchEvent(ev);
        }
        }
        return horizontalSwipeWantsIt || scrollerWantsIt || expandWantsIt || super.onTouchEvent(ev);
        return horizontalSwipeWantsIt || scrollerWantsIt || expandWantsIt || super.onTouchEvent(ev);
@@ -2003,7 +2005,8 @@ public class NotificationStackScrollLayout extends ViewGroup
        if (!mIsBeingDragged
        if (!mIsBeingDragged
                && !mExpandingNotification
                && !mExpandingNotification
                && !mExpandedInThisMotion
                && !mExpandedInThisMotion
                && !mOnlyScrollingInThisMotion) {
                && !mOnlyScrollingInThisMotion
                && !mDisallowDismissInThisMotion) {
            swipeWantsIt = mSwipeHelper.onInterceptTouchEvent(ev);
            swipeWantsIt = mSwipeHelper.onInterceptTouchEvent(ev);
        }
        }
        return swipeWantsIt || scrollWantsIt || expandWantsIt || super.onInterceptTouchEvent(ev);
        return swipeWantsIt || scrollWantsIt || expandWantsIt || super.onInterceptTouchEvent(ev);
@@ -2031,6 +2034,7 @@ public class NotificationStackScrollLayout extends ViewGroup
            mExpandedInThisMotion = false;
            mExpandedInThisMotion = false;
            mOnlyScrollingInThisMotion = !mScroller.isFinished();
            mOnlyScrollingInThisMotion = !mScroller.isFinished();
            mDisallowScrollingInThisMotion = false;
            mDisallowScrollingInThisMotion = false;
            mDisallowDismissInThisMotion = false;
            mTouchIsClick = true;
            mTouchIsClick = true;
            mInitialTouchX = ev.getX();
            mInitialTouchX = ev.getX();
            mInitialTouchY = ev.getY();
            mInitialTouchY = ev.getY();
@@ -2695,6 +2699,11 @@ public class NotificationStackScrollLayout extends ViewGroup
        removeLongPressCallback();
        removeLongPressCallback();
    }
    }


    @Override
    public void requestDisallowDismiss() {
        mDisallowDismissInThisMotion = true;
    }

    public void removeLongPressCallback() {
    public void removeLongPressCallback() {
        mSwipeHelper.removeLongPressCallback();
        mSwipeHelper.removeLongPressCallback();
    }
    }
+5 −0
Original line number Original line Diff line number Diff line
@@ -33,4 +33,9 @@ public interface ScrollContainer {
     * Request that the view is made visible by scrolling to it.
     * Request that the view is made visible by scrolling to it.
     */
     */
    void scrollTo(View v);
    void scrollTo(View v);

    /**
     * Request that the view does not dismiss for the current touch.
     */
    void requestDisallowDismiss();
}
}