Fix issue where AllAppsContainerView was blocking touches to part of the home screen

=> After the scrubber was engaged, it would continue to intercept touches forever
   (seems like a long standing issue)
=> Also fixed issue where the All Apps scrubber could be engaged from the Home / Overview
   states

b/133265591
b/132716177

Change-Id: I8c7b9d45be65216f2f1a69f69ab1636accd812c0
This commit is contained in:
Adam Cohen
2019-05-22 14:16:36 -07:00
parent 9fb137bb73
commit a09cfe2340

View File

@@ -41,6 +41,7 @@ import com.android.launcher3.Insettable;
import com.android.launcher3.InsettableFrameLayout;
import com.android.launcher3.ItemInfo;
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherState;
import com.android.launcher3.R;
import com.android.launcher3.TestProtocol;
import com.android.launcher3.Utilities;
@@ -193,11 +194,18 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
// The AllAppsContainerView houses the QSB and is hence visible from the Workspace
// Overview states. We shouldn't intercept for the scrubber in these cases.
if (!mLauncher.isInState(LauncherState.ALL_APPS)) return false;
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
AllAppsRecyclerView rv = getActiveRecyclerView();
if (rv != null &&
rv.getScrollbar().isHitInParent(ev.getX(), ev.getY(), mFastScrollerOffset)) {
mTouchHandler = rv.getScrollbar();
} else {
mTouchHandler = null;
}
}
if (mTouchHandler != null) {