Clear pair in recents if exit by other components
Split could exit by other components, but in such situation split will not handle the transition, so we could clear pair in recents when the founction called. Fix: 292184502 Test: manual Test: pass existing tests Change-Id: I20d8d55c3f3f28d01407398b6de3cc7828e0caca
This commit is contained in:
@@ -590,7 +590,8 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
|
||||
SplitScreenController split = mSplitScreenOptional.get();
|
||||
if (split.isTaskInSplitScreen(mTaskInfo.lastParentTaskIdBeforePip)) {
|
||||
split.prepareExitSplitScreen(wct, split.getStageOfTask(
|
||||
mTaskInfo.lastParentTaskIdBeforePip));
|
||||
mTaskInfo.lastParentTaskIdBeforePip),
|
||||
SplitScreenController.EXIT_REASON_APP_FINISHED);
|
||||
}
|
||||
}
|
||||
mPipTransitionController.startExitTransition(TRANSIT_EXIT_PIP, wct, destinationBounds);
|
||||
|
||||
@@ -423,8 +423,9 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
|
||||
* transition.
|
||||
*/
|
||||
public void prepareExitSplitScreen(WindowContainerTransaction wct,
|
||||
@StageType int stageToTop) {
|
||||
@StageType int stageToTop, @ExitReason int reason) {
|
||||
mStageCoordinator.prepareExitSplitScreen(stageToTop, wct);
|
||||
mStageCoordinator.clearSplitPairedInRecents(reason);
|
||||
}
|
||||
|
||||
public void enterSplitScreen(int taskId, boolean leftOrTop) {
|
||||
|
||||
@@ -1494,7 +1494,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
|
||||
}
|
||||
}
|
||||
|
||||
private void clearSplitPairedInRecents(@ExitReason int exitReason) {
|
||||
void clearSplitPairedInRecents(@ExitReason int exitReason) {
|
||||
if (!shouldBreakPairedTaskInRecents(exitReason) || !mShouldUpdateRecents) return;
|
||||
|
||||
mRecentTasks.ifPresent(recentTasks -> {
|
||||
|
||||
Reference in New Issue
Block a user