Track app visibility updates on the client

When client receives two consecutive app visibility updates
sometimes it might handle them in single traversal pass and
in ViewRootImpl#performTraversals it will not detect a
visibility change.
Server side in this case will be stuck waiting for relayout
call from the client and will not draw the app window. This
can also cause focus not being switched properly and WM
remain with no focused window.

Bug: 64517357
Test: android.server.cts.ActivityManagerPinnedStackTests
Test: #testEnterPipFromTaskWithMultipleActivities
Test: Run the test and check if there are no focused window logs
Change-Id: I714da72a881e2dee5cf8dafd62113fbb9f2f3f4d
1 file changed