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
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user