Commit Graph

543 Commits

Author SHA1 Message Date
Jagrut Desai e62cb76491 Extend DesktopVisibilityController Funcationality to handle taskbar corner radius in desktop windowing mode
This cl includes
	- adding support for listenting into when desktop window mode task is resizing and we need to adjust taskbar corner radius.

Test: Presubmit
Bug: 348335379
Flag: com.android.window.flags.enable_desktop_windowing_mode
Change-Id: Ic6ea3dc1353df7fa4b8079106f20fade0f740683
2024-08-26 11:39:40 -07:00
Tracy Zhou e5be9281c5 Only call notifyUpdateLayoutParams when the params is changed
Bug: 361405157
Test: manual
Flag: com.android.wm.shell.enable_taskbar_on_phones
Change-Id: Ieddcfbc8a8deea9415fe9815926e5fa5552b4be3
2024-08-24 03:10:42 +00:00
Mady Mellor 788a6ebb74 Make an input consumer for bubble bar
Instead of unstashing bubble bar in TaskbarUnstashInputConsumer
handle it in its own input consumer instead. This is a nicer
separation of concerns and simplifies the logic in both places.

Additionally, this fixes issues where swiping up the bubble bar
handle might initiate / be handled by gesture nav (or all apps) when
really any events originating on bubble UI should be managed by
bubbles instead.

Adds some mostly mock'd tests to check that the static method used
to indicate if bubbles should take the event or not works correctly.

Flag: com.android.wm.shell.enable_bubble_bar
Test: manual - test swipe up on bubble bar handle in an app
             - test swipe up on bubble bar on home - it should
               open & all apps / launcher transition shouldn't happen
             - longpress to drag bubbles around on home and overview,
               try the collapsed bar & individual bubbles in the
               expanded bar
             - test dragging on the bubble bar after it's revealed
               in an app
Test: atest BubbleBarInputConsumerTest
Bug: 345488529
Change-Id: I964d213d71de15e4350cff5202dfb9343de1af14
2024-08-19 15:26:37 -07:00
Pat Manning b488c88fa3 Show and hide taskbar tooltips immediately.
Fix: 356352494
Test: TaskbarHoverToolTipControllerTest
Flag: EXEMPT bugfix
Change-Id: Ie7dc1f341cf059bb38f61fa185152cb2555e36b1
2024-08-15 17:59:59 +01:00
Tracy Zhou ab63a991cd Do not animate unfolded bar when folded on certain SysUI flag update
Inspired by b/276864833

Test: https://android-build.corp.google.com/builds/abtd/run/L42600030005659107
Bug: 355973871
Flag: com.android.wm.shell.enable_taskbar_on_phones
Change-Id: I1c06062a17f147c3252048373eedfa53db356572
2024-08-07 22:11:02 -07:00
Tracy Zhou 7a247fb2ac Merge "[Taskbar Performance] Avoid calling notifyUpdateLayoutParams in code logic specifically for unfolded taskbar when folded" into main 2024-08-06 19:14:26 +00:00
Tracy Zhou 2cfc2e1b1c [Taskbar Performance] Avoid calling notifyUpdateLayoutParams in code logic specifically for unfolded taskbar when folded
Bug: 355968858
Test: https://android-build.corp.google.com/abtd/run/L59700030005634589/?referrer=email
Flag: com.android.wm.shell.enable_taskbar_on_phones
Change-Id: I27ee8aefa7dbb42028de4c2de617c0deac4452e8
2024-08-04 09:47:59 -07:00
Mady Mellor 5e8c0d60cc Move bubble icon / content loading into its own controller class
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
2024-08-02 10:30:00 -07:00
Treehugger Robot ca4cc641ce Merge "Fix filtering of DesktopTaskViews" into main 2024-08-01 12:29:09 +00:00
Orhan Uysal 9c0392e08d Fix filtering of DesktopTaskViews
When finding last active tasks we didn't account for the fact that there
could be more than 2 tasks in a GroupTask. This cl fixes that so it
finds the correct last active tasks in desktop cases.

Also make sure that if a  DesktopTaskView is found, we don't launch it
through TaskView#LaunchTasks to create a transition that we can handle
in WM Shell.

