Added logic to check if handle view alpha should be updated during SysUi
flag updates.
Fixes: 417125892
Test: Manual. Create a new bubble on the home screen, observe the stash
handle is not visible.
Have stashed bubble bar and multiple system languages.
Go to settings (or ane other apps that has input fields). Click on
search to trigger keyboard pop up. Observe that stash handle is hidden.
Collapse the keyboard and observe that stash handle is shown again.
Flag: EXEMPT bug-fix
Change-Id: I0976f37ca24ba816ee5eed6d4f1b4e6999b54c29
Added SYSUI_STATE_IME_VISIBLE flag to MASK_HIDE_HANDLE_VIEW to hide the
bubble bar stash handle view. Also update alpha to 1 for the stash
handle view when visibility is updated to VISIBLE.
Fixes: 403363673
Flag: com.android.wm.shell.enable_bubble_bar
Test: Manual. Have stashed bubble bar and multiple system languages.
Go to settings (or ane other apps that has input fields). Click on
search to trigger keyboard pop up. Observe that stash handle is hidden.
Collapse the keyboard and observe that stash handle is shown again.
Change-Id: I5c8518cf02cc784243f9f55a95022279b2608760
We previously sent the top coordinate of the bubble bar to shell.
However when the screen height changes, launcher takes a bit longer
to update than shell. So instead of calculating the top coordinate
on the launcher side, we now send the amount of space between the
bubble bar and the bottom of the screen to shell, where we can offset
that as needed.
Bug: 392893178
Flag: com.android.wm.shell.enable_bubble_bar
Test: manual
- send some bubbles
- launch app
- expand
- swipe to home
- fold and unfold
Change-Id: I57b96db49dab1e2304fde8dc55a99eaaf85e40f8
Store and restore bubble bar stashed state.
When bubble bar is restored from saved state, restore the bar state to
stashed, collapsed or expanded.
This ensures correct positioning of the bar on screen, before we receive
an update from shell.
Bug: 357115534
Test: bubble bar collapsed on home screen, rotate device and check
bubble bar remains in correct position and collapsed
Test: bubble bar stashed in app, rotate device and check bubble bar
remains stashed
Test: bubble bar and taskbar shown while in app, rotate device,
bubble bar remains shown after rotation, not expanded or stashed
Test: bubble bar is expanded on home screen, rotate device and
check bubble bar remains expanded
Test: bubble bar is expanded in app, rotate device and check bubble bar
remains expanded
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: I91a3b5582a4af753e9e54156358b2ce9adb841c7
When we restore bubbles after taskbar is recreated, we should not modify
the bubble bar state as part of restoring the bubble views. Bubble bar
state is restored separately.
Create new helper method to restore bubbles without affecting bubble bar
state.
Bug: 357115534
Test: have bubble bar expanded on top of an app, rotate device multiple
times back and forth, check that bubble bar remains expanded
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: Ifc9c391a1a367535daa3b83283fe145824294bcc
When bubble bar gets recreated, store the expanded state and selected
bubble.
Allows us to show the bubble bar in previous state after rotation,
before shell has been able to send us an update.
Bug: 357115534
Test: on home screen, have bubble bar expanded, rotate device, check
bubble bar remains expanded
Test: in app, have bubble bar expanded, rotate device, check bubble bar
remains expanded
Test: have bubble bar collapsed, rotate device, check it is not expanded
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: Ied187c638287599297e15db77efdf44bd701d559
Initial state for bubble bar does not need to be animated.
Especially if it is sent after rotation. In that case we do not want it
to animate.
When launcher is rotated, taskbar is recreated. After getting recreated,
we receive the initial state from WMShell for the bubbles again. Part of
the initial state is whether bubble bar is expanded or not.
Bug: 357115534
Flag: com.android.wm.shell.enable_bubble_bar
Test: rotate device
Change-Id: I859b73597c8f286069f384dcdea0e3a5296e0073
If the systemui process restarts, as it does as part of tests,
it does not get notified about the bubble bar bounds until they
actually change. This could result in invalid bounds for the
expanded view which would prevent bubbling tasks.
This change ensures that the bounds are sent to shell after the
initial handshake.
20x runs: https://android-build.googleplex.com/builds/abtd/run/L46000030011522666
Bug: 411307439
Test: atest BubbleAnythingTest
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: I2a5898f32506529b8860274cdee1fcea1a264e83
Use new Bubbles aidl method to tell WMShell when bubble bar is used or
not used.
Allows to better handle cases where taskbar (and bubble bar) get
recreated during rotation.
Bug: 357115534
Test: open an app, expand bubble bar, rotate device, check bubble
remains expanded
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: I1c77eecb2b574b3d9b33aadafd1585e1aca26bdb
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
This renames the SysUI states related to the IME and IME Switcher button
visibility from "shown" to "visible", to maintain consistency.
Flag: EXEMPT refactor
Bug: 366129400
Test: n/a
Change-Id: I45219e62b633ca984de98df43f5c238604b38109
The taskbar and bubble bar were using both the visibility of the IME and
that of the IME Switcher button to determine whether these bars should
be stashed. However, the IME Switcher button will never be visible while
the IME is not visible, so using its visibility is redundant.
This changes the stashing logic to only take into account the IME
visibility. Note, the IME is also considered visible even when a
hardware keyboard is connected, regardless of any UI being visible or
not. This visibility state determines various system behaviours.
Flag: EXEMPT refactor
Bug: 366129400
Test: open the IME and IME Switcher menu on large screen devices;
observe taskbar behaviour
Change-Id: Ibcd16896582ca575538d8c1c3d2ab879090d075c
Added an IPC call to inform the Bubble Bar in the launcher process
of drag events from the shell.
Bug: 388894910
Flag: com.android.wm.shell.enable_bubble_bar
Test: Manual. Check that events from the shell process successfully
reach the launcher process.
Change-Id: I01615911ce7e4250138aedaa5823f639b9163ff0
We had a few instances of properties referencing the IME Switcher or its
visibility, when in fact this was related to the button, not the menu.
This clarifies the names for these states, as well as adding some
documentation around where these values are used/passed.
Flag: EXEMPT bugfix
Bug: 366129400
Test: n/a
Change-Id: I962a9c3e1b0686d51e90a86e70fdf21b3b625e58
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
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
The scenario where "A bubble was added from the overflow (and now it's
empty/not showing)" lacked a check to verify if bubbles are currently
present. Its absence caused calls to removeOverflowAndAddBubble() of
BubbleBarViewController for any first bubble matching the previously
closed last bubble, not just those added from the overflow.
This CL addresses the issue by adding the missing check.
Test: Manual. Set enable_optional_bubble_overflow flag to true. Create
one bubble, dismiss it, create the same bubble again. Create another
bubble, dismiss it, open overflow and click on dismissed bubble. Observe
the overflow icon disappears.
Video: http://recall/-/gx8ASgewUeUS3QYohfrd1J/eYeyo6cNeUBw4mU6rrkXtN
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 373940143
Change-Id: I4085ce4e922e2b5d65466a00649dda086c14185f
Update the bubble bar visibility for the initial bubble if the animation
is suppressed, e.g. if we're creating the bubble when the shade is open.
Flag: com.android.wm.shell.enable_bubble_bar
Bug: 382693837
Test: manual
- enable bubbles
- remove all conversations from the list of allowed to bubble
- create notification
- open shade and click on the bubble button to bubble the notification
- observe bubble bar becomes visible
Change-Id: If771c28998b2b091f4f1ab38001e9485ed1ed849
Hide or show bubble based on suppression signals from shell.
If this is the only bubble, hides or shows the bubble bar.
Bug: 273316505
Test: have a single bubble in the bubble bar, suppress the bubble,
observe that bubble is hidden and bubble bar is not shown,
unsuppress the bubble, check that bubble bar and bubble is shown
again, perform check with transient and persistent taskbar
Test: have multiple bubbles, suppress one bubble, check that this bubble
is not shown, but the bubble bar remains visible with other bubbles,
perform the check with transient and persistent taskbar
Test: have a single bubble in bubble bar that is suppressed, receive
notifications to trigger new bubbles, observe bubble bar is shown for
new bubbles, check that after unsuppressing bubble, it is added back,
perform the checks with tranient and persistent taskbar
Test: suppress a bubble and rotate the device to trigger launcher
recreation, check that after unsuppress, the bubble is added back
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: I17e5cec750a2666feecc62213a3e8fc204ee510a
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 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
When a bubble is updated, we now suppress the animation when needed.
This prevents the animation from playing on the lock screen, when
the shade is open, when the IME is visible, etc.
Note that for new bubbles we were already suppressing the animation.
The issue fixed by this change is only observed for updated bubbles.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 377618253
Fixes: 377624611
Test: manual
- tap qsb or launch any app and show the keyboard
- send an update to a bubble
- observe the flyout is not appearing
- repeat with shade open and on lock screen
Change-Id: Id78e0cfbc413bcebaf6445cecacaaf34b36ed411
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
When a bubble is added or removed while we're collapsed, animate the
badge scale to make sure that only the badge for the top bubble is
visible.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 360652359
Test: manual
- add bubble while collapsed
- observe that badge only shows for top bubble
- remove bubble while collapsed
- observe that badge only shows for top bubble
Change-Id: I91472bb2ddeeeebd33ca64e20e065b2336c08589
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
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
Update the hotseat and Qsb placement according to the 3 nav buttons bar.
Test: Manual.
Set navigation mode to 3 buttons.
On launcher home screen move the bubble bar from one side to another.
Observe that the Hotseat and Qsb moving together with the navigation
bar.
Once moved the bubble bar, expand the bubble bar and collapse it.
Observe how the Hotseat is stashing and un-stashing.
After bubble bar changes position hit the recent apps button, observe
the transition.
On launcher home screen start application with the hotseat icon and exit
opened application. Observe that flying icon comes back to the correct
position in the hotseat.
Video with the above scenarios:
http://recall/-/gx8ASgewUeUS3QYohfrd1J/blTYrKopTyufOcRoPuVpYK
Bug: 346381754
Flag: com.android.wm.shell.enable_bubble_bar_in_persistent_task_bar
Change-Id: Ic8c6acdffbbb111cbe4f3fd6bc60195578d7035d
Implemented nav bar placement update to be located opposite to the
bubble bar.
When bubble bar is moved to the other side of the bar, 3 button nav will
swap sides (without animation).
If taskbar has to be repositioned it does that with the animation.
Test: TaskbarViewControllerTest
Bug: 346381754
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: Id031706183c60cbd9c67537b01530acb43bae614
One case I missed was a bubble being added/removed AND the overflow
showing... this isn't the nicest, but when the add/remove animation
is done, animate the overflow in.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 358304168
Test: manual - don't have the overflow showing, add a 6th bubble,
observe that the overflow appears
Change-Id: I1a9cec3970f5535e935f3404fa6dbd6de2f69fa5
Flag: com.android.wm.shell.enable_bubble_bar
Test: manual - have bubbles in bubble bar, switch between transient
taskbar and pinned taskbar repeatedly.
Bug: 359096619
Change-Id: I02beacff64b12380ee6d134b7dcc64cfd27e4b0b
Revert submission 28703070-bubbles-defer-expand
Reason for revert: DroidMonitor. Potential culprit for b/359765550 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.
Reverted changes: /q/submissionid:28703070-bubbles-defer-expand
Change-Id: I5651cc8f740b1f0718abcfa8065e18c174657224
When a bubble is added and requested to be expanded, notify WM Shell
to show the expanded view when expansion actually starts on the
launcher side.
Demo: http://recall/-/bJtug1HhvXkkeA4MQvIaiP/cPZuf3STUqX9uFZ4zneRO2
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 339683389
Test: atest BubbleBarViewAnimatorTest
Change-Id: I0ba27acf8bae560a10b754241f8f2d8e3281cef9
This is similar to the animations that add / remove a bubble at the
same time -- the overflow is generally added when a bubble is removed.
The overflow is generally removed when a bubble is added (i.e. user
promotes a bubble out of the overflow).
There are a couple of additional cases:
- when bubbles are first added to the bar -- if there were saved
bubbles in the overflow, the view should be added
- an app could cancel its bubbles / remove its shortcuts and not have
any in the stack but could have some in the overflow & it could
become empty without an addition.
Flag: com.android.wm.shell.enable_optional_bubble_overflow
Flag: com.android.wm.shell.enable_bubble_bar
Test: manual - add bubbles to the bubble bar for first time
=> observe there is no overflow
- dismiss a bubble
=> observe the overflow is added, tap on it, tap on the
bubble in it
=> observe that bubble is added & the overflow disappears
- dismiss all the bubbles
- add a bubble
=> observe the overflow is there & has the previously
dismissed bubbles
- cancel all the bubbles that are in the overflow via
adb
=> observe the overflow is remvoed
Bug: 334175587
Change-Id: I2b6e855e65520b4b2b1fde7757d46f00a468b4a6
I think this simplifies the BubbleBarController class and makes it
a bit easier to deal with the optional overflow (done in other CLs).
Flag: com.android.wm.shell.enable_bubble_bar
Test: manual - add some bubble to bubble bar, check that the overflow
is there & can be opened
Bug: 334175587
Change-Id: Ie17fa0279a981a019d5d50b9f71dc87f49d98dee
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
This is an effort to align/unify color usage across all launcher projects and the system itself.
This fix recreates all dynamic color attributes present in the OS since many launcher areas cannot access private attributes.
It is recomemnded to use these new local attributes in all launcher areas and avoid creating new color resources when these can be used directly.
Bug: 352690172
Test: Presubmits
Flag: EXEMPT bugfix
Change-Id: Ic36b8bf70ee37f2fdd32e459e66f0e2d001d6ba2