Fix app transition delayed cases

When same app repeats to switch resume & stop quickly, it will have the
timing that update app allDrawn state as true but quickly set as false
due to activity stopped.

If the next open transition didn’t get allDrawn in time by
WindowSurfacePlacer#performTravesal, it will be delayed since allDrawn
state is obsoleted.

So when WindowState#mDestroying is in true to false state,  it's need
to check if the window belongs current waiting transition and then
call WindowSurfacePlacer#performTravesal to update allDrawn state in time.

Also fix another delayed case during launching app with trampoline
activity in External display with freeform windowing mode, due to
process closing transition for finishing trampoline activity that broken
by the next acitivity already resumed, so the open transition can’t get
drawn state and then got transition timeout.

In finishCurrentAcitvityLocked, addd a check if the finishing activity is
floating task, if so then we can just destroy it without waiting the
next activity resume.

Fix: 123433575
Test: manual
      - case 1) Repeats launch Contacts app and pressing home key 100
                times without met app transition 5 secs delay.
      - case 2) Enabling Simulated display & forcing desktop mode,
                launch Files or Calendar app on external display without
		seeing app transition 5 secs delay.

Change-Id: I58e3787974535b2d5b5690f188ace94026fa2687
2 files changed