Fix Keyboard stays on while startSeamlessRotation

InsetsSourceProvider#startSemlessRotation will be called and cancel
on-going insets animation to revoke the insets control.

The idea is preventing the frame of insets animation will be drawn while the
rotation is not yet stable, and re-apply the revoked control again once
the rotation finished.

However, since the IME insets control / control target / leash has been cleared
after animation cancelled, there is no way to update the revoked IME
control target again, and also cannot have a direct signal to request visible
for client side after finished rotation, that will casue IME surface
stays on and client can't control the IME inets visiblity.

As the issue case which seamless rotation happens during launch fixed portrait
rotation app from launcher in landscape mode, since seamless rotation
animation doesn't well support the target window which controlled IME insets
is animating, we should skip seamless rotation for this case.

Fix: 158924696
Test: manual as below steps:
 1. Enable "Allow Home screen rotation" from Launcher -> Home Settings
    and "Auto-rotate" from quick settings.
 2. Open Snapchat in portrait > open a conversation > open keyboard.
 3. Tap Home button > rotate device from portrait to landscape.
 4. Tap Snapchat icon in landscape > the keyboard is automatically displayed
 5. Tap the back key in the lower left corner of the device.
 6. Expect keyboard should hide after the back key pressed.

Change-Id: I7d4685a0b85ec3db9b7e1c266030817da3dde812
1 file changed