Merge "Prevent resize animation from changing the requested visibilities" into sc-v2-dev am: 2aba350b3f

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16303384

Change-Id: Ie4ebc27b9cfbaa9b9c887b09ec6be1b62ff9e791
This commit is contained in:
Tiger Huang
2021-11-29 15:32:30 +00:00
committed by Automerger Merge Worker
2 changed files with 8 additions and 0 deletions

View File

@@ -1266,6 +1266,11 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
public void notifyFinished(InsetsAnimationControlRunner runner, boolean shown) {
cancelAnimation(runner, false /* invokeCallback */);
if (DEBUG) Log.d(TAG, "notifyFinished. shown: " + shown);
if (runner.getAnimationType() == ANIMATION_TYPE_RESIZE) {
// The resize animation doesn't show or hide the insets. We shouldn't change the
// requested visibility.
return;
}
if (shown) {
showDirectly(runner.getTypes(), true /* fromIme */);
} else {

View File

@@ -131,6 +131,9 @@ public class InsetsResizeAnimationRunner implements InsetsAnimationControlRunner
@Override
public boolean applyChangeInsets(InsetsState outState) {
if (mCancelled) {
return false;
}
final float fraction = mAnimation.getInterpolatedFraction();
for (@InternalInsetsType int type = 0; type < InsetsState.SIZE; type++) {
final InsetsSource fromSource = mFromState.peekSource(type);