Fix: 327447672
Fix: 354171747
Flag: EXEMPT Bugfix
Test: atest SplitSelectStateControllerTest
Change-Id: I71cc630a79f23e5eaad10b3c2284496422ce6994
2024-08-01 10:12:03 +00:00
Mykola Podolian fcde085beb Merge "Integrated new BubbleStashControllers into the existing code." into main 2024-07-31 16:43:17 +00:00
mpodolian 484ff0fe9c Integrated new BubbleStashControllers into the existing code.
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
2024-07-30 18:36:05 -07:00
Jagrut Desai f35cb42732 Merge "Initialize TaskbarFeatureEvaluator and SpecsEvaluator onlyu if customization is on" into main 2024-07-30 22:19:10 +00:00
Jon Miranda e8b47c540f Merge "Add support for taskbar background to wrap around hotseat" into main 2024-07-30 15:59:48 +00:00
Jagrut Desai 5e8b535af6 Initialize TaskbarFeatureEvaluator and SpecsEvaluator onlyu if customization is on
Test: presubmit
Bug: 353841430
Flag: com.android.launcher3.enable_taskbar_customization
Change-Id: I5699e99eee0817327ca66598bfccb622801762ab
2024-07-29 15:14:55 -07:00
Jon Miranda 5dc07d786f Add support for taskbar background to wrap around hotseat
Currently only enabled for app launch animation

Future work is planned:
- Overview to home
- App dismiss
- When QSB is drawn inline

Bug: 345768019
Test: Launch an app, taskbar background and stashed handle will
      first wrap around hotseat before transforming into the
      stashed handle.
      Verified by locally forcing taskbar background and
      stashed handle to always draw.
Flag: com.android.launcher3.enable_scaling_reveal_home_animation
Change-Id: I9ab1870f87247b6a1b53a352ac3eb0183b7a1a1d
2024-07-26 08:10:50 -07:00
Liran Binyamin 2a47a4a68d Fix squished hotseat due to bubbles
Hotseat supports adjusting its layout to make room for bubbles when
needed. There are 2 events that trigger this:
  1. When Hotseat's layout is reset, it checks for whether bubbles
     are showing.
  2. When Bubble Bar visibility changes it notifies hotseat so that
     it can update itself.

Folding the device is recreated triggers both hotseat layout reset
and recreation of taskbar, but the order in which these happen is not
guaranteed. Sometimes hotseat checks for the status of bubble bar
which may be visible if taskbar hasn't been recreated yet.

This change makes sure that hotseat updates itself after taskbar is
recreated and the ui controller is set, so that it cleans up any
adjustments it may have if bubbles are not visible.

This change also updates the way QSB adjusts itself for bubbles.
Previously it always animated from the same start value to a target
value. Now the animation starts from its current width to the target,
so that if the current width is already equal to the target width,
there is no visible change.

Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 349430356
Test: manual
       - unfold the device
       - create bubbles
       - observe hotseat adjusts itself for the bubble bar
       - fold the device
       - observe bubble bar is gone and hotseat shows correctly
Test: manual
       - start a youtube video in full screen
       - swipe from the edge of the screen to show the gesture nav
       - swipe on the gesture nav to go home
       - observe that the QSB does not animate
Change-Id: Ia0267ec518d6af9c3c3b68f17bb20ea67a49e5fd
2024-07-24 12:49:17 -04:00
Treehugger Robot f3e8844b8c Merge "Revert "Fix squished hotseat due to bubbles"" into main 2024-07-23 23:16:48 +00:00
Liran Binyamin f9650bd236 Revert "Fix squished hotseat due to bubbles"
This reverts commit a7821390e2.

Reason for revert: b/354648445

Fixes: 354648445

Change-Id: I069d6d72a59ec273e8b7776512ef9015bdb862c0
2024-07-23 19:56:52 +00:00
Alina Zaidi 3835f93237 [Dev options][DW flag] Update all usage of enable_desktop_windowing_mode flag to use DesktopModeFlags
Test: Current tests pass
Bug: 348193756
Flag: com.android.window.flags.show_desktop_windowing_dev_option
Change-Id: I96107f7c2964ee8261ad0a161163491d6f7d4d39
2024-07-22 20:33:02 +00:00
Jagrut Desai c9174e17a2 Merge "Add support for different container and space calculation logic." into main 2024-07-16 20:16:10 +00:00
Jagrut Desai 84151055b7 Add support for different container and space calculation logic.
This CL includes
	- Taskbar container enum class and interface for container to calculate their space needed.
        - Inits and getter of util classes in taksbar activity context.
        - Taskbar Icons specs not have default margins and minimum touch target specs
	- Updates to the test
        - Logic for calculating the space needed for taskbar container

Test: Presubmit
Bug: 341146605
Flag: com.android.launcher3.enable_taskbar_customization
Change-Id: I89e9d521476902a9027f6fd0cebdc2690b2e5f31
2024-07-16 10:48:51 -07:00
Brian Isganitis fd1cc12054 Merge changes I2b87ab88,I939d8202,Ibedd8cae into main
* changes:
  Introduce rule for changing taskbar pinning preferences.
  Reinject controllers when Taskbar recreates itself.
  Inline showTaskbarFromBroadcast.
2024-07-13 19:01:33 +00:00
Brian Isganitis 1a03740ebd Inline showTaskbarFromBroadcast.
Feels like it should be the activities' responsibility to coordinate the EDU with stashing. All of these methods are also public to TaskbarActivityContext.

