Merge "Add logic to handle cases that IME is already shown" into rvc-dev

This commit is contained in:
Tiger Huang
2020-04-07 19:19:29 +00:00
committed by Android (Google) Code Review

View File

@@ -272,13 +272,18 @@ public class DisplayImeController implements DisplayController.OnDisplaysChanged
} }
mAnimation.cancel(); mAnimation.cancel();
} }
mAnimationDirection = show ? DIRECTION_SHOW : DIRECTION_HIDE;
final float defaultY = mImeSourceControl.getSurfacePosition().y; final float defaultY = mImeSourceControl.getSurfacePosition().y;
final float x = mImeSourceControl.getSurfacePosition().x; final float x = mImeSourceControl.getSurfacePosition().x;
final float hiddenY = defaultY + imeSource.getFrame().height(); final float hiddenY = defaultY + imeSource.getFrame().height();
final float shownY = defaultY; final float shownY = defaultY;
final float startY = show ? hiddenY : shownY; final float startY = show ? hiddenY : shownY;
final float endY = show ? shownY : hiddenY; final float endY = show ? shownY : hiddenY;
if (mAnimationDirection == DIRECTION_NONE && mImeShowing && show) {
// IME is already showing, so set seek to end
seekValue = shownY;
seek = true;
}
mAnimationDirection = show ? DIRECTION_SHOW : DIRECTION_HIDE;
mImeShowing = show; mImeShowing = show;
mAnimation = ValueAnimator.ofFloat(startY, endY); mAnimation = ValueAnimator.ofFloat(startY, endY);
mAnimation.setDuration( mAnimation.setDuration(