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

Commit 26eec781 authored by Manu Cornet's avatar Manu Cornet
Browse files

Move the 'next launch target' logic into the task stack

For better reusability in other flavors of Recents.

Bug: 32101881
Test: Behavior is covered by existing automated tests.
Change-Id: Ibe39cbae0b5973210cad478a9c5ab75280ee0ac2
parent 37131514
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -849,6 +849,24 @@ public class TaskStack {
        return null;
    }

    /**
     * Returns the task in stack tasks which should be launched next if Recents are toggled
     * again, or null if there is no task to be launched.
     */
    public Task getNextLaunchTarget() {
        int taskCount = getTaskCount();
        if (taskCount == 0) {
            return null;
        }
        int launchTaskIndex = indexOfStackTask(getLaunchTarget());
        if (launchTaskIndex != -1) {
            launchTaskIndex = Math.max(0, launchTaskIndex - 1);
        } else {
            launchTaskIndex = getTaskCount() - 1;
        }
        return getStackTasks().get(launchTaskIndex);
    }

    /** Returns the index of this task in this current task stack */
    public int indexOfStackTask(Task t) {
        return mStackTaskList.indexOf(t);
+2 −8
Original line number Diff line number Diff line
@@ -1683,17 +1683,11 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal
            return;
        }

        int launchTaskIndex = mStack.indexOfStackTask(mStack.getLaunchTarget());
        if (launchTaskIndex != -1) {
            launchTaskIndex = Math.max(0, launchTaskIndex - 1);
        } else {
            launchTaskIndex = mStack.getTaskCount() - 1;
        }
        if (launchTaskIndex != -1) {
        final Task launchTask = mStack.getNextLaunchTarget();
        if (launchTask != null) {
            // Stop all animations
            cancelAllTaskViewAnimations();

            final Task launchTask = mStack.getStackTasks().get(launchTaskIndex);
            float curScroll = mStackScroller.getStackScroll();
            float targetScroll = mLayoutAlgorithm.getStackScrollForTaskAtInitialOffset(launchTask);
            float absScrollDiff = Math.abs(targetScroll - curScroll);