Test: Compiles
Bug: 346394503
Flag: EXEMPT refactor
Change-Id: Ibedd8caec59da3b3a14c15d0c948bf1069ca3c6c
2024-07-12 16:00:50 -04:00
Schneider Victor-tulias f67d384f86 Merge "Revert^2 "Add CUJ instrumentation for KQS"" into main 2024-07-12 14:59:45 +00:00
Liran Binyamin e29e31922f Merge "Fix squished hotseat due to bubbles" into main 2024-07-10 16:10:41 +00:00
Schneider Victor-tulias a929c7ab75 Revert^2 "Add CUJ instrumentation for KQS"
0947d9f618

Change-Id: Ifc6f2ae8f447939f274fb6167cc74c0cd2e89652
2024-07-10 14:30:58 +00:00
Liana Kazanova 5de87a8908 Merge "Revert "Add CUJ instrumentation for KQS"" into main 2024-07-09 22:10:40 +00:00
Priyanka Advani 0947d9f618 Revert "Add CUJ instrumentation for KQS"
Revert submission 28049476-kqs-cuj-instrumentation

Reason for revert: Droidmonitor created revert due to b/352144322. Will be verifying through ABTD before submission.

Reverted changes: /q/submissionid:28049476-kqs-cuj-instrumentation

Change-Id: I8bfe7bfe4ce1bd816f138dbd4d5915f837ab97a0
2024-07-09 22:04:38 +00:00
Treehugger Robot 6f7be465c0 Merge "Taskbar running apps: show one icon per task + tap opens that task" into main 2024-07-09 19:01:02 +00:00
Schneider Victor-tulias d0811445d4 Merge "Add CUJ instrumentation for KQS" into main 2024-07-09 17:07:42 +00:00
Gustav Sennton f3108c59ed Taskbar running apps: show one icon per task + tap opens that task
Before this CL we would show only one Taskbar icon per app, making it
impossible (through the taskbar) to switch between several windows of
the same app.
With this CL we add one icon per task instead, making it possible to
bring each task to the front individually.

Flag: com.android.window.flags.enable_desktop_windowing_taskbar_running_apps
Bug: 351118893
Bug: 349790805
Bug: 351156858
Test: Started several Chrome windows -> taskbar has one icon per window

Change-Id: Ia692977effceb9ce339906bf6ca24d73e19d8769
2024-07-09 14:48:04 +00:00
Liran Binyamin a7821390e2 Fix squished hotseat due to bubbles
Hotseat supports adjusting its layout to make room for bubbles when
needed. There are 2 events that trigger this:
  1. When Hotseat's layout is reset, it checks for whether bubbles
     are showing.
  2. When Bubble Bar visibility changes it notifies hotseat so that
     it can update itself.

Folding the device is recreated triggers both hotseat layout reset
and recreation of taskbar, but the order in which these happen is not
guaranteed. Sometimes hotseat checks for the status of bubble bar
which may be visible if taskbar hasn't been recreated yet.

This change makes sure that hotseat updates itself after taskbar is
recreated and the ui controller is set, so that it cleans up any
adjustments it may have if bubbles are not visible.

Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 349430356
Test: manual
       - unfold the device
       - create bubbles
       - observe hotseat adjusts itself for the bubble bar
       - fold the device
       - observe bubble bar is gone and hotseat shows correctly
Change-Id: I58d925c178b02c22583488ae081d478bbbbccc8c
2024-07-08 09:59:26 -04:00
Schneider Victor-tulias acddb58539 Add CUJ instrumentation for KQS
Flag: NONE LEGACY ENABLE_KEYBOARD_QUICK_SWITCH ENABLED
Bug: 339585624
Test: manually checked that CUJ calls were reached
Change-Id: Ifd2b92451c5ed2ebc35834c1d2f495275db3d49a
2024-07-04 10:44:26 -04:00
Brian Isganitis f7ca8d60be Merge changes I6e7c349d,If6c74b3b,Ib276e9dc,Ida0f7cc0 into main
* changes:
  Override DisplayController on main thread.
  Add annotations for manipulating secure settings.
  Don't use UiThreadTest for Taskbar Unit tests.
  Suspend Launcher taskbar while removed for tests.
2024-07-04 02:26:46 +00:00
Pat Manning fc1d2daa63 Prevent taskbar icon tooltip from showing on hotseat transition.
Fix: 350512938
Test: TaskbarHoverToolTipControllerTest
Flag: EXEMPT bugfix
Change-Id: Ifc1647834358366b2d98555138edd4ad6286c16e
2024-07-03 13:15:36 +01:00
Brian Isganitis 160ed1d31a Add annotations for manipulating secure settings.
By default, tests will run with user setup complete and kids mode
disabled.

