Commit Graph
26 Commits
Author SHA1 Message Date
Liran Binyamin fad57132d3 Dump some bubble data to dumpsys
Flag: NONE added dump logs
Bug: 350753857
Test: manual
       - adb shell dumpsys activity service com.android.quickstep
Change-Id: I19d328f99e5ba887aa508ea9ab16e9778f13698b
2024-07-09 10:34:19 -04:00
Mady Mellor 6d09b0cd1e Only return that bubbles are on home if we actually have bubbles
This causes an issue in the touch inset calculations resulting in
taskbar items being not touchable causing some tests to fail (thank
you tests for catching this!)

Flag: com.android.wm.shell.enable_bubble_bar
Test: atest NexusLauncherTests:com.android.quickstep.TaplTestsTaskbar
Bug: 349174989
Change-Id: I8cad22be92f219e0e9d3ec0f551764681f281844
2024-06-24 15:35:55 -07:00
Liran Binyamin 273f9ec487 Fix bubble bar and handle visibility on first bubble
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
2024-06-03 13:27:48 -04:00
Anushree Ganjam c9eda41c31 Hardcode the className instead of class.getSimpleName().
class.getSimpleName() causes issues with obfuscation.

Bug: 332171918
Test: Manual
Flag: NA
Change-Id: I5119a7ba0e4e27d8745c94df67881934fed282a4
2024-05-08 12:31:24 -07:00
Liran Binyamin aa73f595cf Animate the bubble bar for the first bubble
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
2024-05-06 20:17:28 -04:00
Liran Binyamin 209c764175 Interrupt bubble animation on stash change
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
2024-05-06 09:55:34 -04:00
Liran Binyamin 29a3e5d676 Animate the bubble bar to show new bubble
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
2024-04-26 20:50:43 -04:00
Liran Binyamin a87abece5a Handle taps on the animating bubble
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
2024-04-18 13:52:22 -04:00
Liran Binyamin e79120af38 Update new bubble animation
This change is a rewrite of the new bubble animation. Previously we chained the handle animation and the bubble animation so that they run sequentially.
That caused the transition from the handle to the bubble to be jarring.

We now use a single spring animation along the y axis that starts from the position of the handle to the position of where the bubble will end up.
The animation is split into 3 logical parts, where initially the bubble animates out, then the bubble starts animating in, and the last part is the overshoot of the spring animation, which is used to mark the bubble fully visible and ensure that from that point on, the bubble is only moving but doesn't change in scale or transparency as the bounce effect is playing.
Using a single animation path allows for a smooth transition from the handle to the bubble view.

Demo: http://recall/-/bJtug1HhvXkkeA4MQvIaiP/hHNUBdNJPiWi9gMbqy45UJ

Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Bug: 280605846
Test: atest BubbleBarViewAnimatorTest
Change-Id: Ic1d3244574b8500d4aad2e9c718e61c1c34bd82a
2024-04-11 11:51:10 -04:00
Liran Binyamin 597ced3033 Animate the stash handle for new bubbles
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
2024-04-04 14:26:08 -04:00
Ats Jenk cd0f35383f Introduce bubble bar location that is driven by shell
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
2024-03-06 10:17:11 -08:00
Liran Binyamin d7f1942d4a Let the bubble bar handle gestures over the bubble bar.
This change introduces a motion event flag to signal that the gesture
is being originated over the bubble bar (similar to the nav bar gesture flag). Downstream consumers use this flag to ignore the event in order
to allow the bubble bar to handle it.

The black screen in b/293348900 seemed to be related to the recents
shell transition closing the app that was in the foreground before
swiping on the bubble bar handle. Not sure why it ended up with a black
screen, but this change avoids starting the recents transition entirely.

Demo: http://recall/-/bJtug1HhvXkkeA4MQvIaiP/BSxLROoflr1i2yy0v6Y4G

Fixes: 294421126
Bug: 293348900
Test: Manual:
      - Add bubble to the bubble bar
      - Swipe up over the bubble bar
      - Observe that the bubble bar expands

      - Launch application
      - Swipe up on the bubble bar handle
      - Observe that the bubble bar expands

Change-Id: Iea15829de97edb6bfbfb7007388865230faaf736
2023-09-26 12:02:27 -04:00
Liran Binyamin 80f20a2183 Handle touches on the bubble bar in Overview
If the bubble bar is visible and we're in Overview, set the touchable region
of the Taskbar to include the bubble bar bounds.

Fixes: 290197298
Test: Manual
      - Add multiple bubbles to the bubble bar
      - Go to Overview
      - Tap on the bubble bar
      -- Observe that the bubble bar expands
      - Tap on different bubbles
      -- Observe that the bubble bar updates correctly
      - Tap outside the bubble bar
      -- Observe that the bubble bar collapses
      - Tap outside of the bubble bar again
      -- Observe that the launcher state changed and we are in Home
Change-Id: I722778ee41b50ebca57431bb303da89104d25090
2023-08-22 09:13:15 -04:00
Liran Binyamin 95d84f5e06 Don't animate in the bubble bar unless there are bubbles
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
2023-07-26 15:38:47 -04:00
Liran Binyamin 60240207bb Handle the event of first bubble added.
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
2023-07-19 17:02:57 -04:00
Liran Binyamin d0121222a5 Merge "Check that the bubble bar has bubbles before showing it" into udc-qpr-dev 2023-07-12 19:58:16 +00:00
Liran Binyamin 1d7494b4a5 Check that the bubble bar has bubbles before showing it
ag/24024252 relied on the bubble bar being invisible to indicate that
the bar is empty. But that assumption was wrong. The bubble bar gets
hidden when the device is locked. The result is that unlocking the
device leaves the bubble bar stashed.

