diff options
author | Jorim Jaggi <jjaggi@google.com> | 2014-05-24 16:04:17 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-05-24 16:04:18 +0000 |
commit | 5bfee4986a9cd5146eb30a2bddcb201f79728d6c (patch) | |
tree | 41b2308fd412ccaa25abe1e088370950b8a6adab /packages/SystemUI/src/com/android | |
parent | a08334e506c94c6cb2b37b8d53c1063acab53d31 (diff) | |
parent | ce50b8199ccba2348abe405d05db028e0566806d (diff) | |
download | frameworks_base-5bfee4986a9cd5146eb30a2bddcb201f79728d6c.zip frameworks_base-5bfee4986a9cd5146eb30a2bddcb201f79728d6c.tar.gz frameworks_base-5bfee4986a9cd5146eb30a2bddcb201f79728d6c.tar.bz2 |
Merge "Fix intercept logic in NotificationPanelView." into lmp-preview-dev
Diffstat (limited to 'packages/SystemUI/src/com/android')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java | 8 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/ObservableScrollView.java | 14 |
2 files changed, 19 insertions, 3 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index 0a44904..2f2a5df 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -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() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ObservableScrollView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ObservableScrollView.java index ba0b66e..c4e61d0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ObservableScrollView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ObservableScrollView.java @@ -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) { @@ -52,6 +58,14 @@ public class ObservableScrollView extends ScrollView { } @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); if (mListener != null) { |