Switched DisplayContent to use WindowContainer
Bug: 30060889
Test: Manual testing and existing tests still pass.
Change-Id: I99f2e38da417f62e8aa65bb6582aba53fd528c1b
diff --git a/services/core/java/com/android/server/wm/DockedStackDividerController.java b/services/core/java/com/android/server/wm/DockedStackDividerController.java
index ff676e9..ef8f492 100644
--- a/services/core/java/com/android/server/wm/DockedStackDividerController.java
+++ b/services/core/java/com/android/server/wm/DockedStackDividerController.java
@@ -131,8 +131,8 @@
private boolean mAdjustedForDivider;
private float mDividerAnimationStart;
private float mDividerAnimationTarget;
- private float mLastAnimationProgress;
- private float mLastDividerProgress;
+ float mLastAnimationProgress;
+ float mLastDividerProgress;
private final DividerSnapAlgorithm[] mSnapAlgorithmForRotation = new DividerSnapAlgorithm[4];
private boolean mImeHideRequested;
@@ -594,15 +594,7 @@
}
private boolean clearImeAdjustAnimation() {
- boolean changed = false;
- final ArrayList<TaskStack> stacks = mDisplayContent.getStacks();
- for (int i = stacks.size() - 1; i >= 0; --i) {
- final TaskStack stack = stacks.get(i);
- if (stack != null && stack.isAdjustedForIme()) {
- stack.resetAdjustedForIme(true /* adjustBoundsNow */);
- changed = true;
- }
- }
+ final boolean changed = mDisplayContent.clearImeAdjustAnimation();
mAnimatingForIme = false;
return changed;
}
@@ -634,13 +626,7 @@
mAnimationTarget = adjustedForIme ? 1 : 0;
mDividerAnimationTarget = adjustedForDivider ? 1 : 0;
- final ArrayList<TaskStack> stacks = mDisplayContent.getStacks();
- for (int i = stacks.size() - 1; i >= 0; --i) {
- final TaskStack stack = stacks.get(i);
- if (stack.isVisible() && stack.isAdjustedForIme()) {
- stack.beginImeAdjustAnimation();
- }
- }
+ mDisplayContent.beginImeAdjustAnimation();
// We put all tasks into drag resizing mode - wait until all of them have completed the
// drag resizing switch.
@@ -721,27 +707,8 @@
float t = Math.min(1f, (float) (now - mAnimationStartTime) / mAnimationDuration);
t = (mAnimationTarget == 1f ? IME_ADJUST_ENTRY_INTERPOLATOR : TOUCH_RESPONSE_INTERPOLATOR)
.getInterpolation(t);
- final ArrayList<TaskStack> stacks = mDisplayContent.getStacks();
- boolean updated = false;
- for (int i = stacks.size() - 1; i >= 0; --i) {
- final TaskStack stack = stacks.get(i);
- if (stack != null && stack.isAdjustedForIme()) {
- if (t >= 1f && mAnimationTarget == 0f && mDividerAnimationTarget == 0f) {
- stack.resetAdjustedForIme(true /* adjustBoundsNow */);
- updated = true;
- } else {
- mLastAnimationProgress = getInterpolatedAnimationValue(t);
- mLastDividerProgress = getInterpolatedDividerValue(t);
- updated |= stack.updateAdjustForIme(
- mLastAnimationProgress,
- mLastDividerProgress,
- false /* force */);
- }
- if (t >= 1f) {
- stack.endImeAdjustAnimation();
- }
- }
- }
+ final boolean updated =
+ mDisplayContent.animateForIme(t, mAnimationTarget, mDividerAnimationTarget);
if (updated) {
mService.mWindowPlacerLocked.performSurfacePlacement();
}
@@ -785,11 +752,11 @@
}
}
- private float getInterpolatedAnimationValue(float t) {
+ float getInterpolatedAnimationValue(float t) {
return t * mAnimationTarget + (1 - t) * mAnimationStart;
}
- private float getInterpolatedDividerValue(float t) {
+ float getInterpolatedDividerValue(float t) {
return t * mDividerAnimationTarget + (1 - t) * mDividerAnimationStart;
}