Fix incorrect IME visibility when the IME window is hidden

When onSurfaceShownChanged is invoked, we determine if the IME
window is visible, which is not correct because IME window might
not be visible on the screen but its surface is visible.

To determine the visiblity of the IME, we use ime inset visibility,
and check it when the window insets is changed.

Bug: 194668976
Test: manual test
      atest MagnificationControllerTest
Change-Id: I202ddb41ddde94f1afa96541795dc8ed1d727a0f
3 files changed