Move SandboxContext to a separate class.
Remove all MainThreadInitializedObject references in Launcher3 and tests.
Remove ObjectSandbox interface and make RoboApplication extend
SandboxContext
Bug: 361850561
Test: Presubmit
Flag: EXEMPT dagger
Change-Id: I1a8af5e6ae59df44d8ad6732b4d6e949ac402d6c
This Cl includes
- addition of entry/exit callback methods in DesktopVisibilityController.
- taskbar manager now listens to desktop mode changes.
- TaskbarBackrgroundRedererer can now individually animation backgrounds for transient and persistent taskbars
- new channel for taskbar icon alpha added to TaskbarViewController
- new animated float to handle background alpha while we are recreating taskbar with animation.
Solution:
we use the callabck we get from DekstopVisibilty for entry/exit to first change logic of when we are considered inDesktopMode. Upon entry/exit we notify display controller for info change.
we also at notify taskbar manager who is now a listener to the desktop mode change and start the recreate process. TaskbarManager first animates existing taskbar out of user view and then follows the original recreate flow.
Test: Presubmit
Bug: 343882478
Flag: com.android.window.flags.enable_desktop_windowing_mode
Change-Id: Ib827564cacd194f499e7d9b1965e2bb13e3548ab
In flexible split ratios like 90:10 and 10:90, we hide the Overview icon of the smaller app completely. This resulted in a bug where the single remaining visible icon was positioned badly.
Fixed this by adding a check in updateIconPlacement() so that we can skip the two-icon positioning and center the visible icon alone. Also fixed the cases where split select is initiated on a split tile (from Taskbar). Now the correct icon should be shown and centered.
Fixes: 391865942
Flag: com.android.wm.shell.enable_flexible_two_app_split
Test: Single icon is positioned correctly in the middle. When split select is initiated, the right icon is shown and centered. When app chip menus are enabled, the (existing) correct behavior is not changed.
Change-Id: I79842222fc325a7661cbabbb54d277389a317504
On some devices, the long press would trigger due to an overly
long wait in the test. Separately, the small slop tests were
using a slop that would trigger the second stage if that flag was
enabled, so the trigger didn't happen (WAI). We already test 2
stage, so I updated these tests to use a smaller slop that should
not trigger with or without 2 stage.
Test: atest NexusLauncherTests:com.android.quickstep.inputconsumers.NavHandleLongPressInputConsumerTest -- --abi arm64-v8a
Flag: EXEMPT tests
Fix: 398216382
Change-Id: Iec633d01eff63eac8ba072fef4ac1e7b452d8242
Now that `GroupedTaskInfo` propagates the `deskId` from
Shell (see ag/31825217), we need to plumb this value in
Launcher through `DesktopTask`.
Future CLs will use this value in Overview.
Bug: 395911284
Test: m, modified existing tests.
Flag: com.android.window.flags.enable_multiple_desktops_frontend
Flag: com.android.window.flags.enable_multiple_desktops_backend
Change-Id: I396250e0cac761c4c5f7e8b2d6cddbe68e646217
This is the Launcher-side CL of the companion CL ag/31825217.
This CL changes `GroupedTaskInfo` and `RecentTasksController.getRecentTasks()`
such that multiple desktops are supported.
Bug: 395911284
Test: m
Flag: com.android.window.flags.enable_multiple_desktops_frontend
Flag: com.android.window.flags.enable_multiple_desktops_backend
Change-Id: I856768d03460054ccd7056f87e16dcb65ced47fb
Restricting to 200ms+ to reduce the spamminess of these logs.
The idea is to log the latency of LPNH abandons to see the effect
of prewarming at x ms.
Bug: 397484410
Flag: EXEMPT logging
Test: Manual and updated NavHandleLongPressInputConsumerTest.
Change-Id: I93f94ed0757508b68fcb48d61bdd194564dcc573
Call launchAppPair when one of the tasks is in freeform to prevent only
launching one app to the side and choosing the DesktopWallpaperActivity
as the other app pair.
Fixes: 394917143
Flag: com.android.window.flags.enable_desktop_windowing_mode
Test: atest NexusLauncherRoboTests
Change-Id: I3967473fa648f2b245ac8b4f16e6112f6d8f077f
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
Bug: 378096575
Flag: NONE test fix, not actual code editing
Test: DesktopAppLaunchTransitionManagerTest
Change-Id: I6dc335fea156f4e830e9c2cadf3c98ff01fb7c4f
This CL deletes TaskThumbnailViewModel and refactored ThumbnailPosition
to be propagated from the TaskView into TaskContainer.
Fix: 396147816
Doc: go/launcher-overview-unified-taskviewmodel
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: OverviewImageTest
Test: TaskViewModelTest
Test: GetThumbnailPositionUseCaseTest
Test: GetThumbnailUseCaseTest
Change-Id: I9cc68a8007835f0dc4846b9bf71377c81d19b27b
Fix: 348643341
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: Manual - open freeform task and see thumbnail shown during launch. Videos in b/348643341.
Change-Id: I7c9d070e6b39391301a9701f33adef57819e631d
This CL does the following:
- Adds new methods `isInDesktopMode()` and
`isInDesktopModeAndNotInOverview()` to `DesktopVisibilityController`.
- These two methods rely on the new multi-desks impl when the flags are
enabled.
- Makes the existing `areDesktopTasksVisible()` and
`areDesktopTasksVisibleAndNotInOverview()` private, and migrates all
the usages to the new methods.
- The new methods uses the old methods if the flags are disabled.
A companion NexusLauncher CL is at ag/31601363.
Bug: 394182435
Test: m
Flag: com.android.window.flags.enable_multiple_desktops_frontend
Flag: com.android.window.flags.enable_multiple_desktops_backend
Change-Id: I29ff38f984bfe2f68a120f84e1a75fa36b739258
And make DisplayController display id aware
Test: locally tested on Tangor
Flag: EXEMPT refactor
Bug: 392858637
Change-Id: I805cd7323c48a2988c95b9fda7f6cfe4c153860c
This prevents unaccounted for destructions which can lead to a leak in tests after these.
Bug: 395214062
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: TaplStartLauncherViaGestureTests.testStressPressHome
Change-Id: I5cf9214ea9344f7e9d79b61e87269fd6e2c05753
This reverts commit ce9ad064d6.
Reason for revert: <Potential culprit for b/395855288 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted>
Change-Id: I12d1eb66ae03e2638a503c103d0b1fa8a863b6b5
> Using callback patter for various change events instead of routing it
via TIS
Bug: 386288280
Test: Presubmit
Flag: EXEMPT refactor
Change-Id: I95577d6a1c17103cb947ef1200c1c22b68fd1d9c