When the IME is visible we now don't animate the bubble bar.
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Bug: 340532785
Test: manual
Change-Id: I31fcf6a1fe81d907a9a02780ba42813111ac7e90
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
We already reached the limit of 32 flags for an int. To be able to have
more, changing from int to long.
This is needed, as new flags have to be added.
Flag: NONE
Test: Manually running SysUI and Launcher
Test: Unit tests in CL
Bug: 335625543
Change-Id: Iec1d40218264c7c64c50fd09764aa07c0caa7787
When a bubble drag starts, shell sends the current expanded view size
over as part of BubbleBarData. Update the size stored in
BubblePinController based on latest value.
Update drop target visual to match the spec. It should have 24dp insets
compared to expanded view and 28dp corner radius.
Bug: 330585402
Test: drag bubble in landscape, check that drop target for expanded view
matches with what is shown when expanded view is dragged
Test: drag bubble in portrait, check that the drop target for expanded
view, matches with what is shown when expanded view is dragged
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Change-Id: Ic11c4c5c675107543ba08f24a4138cda422d24c1
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
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 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
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
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
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DISABLED
Test: make & enable / disable flag to check if it works:
adb shell device_config put multitasking
com.android.wm.shell.enable_bubble_bar true
Test: PlatformScenarioTests:
android.platform.test.scenario.sysui.bubble.BubbleBarTest
Bug: 286246694
Change-Id: I0820973848675e8596e0e1605c7e43158d870382
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
Changing the flag currently requires a reboot, because it is read once when the process starts and never changes.
This change triggers a re-read of the flag value from SystemProperties whenever Taskbar is recreated.
This allows setting the flag as part of integration tests for bubble bar.
Bug: 273994695
Test: Manual:
- turn flag off
- create bubbles
- observe floating bubbles are added
- turn flag on
- change navigation mode to gesture navigation
- observe bubble bar becomes visible
Change-Id: I277ea6aa2c8d3ab04094537bf4cd31630310dfec
When the bubble bar becomes visible the space between icons in the
hotseat is now adjusted. This change only does it when the QSB is
above the icons, but this will be changed in the future to be based
on the amount of space between the hotseat and the edge of the screen.
When the hotseat is adjusted, the new width is smaller by the size of
2 icons. The icons are then translated to be evenly spaced within the
boundaries of the new width.
Since the adjustment is only applied when the QSB is above the icons,
it is resized accordingly to the new width.
All visual updates currently snap to the new position, but will be animated
in a follow up.
Demo: https://recall.googleplex.com/projects/3391fc5c-599d-4827-b6f8-d2deb160aa99/sessions/fad1a5c5-e9cf-4586-92e4-1e92df3b002e
Bug: 280494203
Test: Manual (on tangor)
- Set device to landscape
- Make the bubble bar visible by adding a bubble
- Rotate to portrait mode
- Observe that the hotseat is adjusted
- Rotate to landscape
- Observe that the hotseat adjustment is removed
- Rotate back to portrait
- Observe that the hotseat is adjusted again
- Dismiss the bubble to hide he bubble bar
- Observe the hotseat adjustment is removed
Change-Id: I5b02a60b6cb301ffa2507a6d825c748a782cca18
Launcher support for the user education logic described in ag/24587530.
Bug: 275077944
Test: TBD
Flag: WM_BUBBLE_BAR
Change-Id: I2b9a6ecde332de6305ad574c41d8322d8bb5d7ad
Fixes: 290608658
Test: Manual:
- Remove all bubbles
- Lock and unlock device
- Observe that bubble bar is not displayed
- Remove all bubbles
- Restart launcher process
- Observe that bubble bar is not displayed
Change-Id: I850d307394230968f86abc23ba0b4e94f55e10f0
When the first bubble is added we set the visibility of the bubble bar
to VISIBLE if the stash controller is unstashed. The issue is that once
bubbles are gone we no longer update the stash state in the controller,
so it becomes stale and can't be used when the first bubble is added.
This change introduces a new method for handling the transition from
the state where both bar and handle are invisible into the state where
one of them becomes visible. We can't use the existing stashBubbleBar
and showBubbleBar methods because those transition from one to the other.
Using them when both are invisible results in one of them becoming visible
and then invisible again.
Fixes: 290992144
Fixes: 291074646
Test: Manual:
- Add bubble in the test app by double-tapping on a chat (non expanding notification)
- Observe that the handle becomes visible and the bar is invisible
- Dismiss bubble
- Add bubble in the test app by tapping on the button on the right (auto expanding)
- Observe that the bar becomes visible and expanded
Change-Id: I61334c67c255a6ed074fa8c834f4a5a1547539bf
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
When we get an update to a bubble it could mean that there's a new
message OR that something about the visual representation changed.
This CL modifies BubbleBarController to handle any visual changes
that might have occurred to an updated bubble (e.g. bubble image
changed).
It does this by updating the bubbleInfo on the existing bubble.
Test: manual
Bug: 269670235
Change-Id: I03d2510aef335dafccb32d6adcd4c6adf8b3297d
This will make it easier to note that a bubble has been "visited"
so that we can hide the update dot (coming in future CL).
Test: manual
Bug: 269670235
Change-Id: Ie2dbbc478198ece65c05927295d3c3031a7be82e
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
Previously there was a race between initializing the bubble bar
which creates the overflow and sending an initial bubble state
update event from WMShell. If the event is processed first then
bubbles are added before the overflow.
This change ensures that the overflow is created if needed when
the initial event is sent from WMShell.
Fixes: 288414998
Test: - manual
- Enable 3 button navigation
- Create some bubbles
- Switch to gesture navigation
- Overflow should be added first (below other bubbles)
Change-Id: Ie001c76a3f587d95021f4b7202492b3071706fd0
Adds a method to call into WMShell to set the listener and
indicate when a bubble is shown or when the expanded state
changes.
BubbleBarController sets or clears out the listener.
BubbleBarViewController calls SystemUiProxy when bubbles are shown
or when the expanded state changes.
Bug: 253318833
Test: manual, with other CLs, see go/bubble-bar-tests
Flag: WM_BUBBLE_BAR
Change-Id: I2364b9bbdea237fc268b0999d9c896585c194a86
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