Merge "Fix intercept logic in NotificationPanelView." into lmp-preview-dev
This commit is contained in:
@@ -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() {
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user