Fixing rotation issues.
- Ensuring that we can update the stack bounds of non-docked stacks upon rotation while split screen is enabled (previously disabled) - Fix issue where subsequent bounds calculations were using the animation target bounds from the prior orientation Bug: 36657966 Test: android.server.cts.ActivityManagerPinnedStackTests Change-Id: I810e35f907721ef5c781b914adac3273ea8da5c8
This commit is contained in:
@@ -2252,9 +2252,10 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D
|
||||
return;
|
||||
}
|
||||
|
||||
if (!allowResizeInDockedMode && getStack(DOCKED_STACK_ID) != null) {
|
||||
// If the docked stack exist we don't allow resizes of stacks not caused by the docked
|
||||
// stack size changing so things don't get out of sync.
|
||||
if (!allowResizeInDockedMode && !StackId.tasksAreFloating(stackId) &&
|
||||
getStack(DOCKED_STACK_ID) != null) {
|
||||
// If the docked stack exists, don't resize non-floating stacks independently of the
|
||||
// size computed from the docked stack size (otherwise they will be out of sync)
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -340,7 +340,7 @@ public class TaskStack extends WindowContainer<Task> implements DimLayer.DimLaye
|
||||
* @return the source bounds for the bounds animation.
|
||||
*/
|
||||
void getAnimatingSourceBounds(Rect outBounds) {
|
||||
if (mBoundsAnimationSourceBounds != null) {
|
||||
if (!mBoundsAnimationSourceBounds.isEmpty()) {
|
||||
outBounds.set(mBoundsAnimationSourceBounds);
|
||||
return;
|
||||
}
|
||||
@@ -419,6 +419,11 @@ public class TaskStack extends WindowContainer<Task> implements DimLayer.DimLaye
|
||||
// we can just update and return them here
|
||||
setBounds(mBounds);
|
||||
mBoundsAfterRotation.set(mBounds);
|
||||
|
||||
// Once we've set the bounds based on the rotation of the old bounds in the new
|
||||
// orientation, clear the animation target bounds since they are obsolete
|
||||
mBoundsAnimationTarget.setEmpty();
|
||||
mBoundsAnimationSourceBounds.setEmpty();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user