Rely on presense of divider target to determine split screen state

* Don't rely on the number of leashes, since an app with
assistant invoked returns multiple remote app targets
even though the device isn't in split screen

Fixes: 197293347
Test: Repro steps in bug don't cause crash.
Less fatal bugs need to be addressed,
TODO(b/197568823)

Change-Id: I3432e3d8c54a433dd38d297db73ea3d46bad7ba9
This commit is contained in:
Vinit Nayak
2021-08-23 16:29:42 -07:00
parent c8295216d5
commit 98314d0d4b
2 changed files with 8 additions and 6 deletions
@@ -278,6 +278,8 @@ public abstract class SwipeUpAnimationLogic implements
RemoteAnimationTargetCompat primaryTaskTarget;
RemoteAnimationTargetCompat secondaryTaskTarget;
// TODO(b/197568823) Determine if we need to exclude assistant as one of the targets we
// animate
if (!mIsSwipeForStagedSplit) {
primaryTaskTarget = targets.findTask(mGestureState.getRunningTaskId());
mRemoteTargetHandles[0].mTransformParams.setTargetSet(targets);
@@ -4019,12 +4019,14 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
recentsAnimationTargets.addReleaseCheck(mSyncTransactionApplier);
}
// TODO Consolidate this shared code with SwipeUpAnimationLogic (or mabe just reuse
// what that class has and pass it into here
mRemoteTargetHandles = new RemoteTargetHandle[recentsAnimationTargets.apps.length];
RemoteAnimationTargetCompat dividerTarget =
recentsAnimationTargets.getNonAppTargetOfType(TYPE_DOCK_DIVIDER);
// TODO Consolidate this shared code with SwipeUpAnimationLogic (or maybe just reuse
// what that class has and pass it into here)
mRemoteTargetHandles = new RemoteTargetHandle[dividerTarget == null ? 1 : 2];
TaskViewSimulator primaryTvs = createTaskViewSimulator();
mRemoteTargetHandles[0] = new RemoteTargetHandle(primaryTvs, new TransformParams());
if (recentsAnimationTargets.apps.length == 1) {
if (dividerTarget == null) {
mRemoteTargetHandles[0].mTaskViewSimulator
.setPreview(recentsAnimationTargets.apps[0], null);
mRemoteTargetHandles[0].mTransformParams.setTargetSet(recentsAnimationTargets);
@@ -4034,8 +4036,6 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
secondaryTvs.recentsViewScale.value = 1;
mRemoteTargetHandles[1] = new RemoteTargetHandle(secondaryTvs, new TransformParams());
RemoteAnimationTargetCompat dividerTarget =
recentsAnimationTargets.getNonAppTargetOfType(TYPE_DOCK_DIVIDER);
RemoteAnimationTargetCompat primaryTaskTarget = recentsAnimationTargets.apps[0];
RemoteAnimationTargetCompat secondaryTaskTarget = recentsAnimationTargets.apps[1];
SplitConfigurationOptions.StagedSplitBounds