Merge "Pull down should work on search box, even if all apps scroll is not at top. b/30295305" into ub-launcher3-calgary

This commit is contained in:
Hyunyoung Song
2016-08-05 21:13:08 +00:00
committed by Android (Google) Code Review
3 changed files with 12 additions and 6 deletions
@@ -259,13 +259,19 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc
/**
* Returns whether the view itself will handle the touch event or not.
*/
public boolean shouldContainerScroll(float x, float y) {
public boolean shouldContainerScroll(MotionEvent ev) {
int[] point = new int[2];
point[0] = (int) x;
point[1] = (int) y;
point[0] = (int) ev.getX();
point[1] = (int) ev.getY();
Utilities.mapCoordInSelfToDescendent(mAppsRecyclerView, this, point);
// if the MotionEvent is inside the thumb, container should not be pulled down.
// IF the MotionEvent is inside the search box, and the container keeps on receiving
// touch input, container should move down.
if (mLauncher.getDragLayer().isEventOverView(mSearchContainer, ev)) {
return true;
}
// IF the MotionEvent is inside the thumb, container should not be pulled down.
if (mAppsRecyclerView.getScrollBar().isNearThumb(point[0], point[1])) {
return false;
}
@@ -111,7 +111,7 @@ public class AllAppsTransitionController implements TouchController, VerticalPul
if (mLauncher.getWorkspace().isInOverviewMode() || mLauncher.isWidgetsViewVisible()) {
mNoIntercept = true;
} else if (mLauncher.isAllAppsVisible() &&
!mAppsView.shouldContainerScroll(ev.getX(), ev.getY())) {
!mAppsView.shouldContainerScroll(ev)) {
mNoIntercept = true;
} else if (!mLauncher.isAllAppsVisible() && !shouldPossiblyIntercept(ev)) {
mNoIntercept = true;
@@ -207,7 +207,7 @@ public class DragLayer extends InsettableFrameLayout {
return isEventOverView(mLauncher.getDropTargetBar(), ev);
}
private boolean isEventOverView(View view, MotionEvent ev) {
public boolean isEventOverView(View view, MotionEvent ev) {
getDescendantRectRelativeToSelf(view, mHitRect);
return mHitRect.contains((int) ev.getX(), (int) ev.getY());
}