summaryrefslogtreecommitdiffstats
path: root/packages/SystemUI/src/com/android
diff options
context:
space:
mode:
authorJorim Jaggi <jjaggi@google.com>2014-05-24 16:04:17 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-05-24 16:04:18 +0000
commit5bfee4986a9cd5146eb30a2bddcb201f79728d6c (patch)
tree41b2308fd412ccaa25abe1e088370950b8a6adab /packages/SystemUI/src/com/android
parenta08334e506c94c6cb2b37b8d53c1063acab53d31 (diff)
parentce50b8199ccba2348abe405d05db028e0566806d (diff)
downloadframeworks_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.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/ObservableScrollView.java14
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) {