Integrated the PersistentTaskbarStashController and the
TransientTaskbarStashController into the launcher code. Made changes to
the TaskbarInsetsController to set appropriate touchable zones. Updated
the TaskbarUIController to not start the overview transition on clicks
for the collapsed bubble bar.
Bug: 346391377
Fixes: 350065038
Fixes: 355664783
Flag: com.android.wm.shell.enable_bubble_bar_in_persistent_task_bar
Test: com.android.launcher3.taskbar package tests
persistent taskbar and transient taskbar manual testing:
- on launcher home screen expand bubble bar, switch between bubbles,
remove bubble via bubble menu, add bubble, remove bubble with the drug
gesture, add bubble, collapse bubble bar
- repeat previous test on launcher overview screen and inside any
application
- after last test drag expanded bubble view to the opposite side of the
screen
Change-Id: I50f2c510854c4895fdfc9bd453a261c2103286fd
Added common BubbleStashController interface and implementation for the
PersistentTaskBarStashController. Added tests for the implementation.
Bug: 346391377
Flag: com.android.wm.shell.enable_bubble_bar
Test: PersistentTaskBarStashControllerTest
Change-Id: I353e5a2cfa2d39e83b0e94980938aee8a1002fd9
A11y that supports the following actions:
- collapse
- dismiss
- move bar to the left or right (depending on current location)
Bug: 347028716
Test: select bubble in expanded bubble bar, open action menu
Test: use action menu to:
- collapse bubble bar
- dismiss a bubble, ensure only selected bubble is dismissed
- move bubble bar to other side
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: I70d90877e045abadb1fca4665ce315476d33c713
Bug: 344670180
Test: open accessibility action menu on bubble bar. use menu to
- expand bubble bar
- dismiss bubble bar
Test: when bubble bar is on the right, the action menu has an option to
move bubble bar to the left only, use menu to move bar to the left
Test: when bubble bar is on the left, the action menu has an option to
move bubble bar to the right only, use menu to move bar to the right
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: Id875a43927bc3410a83d1342b9456330c9521085
The notification dot drawing state depends on changes in the bubble
bar, so the bubble bar now directly requests updates to the dot at
specific states.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 351904597
Fixes: 350782375
Test: atest BubbleViewTest
Test: manual basically just hammering on it trying to break it
1. Dot appears for new bubble in all states of the bar
2. Expand bubble bar
- Dot is removed for selected and shows for others
that have a dot
3. After removing bubble while expanded
- Dot is removed from newly selected bubble
4. Collapse bubble bar
- Dot is hidden for all bubbles
5. Dot removed after tapping on a bubble when expanded
Change-Id: I4a940d38a8c77bddaf058b7ef882bab06886bcf4
This was a bug introduced in ag/28230638. Accidentally passed the
wrong boolean value. The bug is that the initial state animation
does not play, and the bubble bar remains invisible.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 352119655
Fixes: 352412093
Test: manual
- Clear all bubbles
- Send initial bubble
- Observe that the initial state animation plays correctly
Change-Id: Ie1435539e348c0a92a11db0b58a0b3bce6525cc0
The removal and update of bubbles happen in different processes, so
it's possible for race conditions to allow users to remove bubbles
without knowing that an update exists.
Passing the removal timestamp allows wm shell to determine whether
the removal happened before or after the latest update was received
for the bubble. This largely mitigates the race but does not solve
it completely. Will file a separate bug to track that.
Flag: com.android.wm.shell.enable_bubble_bar
Bug: 351026092
Test: Manual
- Note the issue here is a race condition so requires code
changes to force repro it
- Locally I added an artificial delay between the time the
- bubble is removed and until the removal is sent to wmshell
- Create bubbles and expand the bubble bar
- Dismiss bubble by dragging it to dismiss
- Send an update to the same bubble before removal is processed
in wmshell
- Verify bubble is added back
- Verify bubble is not removed when the removal is processed
in wmshell
Change-Id: I05ddc692fe30709125e380351b223d20a0778264
Fix bubble update animation when the updated bubble is the only
bubble in the bar.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 352119655
Test: Manual:
- Create 1 bubble in the bubble bar
- Send an update for that bubble
- Observe bubble bar is animated correctly
Change-Id: If569810dacf0ef77147a822c53ddebd09e35fe15
This change stores the bubble that was dismissed by drag temporarily
in BubbleBarView so that when we remove the bubble, we can avoid
updating it as part of the animation.
This is step 1 in this change. Next I'll look into removing the
bubble immediately after dismissing it from the menu, and lastly
update sysui to not send the removal event back to launcher.
Flag: com.android.wm.shell.enable_bubble_bar
Bug: 349826879
Test: manual
- have bubbles in the bubble bar and expand it
- drag a bubble to dismiss it
- observe the bubble does not reappear in the bar during
the animation
Change-Id: I6628ce779db4aac8d82edd4ecf2a25dedf8feef9
This change creates a BubbleAnimator class that handles animating
both new bubbles in and removed bubbles out.
Demo: http://recall/-/bJtug1HhvXkkeA4MQvIaiP/dMHGANplWjGC5HZT6MXyA4
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 345687290
Test: atest BubbleAnimatorTest
Test: see demo
Change-Id: Ie060495f4b1421d1c8af48a861cd3e12dd0adbe8
Bounce the bubble bar when a new bubble is received while the bubble
bar is collapsed.
Demo: http://recall/-/bJtug1HhvXkkeA4MQvIaiP/fn7NWNY3htuR6K3wxhfcK2
Flag: com.android.wm.shell.enable_bubble_bar
Bug: 280605790
Test: atest BubbleBarViewAnimatorTest
Change-Id: I4c622454fd99f6bb5a332b3fe4aa2764c8af93af
Added animation for the updates of bubble bar icon sizes and padding
Fixes: 335575529
Flag: com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Test: BubbleBarViewAnimatorTest
Change-Id: I07d66b3a9d565f4fa6040c3c4bf4866e4d81a3a6
When a new bubble is added when the bubble bar is expanded,
we now scale in the new bubble.
This change only handles the case where we're not at the limit.
Demo: http://recall/-/bJtug1HhvXkkeA4MQvIaiP/hW4pwqpAttscedRMxnu5BN
Flag: com.android.wm.shell.enable_bubble_bar
Bug: 345795791
Test: manual
- Expand bubble bar
- Push a new bubble and verify it scales in
Change-Id: Iafae1d0c8feb8e5a8853d54e7299db261df4ebf4
When the animation of the first bubble is suppressed, immediately
stash or show the bubble bar to make sure it has been initialized
correctly.
Also we no longer automatically update the bubble bar visibility
based on its alpha value, since we're managing alpha and visibility
ourselves.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 343505267
Fixes: 343502240
Test: manually verified state for the following scenarios for the first bubble
- in app when keyboard is open
- in app -> open shade
- in app -> lock device
- on home -> open shade
- on home -> lock device
- in overview -> open shade
Test: manually sanity tested to make sure animations for more bubbles still work
Test: manual
- Open test bubble app
- Open keyboard and send a bubble
- The bubble should animate using a HUN since the keyboard is open
- Swipe back to hide the keyboard
- Observe that the bubble bar no longer shows to stash into the handle
Change-Id: I754a5a9c8e961af0cdd5ccadf83d3081d4414c7e
Stop sending entire bubble bar bounds to shell.
Keeping the bounds in sync was error prone as bubble bar can expand and
collapse. Bubbles can be added/removed.
In each of these cases we had to make sure that shell gets updated.
Shell only needed the full bounds for collapse/expand animation. But
after updating the animation, shell only needs the top coordinate of the
bubble bar.
Bug: 330585402
Flag: com.android.wm.shell.enable_bubble_bar
Test: bubble bar drag
- drag bar from right to left
- expand the bar
- check that expanded view scales in from left edge
- collapse and drag bar back, check the animation
Test: selected bubble drag
- drag expanded bubble from right to left
- check that expanded view scales in from the left edge
- drag the bubble back to right, check animation
Test: other bubble drag
- drag a unselected bubble from right to left
- check that the selected bubble expands in from left edge
- drag the bubble back to right, check animation again
Test: drag bubble from right to left, observe that expanded view
expand animation originates from the bubble bar
Change-Id: Ib66cef8d3c04bce54a69e30e99edd408a31f018f
Updates to existing bubbles now cause the bubble bar to animate in
similarly to new bubble notifications.
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Bug: 280605846
Test: manual
Change-Id: Ib53316889170e0392f055242c6206882084b4a46
The removeBubble method was only used for dismissing a bubble via drag
in Launcher. Renaming the method to indicate it is only for this
purpose.
This allows us to reduce remote calls from launcher to shell when a
bubble is dismissed via drag. Otherwise we would need to make two calls,
one for removing a bubble and other for stopping the drag.
As shell keeps track of drag status in launcher for hiding the expanded
view.
Also removing the bubble key from remote call to shell to signal drag
has finished. The bubble key was not used.
Bug: 330585402
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Test: drag a bubble that is not expanded to dismiss target, previously
expanded bubble should expand again
Change-Id: I57484aa3a2c0585ff7c3974d9f0d19dc1ab9dbd2
This change handles touches on the bubble bar while the bubble bar is animating.
We now update the taskbar touch region during the animation to make the bubble bar touchable.
When the bubble bar is touched during the animation, we now cancel the animation and allow dragging or clicking to expand.
Demo: http://recall/-/bJtug1HhvXkkeA4MQvIaiP/gtGS6FCrygN5RKueFtPs5E
BubbleBarTest 100x run: https://android-build.corp.google.com/abtd/run/L42600030003675041
Note that in the abtd run above there's a flake but that's for a different test which I'll look into separately.
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Bug: 280605790
Bug: 280605846
Bug: 339066271
Fixes: 339244038
Test: See demo
Test: atest BubbleBarViewAnimatorTest
Change-Id: Icb8f4fa46ae4bb8c94ca931193d4a3cc49c5b718
This change animates the bubble bar for the first bubble.
When we're in home -- the bubble bar bounces in and stays visible
When we're in app -- the bubble bar bounces in, then animates to
the stashed handle.
When the bubble bar auto expands, we currently animate the bubble
bar already expanded. In the future we'll time the expansion
until after the bubble bar settles in.
Demo: http://recall/-/bJtug1HhvXkkeA4MQvIaiP/hIGwtb3YKyCT9Ke9adZNgY
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Bug: 339066271
Test: atest BubbleBarViewAnimatorTest
Change-Id: I80ce55676b72a50bab23623e0b5c1e602690682f
This change handles cancelling the currently running bubble animation when the stash state is changing.
Demo - http://recall/-/bJtug1HhvXkkeA4MQvIaiP/4jnBgnFaIPez6m7fVLSlf
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Bug: 280605846
Test: atest BubbleBarViewAnimatorTest
Change-Id: I34628f8ad741228dd21285ad66e45ef2909fbdab
Adds support to pin bubble bar to other side of the screen by dragging
from one bubble. The entire bubble bar will move to the other side.
Implements the BaseBubbleBarPinController to handle dragging an
individual BubbleView.
Updates how translation and alpha get applied during BubbleBarView
location animation when a bubble is being dragged.
Dragged bubble is part of the BubbleBarView and when it is being
dragged, and we animate the bubble bar to the other side, we need to
ensure that the animation does not affect the dragged bubble.
Updating the translation and alpha for the BubbleBarView ViewGroup will
affect the dragged bubble as well. Updating how translation and alpha
gets applied to BubbleBarView so that it gets applied to individual
child views and then we can skip applying it to the dragged view.
Bug: 330585402
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Test: drag bubble from expanded bubble bar to left and right
Change-Id: I1fe2ba9fd466ff97d3b3af763bdcce30c3f98606
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
This change updates that animation that plays when a new bubble notification is received. We now animate the entire bubble bar rather than the individual bubble.
Demo: http://recall/-/bJtug1HhvXkkeA4MQvIaiP/dwbsZJZlqLwJ2IG7RfJZ7c
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Bug: 280605846
Test: atest BubbleBarViewAnimatorTest
Change-Id: I2dc58ad61b880d76c9eefa462c3aee4e8bbb3584
Make the animating bubble touchable and expand the bubble bar when tapping on it.
Demo: http://recall/-/bJtug1HhvXkkeA4MQvIaiP/c4wBVtrT5YIgxL5kVuuoDU
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Bug: 280605846
Test: atest BubbleBarViewAnimatorTest
Change-Id: I09281c2ebc9921750ada42dfc27e95d1ad0bd83b
Made bubble bar icon size adjustable and listen to the task bar
icon size changes. Additionally fixes an issue where the pointer arrow
could be misplaced.
Test: BubbleBarViewAnimatorTest.kt
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Bug: 295027436
Fixes: 334781761
Change-Id: Ie4ceee84cc00baa0186a3d5b431080c8495c7285
This change suppresses the new bubble animation when the notification shade is open and when the device is locked.
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Fixes: 332912942
Test: manual
- Use test app to trigger a bubble with delay
- Lock the device/pull down the notification shade
- Observe the bubble is not animating
- Unlock/collapse the shade
- Observe new bubble was added to the bubble bar
Change-Id: I0b1d42a9d57b29807f113ae45ff60349341272ef
When launcher receives the initial bubble state update from sysui, don't animate the bubbles. The initial update is sent when bubble bar is created and not when new bubbles are created.
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Bug: 280605846
Test: manual
Change-Id: I74b09220be22d7382fa6d7c1351d5e60a799a054
Check whether the state update indicates that the bubble bar is expanding, and pass that to the bubblebarviewcontroller so that we can suppress the new bubble animation if we're expanding from stashed.
Note that in some cases the notification service may not include the auto expand flag on the message it sends to sysui, so launcher will end up getting 2 separate messages. We may need to handle that separately.
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Bug: 280605846
Test: manual
- create bubble that auto expands
- observe that the bubble does not animate
- note that in some cases the notification service may not include the auto expand flag, will look into that separately.
Change-Id: Id7e2db5fd32d391413c57d83effb4b23b1085125
Shell keeps track of bubble bar bounds for positioning and animating the
expanded view.
Bubble bar location can be changed when dragging the expanded view or
bubble bar itself.
Previously bounds were only reported when expanding a bubble. But after
adding drag support, bounds can change outside of expand action.
Implement a new bubbles API to report bubble bar bounds to shell
whenever they change in launcher.
Keep track of last reported bounds to ensure that we only send bounds
over when they change and when expand API has not already reported the
bounds.
Bug: 332423960
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Test: drag expanded bubble from one side to the other, collapse it,
observe that collapse animation collapses the view into the bar
Change-Id: If1bf31a04b8f134a1b055fddccd276e924ed98b6
This change animates a new bubble bar bubble. Currently only handles the case where the bubble is added when the bubble bar is stashed.
There's no synchronization with the stash handle yet either.
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Bug: 280605790
Test: atest BubbleBarViewAnimatorTest
Change-Id: Ic3f5edc0dde204f871cf7e1288bd50620e6beebb
Only set bubble bar alpha to 0 and mark it collapsed when bubbles are
hidden.
When bubble bar should be hidden due to system ui state, only update
visibility.
Bug: 324068295
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Test: trigger a buble from bubbles test app
- swipe to home screen
- observe bubble bar is shown
- swipe notification shade down and away again
- observe bubble bar is hidden when shade is open, and shown when
closed
- expand bubble bar
- repeat swipe shade down and away, observe expanded bubble is hidden
while shade is open and bubble is expanded when shade is swiped away
Change-Id: Icc717ab250061f14f02a558eb9f7301fdc08c5c7