Animate the scrim and properly remove the expanded view

When the last bubble icon view is removed from mBubbleContainer a
callback notifies BubbleController to remove the bubble window. This
resulted in all of the bubble views being immediately removed from
the screen rather than properly animating out. This also results
in a weird animation where the task transitions off the screen.

To fix this, when the last bubble is removed while bubbles are
expanded, move the view removal code to the end of the scrim
animation. We also need to set a flag that this is happening so
that the 'collapse' animation that happens (which also triggers the
scrim animation) doesn't clobber the first scrim animation.

Bubble removals always happen before the expansion changes, so the
order here is guaranteed.

Test: manual - have 1 bubble, expand it, drag it to remove
             => observe that the scrim fades out and the expanded
                view animates away during the drag & doesn't come
                back and animates off screen horizontally
Bug: 279074302
Change-Id: I9492481bbb30d60515c68077de9d6911e7dea93c
1 file changed