This change actually verifies whether the bubble bar is empty before
showing it.

Fixes: 290608658
Test: Manual:
      - Have some bubbles in the bar
      - Lock the device and unlock
      - Observe that the bubble bar is unstashed
Change-Id: I4ca5c10e0cec57d3c6b4e056e06ebcf04aa1571a
2023-07-12 12:36:25 -04:00
Liran Binyamin 7dd280eef3 Merge "Don't show the bubble bar when it is empty" into udc-qpr-dev 2023-07-12 15:09:21 +00:00
Liran Binyamin 05ef774e6e Don't show the bubble bar when it is empty
Sometimes the bubble bar shows when the launcher process starts up
even when there are no bubbles.

bubblesShowingOnHome is set to true when the launcher transitions into
Home, but that state also triggers a call to showBubbleBar() which will
eventually set the visibility on the bar.
During initialization we also call setHiddenForNoBubbles to hide the bubble
bar if it's empty, but these events happen separately so the bar may or
may not be hidden.

This change avoids calling showBubbleBar when setBubblesShowingOnHome is
called and the bar is invisible. Instead the bubble bar will become visible
once bubbles are added.

Fixes: 290608658
Test: manual
       - Toggle bubbles off and back on in settings
       - Restart launcher
       - Observe the bubble bar is not displayed
Change-Id: I30640764d7b6eae64e1c5b5c687760465bf9a7b1
2023-07-11 17:12:00 -04:00
Liran Binyamin 1c03ed001d Pass bubble bar offsets instead of position to WMShell
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
2023-07-11 17:08:09 -04:00
Liran Binyamin d76a9d9240 Align the bubble bar with the taskbar in overview and app
Whenever the bubble bar is unstashed and taskbar is present, the
translationY of the bubble bar is now adjusted so that it is aligned
with the taskbar.

Demo: http://recall/-/bJtug1HhvXkkeA4MQvIaiP/e3dlacSsSebQfEFTEt10JM

Fixes: 286247080
Test: Manual:
      - Add bubbles to the bubble bar.
      - On home observe the bar is aligned with hotseat
      - Switch to overview and observe the bar is aligned with taskbar
      - Go back to home. Bar aligns with hotseat.
      - Launch an app. Swipe up to load taskbar. Bar is aligned with taskbar.
      - Go back to home. Bar aligns with hotseat.
Change-Id: I93c2232d4862be4c97e36ddb6c9d680b01e555ad
2023-07-06 12:10:27 -04:00
Liran Binyamin c06c7ff6fa Update the bubble bar offset on Home
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
2023-07-05 17:29:52 -04:00
Mady Mellor 6dea6d1624 Modify Taskbar code to accommodate bubble bar gesture to stash/unstash
* Bubble bar typically follows the behavior of taskbar - if taskbar
  is shown, the bubble bar is shown, if taskbar hides, bubble bar
  hides.
* The bubble bar has 3 states: stashed, collapsed (unstashed but
  the bubbles are not expanded), and expanded. When bubbles are
  expanded, this means WMShell is rendering the bubble
  expanded view. In this situation taskbar becomes collapsed.

Bug: 253318833
Test: manual - flag turned on - see go/bubble-bar-tests
Test: manual - flag turned off:
             - launch an app, ensure taskbar is stashed
             - unstash taskbar, drag down on taskbar, ensure it
               becomes stashed
             - be in an app, unstash taskbar, interact with the app,
               ensure taskbar is stashed
             - be in an app, unstash taskbar, select an app from it,
               ensure taskbar is stashed & app is opened
Flag: WM_BUBBLE_BAR
Change-Id: I7b481d768182c8429160ab4a9b213b885a7d78bc
2023-05-23 14:02:50 -07:00
Mady Mellor 662787540c Revert "Modify Taskbar code to accommodate bubble bar gesture to stash/unstash"
This reverts commit 7344766886.

Reason for revert: b/282035015

Change-Id: I38db287f730048d3e1e5041f1853bdae214e1a66
2023-05-11 18:50:35 +00:00
Mady Mellor 7344766886 Modify Taskbar code to accommodate bubble bar gesture to stash/unstash
* Bubble bar typically follows the behavior of taskbar - if taskbar
  is shown, the bubble bar is shown, if taskbar hides, bubble bar
  hides.
* The bubble bar has 3 states: stashed, collapsed (unstashed but
  the bubbles are not expanded), and expanded. When bubbles are
  expanded, this means WMShell is rendering the bubble
  expanded view. In this situation taskbar becomes collapsed.

Bug: 253318833
Test: manual, with other CLs, see go/bubble-bar-tests
Flag: WM_BUBBLE_BAR
Change-Id: Ic210c382e7482c259ae543a0dc083fe9305cbf5b
2023-05-09 12:37:14 -07:00
Mady Mellor 14e53a6b2e Creates BubbleStashController & BubbleStashedHandleViewController
Adds two controllers to manage and animate the stash / unstash state
of the bubble bar. Adds them to BubbleControllers.

Bug: 253318833
Test: manual, with other CLs, see go/bubble-bar-tests
Flag: WM_BUBBLE_BAR
Change-Id: I1a67da888384b1ae0fe3f79a25ea6a2c1b7eef87
2023-04-18 16:46:02 -07:00