Merge "Revert "Remove check for preventing re-parenting non-split apps"" into tm-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
791c612714
@@ -98,14 +98,11 @@ interface ISplitScreen {
|
|||||||
/**
|
/**
|
||||||
* Blocking call that notifies and gets additional split-screen targets when entering
|
* Blocking call that notifies and gets additional split-screen targets when entering
|
||||||
* recents (for example: the dividerBar).
|
* recents (for example: the dividerBar).
|
||||||
|
* @param cancel is true if leaving recents back to split (eg. the gesture was cancelled).
|
||||||
* @param appTargets apps that will be re-parented to display area
|
* @param appTargets apps that will be re-parented to display area
|
||||||
*/
|
*/
|
||||||
RemoteAnimationTarget[] onGoingToRecentsLegacy(in RemoteAnimationTarget[] appTargets) = 13;
|
RemoteAnimationTarget[] onGoingToRecentsLegacy(boolean cancel,
|
||||||
|
in RemoteAnimationTarget[] appTargets) = 13;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Blocking call that notifies and gets additional split-screen targets when entering
|
|
||||||
* recents (for example: the dividerBar). Different than the method above in that this one
|
|
||||||
* does not expect split to currently be running.
|
|
||||||
*/
|
|
||||||
RemoteAnimationTarget[] onStartingSplitLegacy(in RemoteAnimationTarget[] appTargets) = 14;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -413,22 +413,9 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
|
|||||||
mSyncQueue.queue(transition, WindowManager.TRANSIT_OPEN, wct);
|
mSyncQueue.queue(transition, WindowManager.TRANSIT_OPEN, wct);
|
||||||
}
|
}
|
||||||
|
|
||||||
RemoteAnimationTarget[] onGoingToRecentsLegacy(RemoteAnimationTarget[] apps) {
|
RemoteAnimationTarget[] onGoingToRecentsLegacy(boolean cancel, RemoteAnimationTarget[] apps) {
|
||||||
return reparentSplitTasksForAnimation(apps, true /*splitExpectedToBeVisible*/);
|
if (ENABLE_SHELL_TRANSITIONS || !isSplitScreenVisible()) return null;
|
||||||
}
|
|
||||||
|
|
||||||
RemoteAnimationTarget[] onStartingSplitLegacy(RemoteAnimationTarget[] apps) {
|
|
||||||
return reparentSplitTasksForAnimation(apps, false /*splitExpectedToBeVisible*/);
|
|
||||||
}
|
|
||||||
|
|
||||||
private RemoteAnimationTarget[] reparentSplitTasksForAnimation(RemoteAnimationTarget[] apps,
|
|
||||||
boolean splitExpectedToBeVisible) {
|
|
||||||
if (ENABLE_SHELL_TRANSITIONS) return null;
|
|
||||||
// TODO(b/206487881): Integrate this with shell transition.
|
// TODO(b/206487881): Integrate this with shell transition.
|
||||||
if (splitExpectedToBeVisible && !isSplitScreenVisible()) return null;
|
|
||||||
// Split not visible, but not enough apps to have split, also return null
|
|
||||||
if (!splitExpectedToBeVisible && apps.length < 2) return null;
|
|
||||||
|
|
||||||
SurfaceControl.Transaction transaction = new SurfaceControl.Transaction();
|
SurfaceControl.Transaction transaction = new SurfaceControl.Transaction();
|
||||||
if (mSplitTasksContainerLayer != null) {
|
if (mSplitTasksContainerLayer != null) {
|
||||||
// Remove the previous layer before recreating
|
// Remove the previous layer before recreating
|
||||||
@@ -455,6 +442,7 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
|
|||||||
transaction.close();
|
transaction.close();
|
||||||
return new RemoteAnimationTarget[]{mStageCoordinator.getDividerBarLegacyTarget()};
|
return new RemoteAnimationTarget[]{mStageCoordinator.getDividerBarLegacyTarget()};
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets drag info to be logged when splitscreen is entered.
|
* Sets drag info to be logged when splitscreen is entered.
|
||||||
*/
|
*/
|
||||||
@@ -719,19 +707,11 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RemoteAnimationTarget[] onGoingToRecentsLegacy(RemoteAnimationTarget[] apps) {
|
public RemoteAnimationTarget[] onGoingToRecentsLegacy(boolean cancel,
|
||||||
|
RemoteAnimationTarget[] apps) {
|
||||||
final RemoteAnimationTarget[][] out = new RemoteAnimationTarget[][]{null};
|
final RemoteAnimationTarget[][] out = new RemoteAnimationTarget[][]{null};
|
||||||
executeRemoteCallWithTaskPermission(mController, "onGoingToRecentsLegacy",
|
executeRemoteCallWithTaskPermission(mController, "onGoingToRecentsLegacy",
|
||||||
(controller) -> out[0] = controller.onGoingToRecentsLegacy(apps),
|
(controller) -> out[0] = controller.onGoingToRecentsLegacy(cancel, apps),
|
||||||
true /* blocking */);
|
|
||||||
return out[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RemoteAnimationTarget[] onStartingSplitLegacy(RemoteAnimationTarget[] apps) {
|
|
||||||
final RemoteAnimationTarget[][] out = new RemoteAnimationTarget[][]{null};
|
|
||||||
executeRemoteCallWithTaskPermission(mController, "onStartingSplitLegacy",
|
|
||||||
(controller) -> out[0] = controller.onStartingSplitLegacy(apps),
|
|
||||||
true /* blocking */);
|
true /* blocking */);
|
||||||
return out[0];
|
return out[0];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user