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
Made icons elevation animates to flat state while bubble bar is being
expanded and animate to full elevation while bubble bar is being
collapsed.
Test: Visual
Fixes: 295027436
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Change-Id: I8286cd79904367654e319d6a84a307bd64c28d93
We should first decide how we would like to animate dismissal of the
selected bubble, and than implement arrow animation. The issue exists
because background is shrinked without an animation.
Test: Visual
Fixes: 293350516
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Change-Id: Ia0cf04671bf9e93c98c45c99a21865055462e6df
Updated bubble bar view pointer to have rounded tip.
Test: BubbleBarViewAnimatorTest
Fixes: 333546362
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Change-Id: I7875426b06a330bc355a833c51849335f831317e
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
The stash handle now animates out before the new bubble animates in, and animates back in after the new bubble is hidden.
There's still some additional polish needed :)
Demo: http://recall/-/bJtug1HhvXkkeA4MQvIaiP/z30Ob1rcDUkNEphLAQsgV
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Bug: 280605846
Test: atest BubbleBarViewAnimatorTest
Change-Id: I03449286b01ec96de9834e24a707652ddbe49fb0
Send wmshell updates about bubble bar position when it is dragged
across the center divide.
Bug: 330585397
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Test: manual
- with bubble bar on home screen
- long press and drag bubble bar around on same side, no drop
target
- release the bubble bar, it snaps back to the original position
- long press and drag bubble bar to other side, see drop target at
the corner
- release bubble bar, it snaps to the new side
- long press and drag bubble bar to other side and back, see the
drop target visible, release, snaps back to the original
position
- repeat above steps from an app, swipe up taskbar for bubble bar
Change-Id: I88faf641b9c07a19cfbb7a1feb8170a64269ac1f
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
Bubble bar pointer arrow was being drawn outside of BubbleBarView
bounds.
This caused issues when alpha was applied to the BubbleBarView. With
alpha, BubbleBarView draw was clipped to its bounds and arrow was no
longer visible. This led to the arrow flickering during move animations.
Move animation updates alpha.
Move the pointer arrow inside the bounds of the bar view. Update the bar
height to include the arrow.
Update callers who rely on bubble bar content height to take into
account extra height for the arrow.
Bug: 313661121
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Test: move bubble bar left and right, observe arrow is visible
Change-Id: I05866b5c944361b2f10437c3641527ed3c594047
When it is not the initial bubble data, animate bubble bar location
change.
Bug: 313661121
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Test: manual, move expanded view from one side to the other, observe the
location change animates
Change-Id: I52117a31d02e7160ca1d3dc3e724bda2e38f6cbf
Adds bubble bar location to the update object that is sent by shell.
Allows repositioning the bubble bar if the location changes.
Bug: 313661121
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Test: manually sending the update to reposition, dragging coming soon
Change-Id: Id430a98116d860a7badcf607edc166c751e12cf8
Bubble bar can be positioned to the left or right side of the screen.
Instead of sending offsets to wmshell, send the bounds of the bar, in
screen coordinates. WMShell can choose how to use that information.
Flag: LEGACY persist.wm.debug.bubble_bar DEVELOPMENT
Bug: 273310265
Test: repeat with LTR and RTL system languages:
- have some bubbles, open an app, expand the bubbles by swiping up
from bubble bar handle
- have some bubbles, open an app, expand bubble bar by swiping up on
navbar handle, tap on bubble bar to expand bubbles
- have some bubbles, be on home screen, tap on bubble bar to expand a
bubble
Change-Id: Id2d24831e567171b442ae7f34f055b7195a3e060
When system language is set to an RTL language, we move the bubble bar
to the left.
Move the stashed bubble bar handle to the left in this case.
Tweak the bubble bar expand animation so that the bubbles expand from
the left edge.
Flag: LEGACY persist.wm.debug.bubble_bar DEVELOPMENT
Bug: 273310265
Test: repeat following steps with LTR and RTL system languages
- add couple of bubbles to bubble bar, open an app, observe stashed
handle on the left
- swipe up from system navbar to show taskbar and bubble bar
- swipe up from bubble bar handle to show bubble bar and expand it
- drag bubble bar to dismiss target and back out and release
Change-Id: Ia3b7892bba732a5278168d63db0594087f55fad4
Arrow can become detached from the bubble bar background. This can
happen when bubble bar is pinned to the left and the right-most bubble
is selected. When the selected, right-most bubble is removed by drag and
dismiss, the view is removed and bubble bar background is immediately
updated. But we try to animate the arrow to the new selected position.
Before starting to animate arrow position, check if arrow position is
greater than bubble bar width. If it is, the arrow is detached and we
should not try to animate it to the new position. Just move it.
Flag: LEGACY persist.wm.debug.bubble_bar DEVELOPMENT
Bug: 273310265
Test: switch to RTL language, have 3 bubbles in bar, expand and select
the right-most bubble, then dismiss it via drag, observe arrow jumps
to new position and does not become detached from background
Test: switch to LTR language, try the same, 3 bubbles and dismiss the
left-most bubble, observe arrow jumps the same and does not become
detached
Test: select other bubbles, observe arrow position animates to the new
position
Change-Id: I399db3c3e32b65b9125262bba0a0c32e45865bba
Fix bubble bar collapse and expand animations when bubble bar is pinned
to the left.
When system language is set to an RTL language, bubble bar gets pinned
to the left edge of the screen.
Bubble bar should expand to the right and collapse to the left. Bubbles
in the bubble bar should be ordered from right to left. The most recent
bubble should be at the right in the bubble bar.
Known issue:
- when the most recent bubble is removed, the arrow animates to a new
position, but the background is not animated, resulting in arrow
getting detached from the container. Will be fixed by animating the
background.
Flag: LEGACY persist.wm.debug.bubble_bar DEVELOPMENT
Bug: 273310265
Test: with LTR language set as the system language
- expand bubble bar with 1 bubble
- expand bubble bar with multiple bubbles
- select second bubble, observe after collapse it is set as first
- dismiss a bubble from bubble bar by dragging
Test: with RTL language set as the system language
- expand bubble bar with 1 bubble
- expand bubble bar with multiple bubbles
- select second bubble, observe after collapse it is set as first
- dismiss a bubble from bubble bar by dragging
Change-Id: Ic46a5b1a6e45ad225ba509a61147cc6a8cdd0397
The BubbleBarView visibility is updated as part of the initial state change.
This CL fixes the issue where switching from floating bubbles to bubble bar
ends up in a state where both the handle and the bar are visible.
Note: once the initial TAPL tests land I will add a test for mode switching
Flag: LEGACY persist.wm.debug.bubble_bar DISABLED
Fixes: 316356971
Test: Manual
- Add bubble in floating mode
- Switch to bubble bar
- Observe that the bubble bar is not visible (only the handle is)
Change-Id: Ib8fc76f90dbf1fee83e594b7f28eed00f1589ae1
When the bubble bar is collapsed we now show at most 2 bubbles.
Fixes: 295020145
Test: Manual
- Add 1 bubble to the bubble bar
- Collapse bubble bar
-- Observe that only that bubble is visible
- Expand the bubble bar
-- Observe that both that bubble and the overflow are visible
- Add another bubble
-- Observe that 2 bubbles are visible when collapsed
- Add another bubble
-- Observe that only the first 2 bubbles are visible when collapsed
Change-Id: I5f534f53eefe9a920b8b3258813d67d021c5f2a8
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
This avoids re-adding bubbles that have already been removed
after dismissing multiple bubbles at once.
Fixes: 291738088
Test: Manual
- Add 2 bubbles A and B to the bubble bar
- Expand the bubble bar
- Tap 3 dot menu and dismiss
- Repeat for the next bubble
- Observe that bubble bar is gone
- Add a new bubble C
- Observe that the bubble bar contains only bubble C
Change-Id: Id53811a103d245647489ab8d442cbb2004e0e700
* Added dismiss view to the taskbar
* Bubble drag to dismiss of:
* A single bubble when the bubble bar stack is expanded
* All bubbles when the bubble bar stack is colapsed
* Added dismiss related calls to WMShell in SystemUI through SystemUIProxy
Bug: 271466616
Test: manual, TBD
Flag: WM_BUBBLE_BAR
Change-Id: Ibb62a0b1ab9fafa8a3acf07450ce2132ed605adc
Updates BubbleView to include logic to render the update dot on a
bubble. This only shows for BubbleBarBubbles, not the overflow.
We only show the dot (and the badge) when:
- the bubble has new content / appropriate flags set
- AND the bubbles are expanded
OR on the first bubble when bubbles are collapsed
- AND when the flyout is not animating (this bit doesn't exist yet)
If a bubble has a dot and is opened, the dot will animate away.
To do this, we update the flags set on a bubble.
The flag needs to be set on WMShell side as well as Launcher side.
When a bubble is shown by WMShell, it automatically updates the flag.
This CL adds code to update the flag on Launcher side when we call
into WMShell to show the bubble.
Test: manual
Bug: 269670235
Change-Id: I32f652effa9a73c567981aa5a2a5864e9c3c0c66
This allows WMShell to calculate the position of the expanded view
correctly when the bubble bar is being expanded from stashed.
Test: See ag/24012908
Change-Id: I7b917e761c827135942d918917c920b06650f496
This is an initial change that positions the bubble bar aligning it
with the center of the hotseat icons. We still need to center it
with the taskbar when in overview.
This change also fixes the touch issues where sometimes the hotseat
icons don't respond to taps. The fix is twofold:
1. Make sure that taskbar insets are always updated when
BubbleStashController#setBubblesShowingOnHome is called.
2. Update the touchable region in TaskbarInsetsController to account
for the Y translation of the bubble bar bounds when the bubble
bar is visible.
Demo: https://screenshot.googleplex.com/6NRyu2CR7Bjs32x
Bug: 286247080
Test: Manual on a physical device
Change-Id: I00daff8341e4d8f5d141b5e0220726f6c03b437c
After the bubble bar collapsing animation completes, and reordering
is finished, if the bubble overflow is selected, update the selected
bubble to be the first bubble. This ensures that the overflow
is not selected the next time the bubble bar is expanded.
This is done through a callback from the BubbleBarView to the
BubbleBarController with the key of the first bubble. Ideally the view
would just notify that the selected bubble needs to be updated, but
the controller doesn't hold ordering info.
Fixes: 289280431
Test: manual
- Add 2 bubbles to the bubble bar
- Expand the bubble bar. The first bubble A should be selected
- Select the second bubble B
- Select the overflow
- Tap on the overflow again to collapse the bubble bar
- Tap on the bubble bar to expand it
- Observe that bubble B is first and selected
Change-Id: I0f9c2d628cfaf3a80da55ff634284687425e949a
* changes:
Fade the bubble bar arrow in and out when the bubble bar expands and collapses.
Animate the bubble bar width and the bubbles within it as it expands and collapses.
When a new bubble is added to the bar and we're over the limit
remove the second to last bubble instead of the overflow.
This change also updates the key of the overflow bubble to
match the one in wmshell.
Bug: 287121592
Test: manual - Add 6 bubbles to the bubble bar
- The overflow bubble should still be there
Change-Id: Ibd3ab73be5d3afb49f771a1925ebda2c45b55136
Creates BubbleBarController which is responsible for registering
a listener to hear about bubble state changes and propagates those
changes to BubbleBarViewController.
Additionally, it loads the data and creates the individual BubbleViews
that are added to BubbleBarView.
Bug: 253318833
Test: manual, with other CLs, see go/bubble-bar-tests
Flag: WM_BUBBLE_BAR
Change-Id: I45b0d3a764cd14b2fc5d34aec2b81c7fecb541cf
BubbleBarView shows BubbleViews in a bar similar to transient
taskbar. BubbleBarView can be collapsed (bubbles in a stack) or
expanded (bubbles all visible). When expanded, WMShell will be
notified to show the appropriate expanded bubble view (not part of
this CL).
Also creates BubbleControllers which contains BubbleBarViewController
and will eventually contain other controllers related to stashing
for the bubble bar.
Bug: 253318833
Test: manual, with other CLs, see go/bubble-bar-tests
Flag: WM_BUBBLE_BAR
Change-Id: I990ab3da6614db90ffff8c40281dc7f16b3957f6