Closing the QS when tapping on the notifications now.

Bug: 15394230
Change-Id: Ib9f750db69529afc0d56685fb88a13d183b0d3d5
This commit is contained in:
Selim Cinek
2014-06-19 16:29:04 -07:00
parent 00a78899af
commit 89faff1dac
2 changed files with 11 additions and 2 deletions

View File

@@ -109,6 +109,7 @@ public class NotificationPanelView extends PanelView implements
private boolean mBlockTouches;
private ArrayList<View> mSwipeTranslationViews = new ArrayList<>();
private int mNotificationScrimWaitDistance;
private boolean mOnNotificationsOnDown;
public NotificationPanelView(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -347,6 +348,7 @@ public class NotificationPanelView extends PanelView implements
mInitialTouchX = x;
initVelocityTracker();
trackMovement(event);
mOnNotificationsOnDown = isOnNotifications(x, y);
if (shouldQuickSettingsIntercept(mInitialTouchX, mInitialTouchY, 0)) {
getParent().requestDisallowInterceptTouchEvent(true);
}
@@ -394,6 +396,8 @@ public class NotificationPanelView extends PanelView implements
if (mQsTracking) {
flingQsWithCurrentVelocity();
mQsTracking = false;
} else if (mQsFullyExpanded && mOnNotificationsOnDown) {
flingSettings(0 /* vel */, false /* expand */);
}
mIntercepting = false;
break;
@@ -401,6 +405,10 @@ public class NotificationPanelView extends PanelView implements
return !mQsExpanded && super.onInterceptTouchEvent(event);
}
private boolean isOnNotifications(float x, float y) {
return mNotificationStackScroller.getChildAtPosition(x, y) != null;
}
@Override
public void requestDisallowInterceptTouchEvent(boolean disallowIntercept) {

View File

@@ -541,8 +541,9 @@ public class NotificationStackScrollLayout extends ViewGroup
if (slidingChild.getVisibility() == GONE) {
continue;
}
float top = slidingChild.getTranslationY();
float bottom = top + slidingChild.getActualHeight();
float childTop = slidingChild.getTranslationY();
float top = childTop + slidingChild.getClipTopAmount();
float bottom = childTop + slidingChild.getActualHeight();
int left = slidingChild.getLeft();
int right = slidingChild.getRight();