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

Commit 5bfee498 authored by Jorim Jaggi's avatar Jorim Jaggi Committed by Android (Google) Code Review
Browse files

Merge "Fix intercept logic in NotificationPanelView." into lmp-preview-dev

parents a08334e5 ce50b819
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -353,10 +353,12 @@ public class NotificationPanelView extends PanelView implements
    @Override
    public void requestDisallowInterceptTouchEvent(boolean disallowIntercept) {

        // Block request so we can still intercept the scrolling when QS is expanded.
        if (!mQsExpanded) {
            super.requestDisallowInterceptTouchEvent(disallowIntercept);
        // Block request when interacting with the scroll view so we can still intercept the
        // scrolling when QS is expanded.
        if (mScrollView.isDispatchingTouchEvent()) {
            return;
        }
        super.requestDisallowInterceptTouchEvent(disallowIntercept);
    }

    private void flingWithCurrentVelocity() {
+14 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.systemui.statusbar.phone;

import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ScrollView;

@@ -28,6 +29,7 @@ public class ObservableScrollView extends ScrollView {

    private Listener mListener;
    private int mLastOverscrollAmount;
    private boolean mDispatchingTouchEvent;

    public ObservableScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
@@ -41,6 +43,10 @@ public class ObservableScrollView extends ScrollView {
        return getScrollY() == getMaxScrollY();
    }

    public boolean isDispatchingTouchEvent() {
        return mDispatchingTouchEvent;
    }

    private int getMaxScrollY() {
        int scrollRange = 0;
        if (getChildCount() > 0) {
@@ -51,6 +57,14 @@ public class ObservableScrollView extends ScrollView {
        return scrollRange;
    }

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        mDispatchingTouchEvent = true;
        boolean result = super.dispatchTouchEvent(ev);
        mDispatchingTouchEvent = false;
        return result;
    }

    @Override
    protected void onScrollChanged(int l, int t, int oldl, int oldt) {
        super.onScrollChanged(l, t, oldl, oldt);