Commit Graph

7 Commits

Author SHA1 Message Date
Liran Binyamin afdad57bdf Don't reset alpha after dragging to dismiss
After dragging the bubble bar to dismiss, don't reset its alpha
value.

Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 359804931
Test: manual
      - Create a bubble in the bubble bar
      - Drag bubble bar to dismiss
      - Create another bubble
      - Observe the new bubble does not flicker
Change-Id: I8d56f71d38ec33acda8efade50735b59254d77d4
2024-08-14 08:08:40 -04:00
Ats Jenk af5a393f88 Fix bubble position when dragged to dismiss view
When moving a bubble to dismiss view, use the drag translation x methods
to set the translation x values.
When bubble is moved to the dismiss view, the container will animate
back to the initial position. And we need to account for this while
bubble is in the dismiss view.

Bug: 339659499
Flag: com.android.wm.shell.enable_bubble_bar
Test: manual, drag bubble to other side and then to dismiss view,
  observe that bar moves back to original side and bubble is at the
  center of the dismiss view
Change-Id: I4c6e1be2dcd1180d985ceafccfc0f18466549347
2024-05-31 14:21:40 -07:00
Ats Jenk 5a03549797 Use translation to move bubble bar during bubble drag
Revert logic to set translation on each BubbleView and background.
Background translation was set with bounds offset and BubbleView was
using setTranslationX(). This made it hard to synchronise background and
child view translations. And led to flickers.

Applying translation on the BubbleBarView itself, but applying the
reverse of the translation to the dragged BubbleView. This ensures that
the dragged bubble position is not affected by the parent translation.

Introducing a new property for BubbleView that is used to apply
translation during drag. It takes into account the offset of the
BubbleBarView.

Bug: 330585402
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Test: drag bubble to other side and release before the bubble bar
  animation finishes, observe no flickers
Test: drag expanded view to other side and release before the bar
  animation finishes, observe no flickers
Change-Id: I1712ed6ac26831f10466dbaf0378f8aabb29629d
2024-05-06 17:39:29 -07:00
Ats Jenk d7fe32ab8e Implement API to animate bubble bar position
Create a new API to animate bubble bar position.
Animating it will not update its laid out location.
To update bubble bar laid out location, BubbleBarUpdate can be used.
Applying a location change from BubbleBarUpdate no longer animates the
change.

Bug: 330585402
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Test: long press bubble bar and drag it to left and right
Change-Id: I2572da4c063fc8e07cf07c4303778d343baa4ec4
2024-04-30 13:12:56 -07:00
Ats Jenk 3a60cee509 Update spring stiffness for bubble bar drag animation
Use MEDIUM_LOW spring stiffness for bubble bar translation spring.

Bug: 330585397
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Test: manual, drag and release bubble bar
Change-Id: Id27a5c5a7a77ae1fee988816271adb810635d84b
2024-04-03 15:26:45 -07:00
Liran Binyamin 40bdec4710 Move PhysicsAnimator to wm/shell/shared
Flag: NONE
Bug: 280605790
Bug: 322791067
Test: no behavior change. relying on presubmits
Change-Id: Ica5e388f8fb3d07a4865e72e310f3f2bdfe01579
2024-03-26 11:50:08 -04:00
Ivan Tkachenko 90a769d1d3 Bubble bar dismiss interaction
A single bubble and the bubble stack dismiss functionality is implemented using `BubbleDragController`. It attaches a touch listener to the corresponding views and handles gesture interactions.
* When the view is long clicked the dragging to dismiss interaction starts. It scales up the dragged view and presents the dismiss view in the bottom of the window.
* When the bubble or the bubble stack is dragged close to the dismiss target area, it gets pulled towards it and sticks to it. The `MagnetizedObject` and `MagneticTarget` classes are used for it.
* When the dragged view is released outside of the dismiss area, it moves back to the initial position with animation.
* When the dragged bubble is released inside of the dismiss area, it will dismiss the bubble with animation and remove it from the stack.
* When the dragged bubble bar stack is released inside the dismiss area, all the bubbles will get dismissed and the bubble bar will dissapear.

Bug: 271466616
Test: manual, TBD
Flag: WM_BUBBLE_BAR
Change-Id: I83393898be61ec522db92688ac2e111ef7d72fe6
2023-07-28 18:17:09 +00:00