Introduce bubble controller & friends
* BubbleController manages adding / removing / state of the bubbles,
this is what other things should use to check what the state is.
* BubbleStackView renders the stack and deals with expanding / collapsing
and any view stuff
* BubbleView creates the circular bubble representation and holds the
notification entry for the bubble. BubbleStackView manages the
BubbleViews.
* BubbleTouchHandler is where all the touch logic is, BubbleStackView
uses and so do BubbleViews if you're dragging out a BubbleView from the
stack to dismiss
* Adding bubbles to the screen and dismissing them are not included in
this CL, there are later CLs including this logic
Test: manual / working on proper ones
Bug: 111236845
Change-Id: I07ae1202cc7019fcd7e00151ad3ca4a48e2e1350
9 files changed