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
diff --git a/quickstep/src/com/android/quickstep/SwipeUpAnimationLogic.java b/quickstep/src/com/android/quickstep/SwipeUpAnimationLogic.java
index ec51599..1f57e99 100644
--- a/quickstep/src/com/android/quickstep/SwipeUpAnimationLogic.java
+++ b/quickstep/src/com/android/quickstep/SwipeUpAnimationLogic.java
@@ -278,6 +278,8 @@
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);
diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index abeadfd..6094c2f 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -4019,12 +4019,14 @@
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 @@
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