Handle new bubble notification while drag is in progress. Updated logic
to react to new bubble notifications arriving during drag operations
before a drop occurs.
Bug: 388894910
Flag: com.android.wm.shell.enable_create_any_bubble
Test: BubbleBarViewAnimatorTest
Test: Manual. Go to some application and have no bubbles. Start
dragging the taskbar icon over the bubble bar drop zone. Trigger new
bubble with the bubbles test application. Observe drop target is
hidden and new bubble is animated in, followed by flyout. When flyout
disappears, bubble bar remains on the screen. Release icon over the
bubble bar. Observe newly added application bubble is expanded. Repeat
same test, but drag the taskbar icon to the opposite side.
Test: Manual. Go to some application, but have bubbles. Start
dragging the taskbar icon over the bubble bar drop zone. Trigger new
bubble with the bubbles test application. Observe new bubble is added
and the flyout is shown. When flyout disappears, bubble bar remains on
the screen. Release icon over the bubble bar. Observe newly added
application bubble is expanded. Repeat same test, but drag the taskbar
icon to the opposite side.
Change-Id: I6fe1139ef56f4ad40d36a804016d23a9b34abf5f
Added logic to show and hide the bubble bar drop target on Shell
drag-and-drop events.
Test: Manual. Drag a shortcut or an application icon from the taskbar to
the bubble bar drop zone. Observe that if the bubble bar is showing
bubbles, the background stroke color becomes non-transparent; if there
are no bubbles, the drop zone appears. Drag the app icon to the opposite
side and observe that the bubble bar location is animated or the drop
zone appears on the dragged side. Drop the application icon or shortcut
on any side and observe that a new bubble is added and immediately
expanded. Additionally, the bubble bar remains at the drop location.
expanded.
Bug: 388894910
Flag: com.android.wm.shell.enable_create_any_bubble
Change-Id: I581dddf2c76ac982a5c78bc32d94b79bf63fd2b9
The Bubble Bar was being cut off due to the taskbar window height.
Modified the BubbleBarViewController to rely on the bubble count to
compute the maximum height, rather than the BubbleBarView visibility.
Test: Manually tested. Expanded the Bubble Bar in 3-button navigation.
Pressed the power button to lock the screen. Unlocked the screen.
Fixes: 391358222
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: I1923fc84df403abea022ba84f23fc66be7dbe7aa
* changes:
Take bubble selection from the shell update.
Fix bubbles animation when the new bubble added and old bubble removed.
Fix arrow animation when the new bubble added and old bubble removed.
Prior to this change, the bubble bar controller determined which bubble
to select. With this change, the selection is now determined by the
update received from the shell.
Test: Manual. Tested the add overflow and remove bubble flows, add
bubble and remove overflow flows, and add bubble and remove bubble flows
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 359952121
Change-Id: I8ec01d6976b1e1cd0129071fd1765041eeb10b83
hasBubbles() was checking if there is a selected bubble. If there was one, it returned true.
Update it to return true when bubble bar has bubble views.
This aligns it with the name of the method and the javadoc.
Bug: 385928447
Change-Id: If3dafb7608f71b8600dbac064b08a7f7114a361f
Test: check that bubble bar is tappable
Test: check that bubble bar is shown next to QSB on foldable
Test: check bubble bar position with 3 button nav
Flag: com.android.wm.shell.enable_bubble_bar
The new bubble animation now uses a "selected location" argument to
position the pointing arrow.
Test: BubbleAnimatorTest
Test: Manual. Create a bubble bar with overflow. Open the overflow menu
and click an overflow bubble icon. Observe that a new bubble is added
and immediately expands. Observe that the arrow animates to the new
bubble's position.
Test: Manual. Create a bubble bar with overflow. Open any bubble.
Trigger a new bubble notification. Observe that a new bubble is added
but does not expand, so the arrow remains at the currently open bubble.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 359952121
Change-Id: I47f5b6c2aad775f2dd3e70f8c544a3711f192342
The problem had two parts:
1 When BubbleBarViewController removed all views, including the overflow
bubble, it did not update the value of the mOverflowAdded field
2 BubbleBarController removed all views upon receiving an initial update
This CL addresses both issues.
Test: Manual. Ensure the overflow bubble is present in the bubble bar.
Rotate the device and verify that the overflow bubble remains visible.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 380281090
Change-Id: I1810671e6bfc5b8b402433697b07f3de2e612ed7
Shift the taskbar to fulfill the 12dp distance if the distance between
the taskbar and the bubble bar is below this threshold.
Fixes: 376929094
Test: TaskbarViewControllerTest
Test: Manual. Test that the transient taskbar shifts properly.
Increased the minimum distance to 120 dp and verified that the taskbar
shifts correctly. Moved bubbles side to side, confirming the taskbar
follows. The return-to-home-screen animation to the hotseat plays as
expected from either side.
Video:
http://recall/-/gx8ASgewUeUS3QYohfrd1J/bJZ8PclmltZu7IupvBFrLn
Test: Manual. Test that the transient taskbar stashes properly.
Increased the minimum distance to 120 dp and verified that the taskbar
shifts correctly. Go to any application. Stash and un-stash the taskbar.
Video:
http://recall/-/gx8ASgewUeUS3QYohfrd1J/hCGRhUgIqvcehOrTQ2Ulvj
Test: Manual. Test that the transient taskbar pin/unpin properly.
Increased the minimum distance to 120 dp and verified that the taskbar
shifts correctly. Pin/unpin the taskbar.
Video:
http://recall/-/gx8ASgewUeUS3QYohfrd1J/f3fy5JKVZAk4wLCpVra4DK
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: Id4bd713da93053f90d9c2be8503dc93531a03b29
Previously, clicks were not handled because no listener was set on the
bubble bar.
Fixes: 383622825
Test: Manual. Ensure bubbles are on the home screen and set the
navigation mode to 3-button navigation. Click on the collapsed bubble
bar and observe the bar expanding.
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: I99e1c20e40a9dd9da97b68817734c8ca1f656baa
When updating the bubble bar visibility, allow it to become visible
if the only hidden bit is the stashed one and we're animating.
This fixes the visibility issue that appears after dismissing the
bar while stashed, and then sending an initial bubble, while still
stashed.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 383620113
Test: manual
- create bubble
- launch app
- dismiss bubble with adb
- create bubble with adb
- observe bubble bar is visible during the animation
Change-Id: I7a955de068867829b3ccab11b2b0adc8d8e10239
When animating the bubble bar in an app with a stashed handle,
the flyout might not be displayed entirely.
Fix the calculation of the amount of space needed to fully display
the bubble bar and flyout views.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 382513856
Test: manual
- remove all bubbles
- launch app
- send a bubble with a 2-line message
- observe flyout is fully visible
Change-Id: I7953cb7f619f2c00b04bb4cb08c57a8195ff79fe
When the first bubble animates in we make the bubble bar visible
before translating it below the screen to prepare for the spring
animation. This change defers updating the visibility letting the
animator notify when it's safe to update visibility.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 382296842
Test: atest BubbleBarViewAnimatorTest
Test: manual
- dismiss bubble bar
- send new bubble
- observe bubble bar does not flicker
Change-Id: Ib611771dd9f315ab57ef00f8f6cb982b8b88ea73
When switching to overview we set the taskbar window size as part
of the taskbar animation. If a bubble is animating the window size
becomes too small and the bubble flyout gets cropped. This change
avoids updating the window size in the middle of a bubble animation.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 377809168
Test: manual
- create a bubble and wait for the flyout to show
- switch to overview
- observe the flyout is not cropped
Change-Id: Ic0a3f2c0fc534162ae5583e744a7bc400c3d921b
When the last remaining bubble is dismissed by drag or from the menu
we now fade out the bubble bar.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 347062801
Test: manual
- create a single bubble in the bar
- expand
- dismiss by drag or from menu
- observe animation
Change-Id: I86fcaf04c6f5949126744b81e0042b0e58318a13
Updated the logic to set the taskbar window height to accommodate the
bubble bar with its maximum flyout height before the bubble bar
animation begins. The height is reverted to the default value once the
animation is completed.
Fixes: 378400160
Flag: com.android.wm.shell.enable_bubble_bar
Test: Manual. Set 3-button navigation mode and have the QSB placed
above the hotseat. Send a notification that will display a bubble, and
observe the bubble bar animation and final placement aligned with the
QSB.
Next, set gesture navigation mode and repeat the flow above. Observe
that the bubble bar is aligned with the hotseat icons.
Felix video:
http://recall/-/gx8ASgewUeUS3QYohfrd1J/gYMVt0sH4si0KOpaBxIPem
Tangor video:
http://recall/-/gx8ASgewUeUS3QYohfrd1J/fz95MbjcjW3awStnuOl8BJ
Change-Id: I239f935743c3936fed44822c3c62652073ffefe2
Change logic to updated bubble bar alignment with the QSB vertical
center for 3 buttons navigation mode.
Fixes: 378400160
Flag: com.android.wm.shell.enable_bubble_bar
Test: PersistentBubbleStashControllerTest
Test: TransientBubbleStashControllerTest
Test: Manual. Set the buttons navigation mode and observe that the
bubble bar is centered with the QSB when the QSB is not aligned with the
hotseat. Then, switch to gestures navigation mode and observe that the
bubble bar is centered with the hotseat when the QSB is not aligned with
the hotseat.
Change-Id: I57a32ac5bde7a7055b54a89727429424e5c0ca4f
We now show the bubble bar edu view after a request from shell
to show it was received, and as soon as the user performs a touch
gesture on the bubble bar or flyout that causes the bar to be
expanded.
The click listener on the bubble bar is removed with this change
because the input consumer already handles taps. Removing the
listener avoids processing the tap twice which causes the edu view
to not be displayed. Removing the click listener solves the issue
but ideally we should move the edu view to launcher since that
would allow us to manage its state easily.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 374842575
Test: atest PersistentBubbleStashControllerTest
Test: atest BubbleBarSwipeControllerTest
Test: atest TransientBubbleStashControllerTest
Test: manual
- force show the bar edu view
- send a bubble
- tap the bubble bar to expand
- observe bubble bar edu is visible
- repeat with swiping on the bar and tapping the flyout
- launch an app
- swipe up to show the taskbar
- observe edu view not visible
- send a bubble with auto expand
- observe bubble bar expanded and edu view not visible
Change-Id: I98ec44e6edf6c69d6d47b5709140796c2ecab23e
When the IME becomes visible, interrupt the bubble animation if it's
running. This ensures that the flyout doesn't show over the IME and
is more consistent with the behavior of bubble notification when the
IME is visible.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 378404363
Test: atest BubbleBarViewAnimatorTest
Test: manual
- launch app
- send bubble
- while bubble is animating launch IME
- observe flyout not visible over IME
Change-Id: I28390982bb41d8cc9b494395418728ff5fb373b6
While dragged, bubble bar needs elevation to show up above dismiss view
and dismiss view scrim.
Previously, bubble bar and dismiss view were under the same parent, drag
layer. This allowed us to position bubble bar above dismiss view by
adding elevation to it.
After introducing the bubble bar container, bubble bar is not shown on
top of dismiss view when its elevation changes. Because they are no
longer under the same parent.
Move drag elevation from bubble bar to bubble bar container. The
container and dismiss view are under the same parent.
Bug: 376140375
Test: manual, drag bubble bar or bubble, check they are above dismiss
view and the scrim
Test: receive a new message, check that flyout is shown
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: Ie0fb677929bb2413c10b934fc8b362cde7b8cecd
When swiping home during the bubble animation, and if the show edu
view state field is on, we try to show the bubble bar as part of
preparing to show the edu view. This updates the stash state and
prevents the animation from getting interrupted.
The expected behavior around showing the edu view is to store the
request when it is received and show the view later after the user
taps on the bubble bar or the flyout to expand it. We shouldn't
attempt to show the bubble bar at that point.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 378967270
Bug: 374842575
Test: manual
- force show the edu: adb shell settings put secure force_show_bubbles_user_education 1
- launch an app and send a bubble
- while the bubble animates, swipe to go home
- observe the flyout is removed correctly, and we don't end up in stashed state
Change-Id: I478b06ac5f6f9d398cd143bcc0b3f796d9ad8a49
When caculating number of icons to show in taskbar, account for bubble
bar size (the max size when in collapsed state) when bubble bar has
bubbles (even if the bubble bar is stashed). Note that the bubble bar
visibility may change, so max number of icons in the taskbar may change
during the taskbar view lieftime. TaskbarViewController already had a
method called when the bubble bar visibility changed - adapt it to also
reclaculate max number of icons to show in the taskbar, and update the
list of icons shown in the UI if necessary (if the change in the bubble
bar visibility would also cause a change in number of icons shown in the
taskbar).
Bug: 368119679
Test: Launch enough apps for taskbar to enter overflow, open an app that
supports bubbles, and trigger 2 or more bubbles so bubble bar shows up.
Verify that the buble bar does not overlap with taskbar bounds, both
in transient and persistent taskbar. Remove bubbles, and verify the
taskbar bounds expand, allowing more icons to be shown.
Flag: com.android.launcher3.taskbar_overflow
Change-Id: Ifed4e5e5dd64df5256090f5ba55f24203c09e839
Shell can use the location update trigger information for logging
purposes.
Bug: 349845968
Test: manual
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: I5af4375f88ea438b1aed9b3b2bd02d0c33fff53f
After the flyout initializes to its collapsed state, hide the
notification dot so that the flyout and dot will seem visually as
one.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 376276297
Test: atest BubbleBarFlyoutControllerTest
Change-Id: Ie581ddcd56a26844526f80b2169639c1a7d87500
Added logic to save and then restore existing bubbles in the
TaskbarSharedState object.
Bug: 375482371
Test: Manual. Switch between pinned and unpinned taskbar. Video:
http://recall/-/gx8ASgewUeUS3QYohfrd1J/d8hVHxksAokx85J8P7etoC
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: I34f580f1c652859f427385edc0ccadd447e1400f
Flag: com.android.wm.shell.enable_bubble_bar
Test: manual - check that optional overflow flag is off and get
bubbles in bubble bar, overflow should be present
Bug: 358304168
Change-Id: I1eb709003d4dcdde7ae465b837a2c68d40b1a828
Set proper interpolator and duration for bubble bar expansion and
collapsing animation. Also set animation properties for the taskbar
fade in and out animations.
Flag: com.android.wm.shell.enable_bubble_bar
Test: Manual. Expand / collapse bubble bar when taskbar is pinned and
expanded bubble bar would intersect the task bar.
Fixes: 360821863
Change-Id: Ia83d6aecdae921721a31b45f22400f878040f3d6
Expand the bubble bar when the user taps on the flyout view.
Flag: com.android.wm.shell.enable_bubble_bar
Bug: 277815200
Test: atest BubbleBarViewAnimatorTest
Test: atest BubbleBarFlyoutControllerTest
Change-Id: I156acfa663d6a00bc70dd7bbfc35642643902d83
Removed calls that were stashing and unstashing the hotseat bar.
Flag: com.android.wm.shell.enable_bubble_bar
Test: Manual. Be on Launcher home, have some bubbles. Expand / collapse
bubble bar. Hotseat remains behind the scream view.
Fixes: 373429249
Change-Id: I1a9ba39c8ca11d49340f217f095d5e872b06105b
Animate the horizontal position of the bubble bar on taskbar pinned /
unpinned switches.
Bug: 345698412
Test: TaskbarPinningControllerTest
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: If330dc9e5f7b16a588973ad6043a5dc6709e13ab
When a bubble is created or updated we now animate the flyout view
as part of the bar animation.
Note that the flyout is not clickable yet, and that we're not yet
handling bubble notifications interrupting each other.
Flag: com.android.wm.shell.enable_bubble_bar
Bug: 277815200
Test: atest BubbleBarViewAnimatorTest
Test: atest BubbleBarFlyoutControllerTest
Test: manual
- verify flyout view is showing when creating bubble
- on home
- in app
- when bubble bar is empty
Change-Id: I315e46c89a4d20aaaa22972f0d71290a63481d9d