Test: TaskbarUnitTestRuleTest
Flag: TEST_ONLY
Bug: 230027385
Change-Id: If6c74b3b2c07aa0eac5b6bda933b565351d65188
2024-07-02 21:46:05 -04:00
Tracy Zhou 027600a259 Pipe nav bar transitions logic into task bar
Bug: 349155860
Test: manual
Flag: com.android.wm.shell.enable_taskbar_on_phones
Change-Id: Idaf7ecc7b964a2c406ddf4329b64971b08f5d7de
2024-06-25 22:01:34 -07:00
Tony Wickham 4e1befb394 Handle running task launch properly in desktop mode
- Move logic from KeyboardQuickSwitchViewController to handle
  bringing desktop tasks to front, and still support recent
  tasks for non-desktop mode.

Flag: com.android.launcher3.enable_recents_in_taskbar
Test: manually launch tasks from the Recents section in both
Desktop mode and full screen mode (running vs recent)
Bug: 315354060

Change-Id: I0520351b4d0095a3538c6165acd82a7b4c45a5e2
2024-06-19 00:25:45 +00:00
Saumya Prakash f3e12f2b31 Merge "Change Pinned taskbar corners to be fixed." into main 2024-06-13 20:17:37 +00:00
Brian Isganitis e59b640ffc Merge "Initial TaskbarUnitTestRule with example overlay controller tests." into main 2024-06-12 19:26:17 +00:00
Jon Miranda 1e0ec5ebeb Merge "Delay taskbar background fade in animation - Taskbar background will fade in based on 1. Velocity threshold 2. End target gesture destination" into main 2024-06-12 16:02:20 +00:00
Brian Isganitis 9eaae4b6a4 Initial TaskbarUnitTestRule with example overlay controller tests.
Flag: TEST_ONLY
Bug: 230027385
Test: TaskbarOverlayControllerTest
Change-Id: I858906ece7e67677962ec8b4432bfcca5ec30283
2024-06-11 23:48:13 -04:00
Jon Miranda 4a4b7a8059 Delay taskbar background fade in animation
- Taskbar background will fade in based on
  1. Velocity threshold
  2. End target gesture destination

Bug: 298089923
Bug: 345768019
Test: swipe up fast to go home, note no taskbar bg
      swipe up slow to reveal taskhome, note taskbar bg shows immediately
Flag: com.android.launcher3.enable_scaling_reveal_home_animation DISABLED

Change-Id: I2c16352e1c0c52a8afc49900a39b80383bacde62
2024-06-11 15:39:55 -07:00
Saumya Prakash f9c602d1d9 Change Pinned taskbar corners to be fixed.
Based on new UX guidelines, the corners for the pinned taskbar should be 16 dp.

Fix: 337872323
Test: Put device in 3 button mode and pinned taskbar and observe
sharper, fixed corners. Transient taskbar remains unchanged.
Flag: EXEMPT bugfix

Change-Id: I2130e91dcdc0afb007fde93438f3fa603bc15af8
2024-06-11 22:18:09 +00:00
Tony Wickham a2b510dc23 Move Desktop running apps support into TaskbarRecentAppsController
- Merged DesktopTaskbarRunningAppsController up into
  TaskbarRecentAppsController, which is now initialized directly
- The old TaskbarRecentAppsController was effectively a no-op
  that was always overridden, so merging the one subclass up makes
  things simpler (especially for the follow up CLs which will add
  support for switching between Running and Recent tasks using
  the same underlying data).

Flag: com.android.launcher3.enable_recents_in_taskbar
Test: TaskbarRecentAppsControllerTest
Bug: 315354060
Change-Id: I8411fb832e5dd3d76201d2694dec0b11bd70bbf9
2024-06-11 00:18:23 +00:00
Brian Isganitis e1eaefd537 Initial prototype of tiny taskbar.
Introducing isTinyTaskbar and using in a few places to show Taskbar on
phones.

Disabling for three button mode since the buttons will take up most of
the space. Could also prototype adding meta key as a 4th button in
this case if we feel like it.

Flag: com.android.wm.shell.enable_tiny_taskbar
Test: Manual
Bug: 341784466
Change-Id: Iba07382d9bd5d14fc29ef080a390db561f6fd454
2024-05-23 16:40:58 -04:00
Fengjiang Li 6335460613 [Launcher Jank] Move binder call of RotationChangeProvider to BG thread
Fix: 333771185
Test: record prefetto trace
Flag: NONE not gated
Change-Id: I68a574cbcfed84876fe57fa5be03ca189e569f7e
2024-05-16 15:17:12 -07:00
Chris Göllner 0cd995e4ef Convert SysUiState flags from int to long
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
2024-05-13 14:47:33 +01:00
Ats Jenk 8ed5d288d2 Merge "Get display size from DisplayController instance" into main 2024-05-09 22:58:38 +00:00