Simplify bubble z ordering and fix various issues
Issues this CL addresses:
1) When expanding / collapsing the overflow was layered above other
bubbles incorrectly, it should always be at the bottom.
2) When expanded, the bubbles has inconsistently applied z
translation, i.e. only the top two had z translation and the
rest would not
3) Per spec, when expanded, bubbles shouldn't have elevation. (*)
4) When dragging out a bubble, it wouldn't be layered above all
the other bubbles so if you dragged it on top of them it might
get layered underneath
Additionally, this CL simplifies the code path for applying the
z translation instead of splitting it across multiple methods.
(*) It's actually pretty tricky to have bubbles have 0 translation
while expanded, because they need to have a specific z-ordering
for the collapse / expand animation and it's pretty obvious when
that shadow is animated in/out if you do it at the end of the
animations. Instead of setting the translation to 0, I give them a
minimal translation while expanded to ensure proper ordering. This
is basically imperceptible because they are already on a scrim.
Test: manual - expand an collapse the stack while observing the
overflow
- expand and drag a bubble on top of the other bubbles,
observe that it is always on top
- drag a bubble and have it snap back, observe the
shadow doesn't flicker
- drag the bubbles around and observe the order is
correct
Bug: 337933985
Change-Id: I0eb23dc8e89da6f576cb6981832273346fa0657f
3 files changed