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

Commit 036693cf authored by Winson's avatar Winson Committed by Winson Chung
Browse files

Preventing dock target from showing for single tasks.

Change-Id: I2a73c085e3777ac79f2846e1ba59f7c65bc3f9d0
parent 9941ab3c
Loading
Loading
Loading
Loading
+9 −11
Original line number Diff line number Diff line
@@ -93,12 +93,6 @@ public class RecentsView extends FrameLayout {

    private RecentsTransitionHelper mTransitionHelper;
    private RecentsViewTouchHandler mTouchHandler;
    private TaskStack.DockState[] mVisibleDockStates = {
            TaskStack.DockState.LEFT,
            TaskStack.DockState.TOP,
            TaskStack.DockState.RIGHT,
            TaskStack.DockState.BOTTOM,
    };

    private final Interpolator mFastOutSlowInInterpolator;
    private final Interpolator mFastOutLinearInInterpolator;
@@ -435,8 +429,9 @@ public class RecentsView extends FrameLayout {
    @Override
    protected void dispatchDraw(Canvas canvas) {
        super.dispatchDraw(canvas);
        for (int i = mVisibleDockStates.length - 1; i >= 0; i--) {
            Drawable d = mVisibleDockStates[i].viewState.dockAreaOverlay;
        ArrayList<TaskStack.DockState> visDockStates = mTouchHandler.getVisibleDockStates();
        for (int i = visDockStates.size() - 1; i >= 0; i--) {
            Drawable d = visDockStates.get(i).viewState.dockAreaOverlay;
            if (d.getAlpha() > 0) {
                d.draw(canvas);
            }
@@ -445,8 +440,9 @@ public class RecentsView extends FrameLayout {

    @Override
    protected boolean verifyDrawable(Drawable who) {
        for (int i = mVisibleDockStates.length - 1; i >= 0; i--) {
            Drawable d = mVisibleDockStates[i].viewState.dockAreaOverlay;
        ArrayList<TaskStack.DockState> visDockStates = mTouchHandler.getVisibleDockStates();
        for (int i = visDockStates.size() - 1; i >= 0; i--) {
            Drawable d = visDockStates.get(i).viewState.dockAreaOverlay;
            if (d == who) {
                return true;
            }
@@ -674,7 +670,9 @@ public class RecentsView extends FrameLayout {
        if (newDockStates != null) {
            Collections.addAll(newDockStatesSet, newDockStates);
        }
        for (TaskStack.DockState dockState : mVisibleDockStates) {
        ArrayList<TaskStack.DockState> visDockStates = mTouchHandler.getVisibleDockStates();
        for (int i = visDockStates.size() - 1; i >= 0; i--) {
            TaskStack.DockState dockState = visDockStates.get(i);
            TaskStack.DockState.ViewState viewState = dockState.viewState;
            if (newDockStates == null || !newDockStatesSet.contains(dockState)) {
                // This is no longer visible, so hide it
+11 −1
Original line number Diff line number Diff line
@@ -71,6 +71,7 @@ public class RecentsViewTouchHandler {

    private DropTarget mLastDropTarget;
    private ArrayList<DropTarget> mDropTargets = new ArrayList<>();
    private ArrayList<TaskStack.DockState> mVisibleDockStates = new ArrayList<>();

    public RecentsViewTouchHandler(RecentsView rv) {
        mRv = rv;
@@ -97,6 +98,13 @@ public class RecentsViewTouchHandler {
        return dockStates;
    }

    /**
     * Returns the set of visible dock states for this current drag.
     */
    public ArrayList<TaskStack.DockState> getVisibleDockStates() {
        return mVisibleDockStates;
    }

    /** Touch preprocessing for handling below */
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        handleTouchEvent(ev);
@@ -130,11 +138,13 @@ public class RecentsViewTouchHandler {
        mTaskView.setTranslationX(x);
        mTaskView.setTranslationY(y);

        if (!ssp.hasDockedTask()) {
        mVisibleDockStates.clear();
        if (!ssp.hasDockedTask() && mRv.getTaskStack().getTaskCount() > 1) {
            // Add the dock state drop targets (these take priority)
            TaskStack.DockState[] dockStates = getDockStatesForCurrentOrientation();
            for (TaskStack.DockState dockState : dockStates) {
                registerDropTargetForCurrentDrag(dockState);
                mVisibleDockStates.add(dockState);
            }
        }