summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/view/InsetsController.java16
1 files changed, 7 insertions, 9 deletions
diff --git a/core/java/android/view/InsetsController.java b/core/java/android/view/InsetsController.java
index 0ea109d39e8e..def9ca4e74fb 100644
--- a/core/java/android/view/InsetsController.java
+++ b/core/java/android/view/InsetsController.java
@@ -541,9 +541,6 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
private final SparseArray<InsetsSourceControl> mTmpControlArray = new SparseArray<>();
private final ArrayList<RunningAnimation> mRunningAnimations = new ArrayList<>();
- private final ArrayList<WindowInsetsAnimation> mTmpRunningAnims = new ArrayList<>();
- private final List<WindowInsetsAnimation> mUnmodifiableTmpRunningAnims =
- Collections.unmodifiableList(mTmpRunningAnims);
private final ArrayList<InsetsAnimationControlImpl> mTmpFinishedControls = new ArrayList<>();
private final ArraySet<InsetsSourceConsumer> mRequestedVisibilityChanged = new ArraySet<>();
private WindowInsets mLastInsets;
@@ -601,9 +598,8 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
return;
}
- mTmpFinishedControls.clear();
- mTmpRunningAnims.clear();
- InsetsState state = new InsetsState(mState, true /* copySources */);
+ final List<WindowInsetsAnimation> runningAnimations = new ArrayList<>();
+ final InsetsState state = new InsetsState(mState, true /* copySources */);
for (int i = mRunningAnimations.size() - 1; i >= 0; i--) {
RunningAnimation runningAnimation = mRunningAnimations.get(i);
if (DEBUG) Log.d(TAG, "Running animation type: " + runningAnimation.type);
@@ -615,7 +611,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
// if it gets finished within applyChangeInsets we still dispatch it to
// onProgress.
if (runningAnimation.startDispatched) {
- mTmpRunningAnims.add(control.getAnimation());
+ runningAnimations.add(control.getAnimation());
}
if (control.applyChangeInsets(state)) {
@@ -628,9 +624,10 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
mLastInsets.isRound(), mLastInsets.shouldAlwaysConsumeSystemBars(),
mLastLegacySoftInputMode, mLastLegacyWindowFlags, mLastLegacySystemUiFlags,
mWindowType, mLastWindowingMode, null /* typeSideMap */);
- mHost.dispatchWindowInsetsAnimationProgress(insets, mUnmodifiableTmpRunningAnims);
+ mHost.dispatchWindowInsetsAnimationProgress(insets,
+ Collections.unmodifiableList(runningAnimations));
if (DEBUG) {
- for (WindowInsetsAnimation anim : mUnmodifiableTmpRunningAnims) {
+ for (WindowInsetsAnimation anim : runningAnimations) {
Log.d(TAG, String.format("Running animation type: %d, progress: %f",
anim.getTypeMask(), anim.getInterpolatedFraction()));
}
@@ -639,6 +636,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
for (int i = mTmpFinishedControls.size() - 1; i >= 0; i--) {
dispatchAnimationEnd(mTmpFinishedControls.get(i).getAnimation());
}
+ mTmpFinishedControls.clear();
};
}