Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0a9c092c authored by Hyunyoung Song's avatar Hyunyoung Song
Browse files

Fixing two critical bugs in all apps transition controller

bug#1: if long press from page indicator region, you can pull up all apps
even though the workspace is in overview state.

bug#2: all apps should not intercept touch not only in overview mode
but also in any modal state.

Change-Id: I91c0a181f037f6c2465a983825da3a2da7e2920f
parent 1cc48e1d
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -3235,7 +3235,6 @@ public class Launcher extends Activity
                    mWorkspace.startReordering(v);
                } else {
                    showOverviewMode(true);
                    mHotseat.requestDisallowInterceptTouchEvent(true);
                }
            } else {
                final boolean isAllAppsButton =
@@ -3386,6 +3385,9 @@ public class Launcher extends Activity
        mStateTransitionAnimation.startAnimationToWorkspace(mState, mWorkspace.getState(),
                Workspace.State.OVERVIEW, animated, postAnimRunnable);
        mState = State.WORKSPACE;
        // If animated from long press, then don't allow any of the controller in the drag
        // layer to intercept any remaining touch.
        mWorkspace.requestDisallowInterceptTouchEvent(animated);
    }

    /**
+3 −4
Original line number Diff line number Diff line
@@ -108,7 +108,7 @@ public class AllAppsTransitionController implements TouchController, VerticalPul
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        if (ev.getAction() == MotionEvent.ACTION_DOWN) {
            mNoIntercept = false;
            if (mLauncher.getWorkspace().isInOverviewMode() || mLauncher.isWidgetsViewVisible()) {
            if (!mLauncher.isAllAppsVisible() && mLauncher.getWorkspace().workspaceInModalState()) {
                mNoIntercept = true;
            } else if (mLauncher.isAllAppsVisible() &&
                    !mAppsView.shouldContainerScroll(ev)) {
@@ -159,9 +159,8 @@ public class AllAppsTransitionController implements TouchController, VerticalPul
                    return true;
                }
            } else {
                if ((mLauncher.getDragLayer().isEventOverHotseat(ev)
                        || mLauncher.getDragLayer().isEventOverPageIndicator(ev))
                        && !grid.isVerticalBarLayout()) {
                if (mLauncher.getDragLayer().isEventOverHotseat(ev) ||
                        mLauncher.getDragLayer().isEventOverPageIndicator(ev)) {
                    return true;
                }
            }