Commit Graph

1508 Commits

Author SHA1 Message Date
Brian Isganitis e1a2b67f2b Revert "Completely destroy Launcher's Taskbar."
Revert submission 28102205

Reason for revert: Potential test breakage.

Reverted changes: ag/28102205

Change-Id: If7fa1ff192a240e753e5c245d591d46e594e5a6f
Flag: TEST_ONLY
Bug: 230027385
Test: Presubmit
2024-07-02 17:00:11 -04:00
Pat Manning 0e89070e1a Show tooltip for AppPairs in taskbar on hover.
Fix: 350744397
Test: TaskbarHoverToolTipControllerTest
Flag: EXEMPT bugfix
Change-Id: Ic2273f17d01d1068ceaddca8a5c115b551b35856
2024-07-02 18:22:44 +01:00
Treehugger Robot 6bf444c3c9 Merge "Only commitRunningAppsToUI if shownTasks changed" into main 2024-07-02 09:07:41 +00:00
Brian Isganitis 035a25c9a7 Merge changes I18245c22,I4c7a6085,I1c17b7f0,I663e5ad7,I9199fd92 into main
* changes:
  Completely destroy Launcher's Taskbar.
  Add context for sandboxing Taskbar window contexts.
  Add tests for TaskbarUnitTestRule.
  Have recreateTaskbar perform recreate on UiThread.
  Move test rules to subpackage.
2024-07-01 16:41:17 +00:00
Brian Isganitis 326ae5e3d1 Completely destroy Launcher's Taskbar.
Just removing it temporarily from the window manager is insufficient.
Taskbar can attempt to recreate itself due to many callbacks being
invoked during tests such as the settings changing. After the tests
finish, the launcher process will restart anyways so taskbar will come
back automatically.

Flag: TEST_ONLY
Test: TaskbarUnitTestRule tests
Bug: 230027385
Change-Id: I18245c224f6d2ffc78d8bf80d30275429074f9b5
2024-06-28 18:38:23 -04:00
Tony Wickham 7829a1ced2 Only commitRunningAppsToUI if shownTasks changed
- Add GroupTask and DesktopTask equals() (with tests)
- Add tests to verify multiple onRecentTasksChanged
  doesn't commitRunningAppsToUI if there's no change
- Add tests to verify commitRunningAppsToUI is still
  called if minimized or running apps set changes

Bug: 348802109
Bug: 348787176
Test: TaskbarRecentAppsControllerTest
Test: GroupTaskTest
Test: log TaskbarView#onMeasure() locally, ensure it is called
much less despite noisy onRecentTasksChanged callbacks
Flag: com.android.window.flags.enable_desktop_windowing_taskbar_running_apps

Change-Id: I3efff7f4492272f88aa2bdbd7cc45bd2bf8156f6
2024-06-28 21:54:37 +00:00
Alex Chau 50293c5227 Merge "Extract TaskContainer to its own class" into main 2024-06-28 12:16:17 +00:00
Brian Isganitis cc44113e57 Add context for sandboxing Taskbar window contexts.
Otherwise, the contexts leave the sandbox, which blocks testing.

Test: TaskbarWindowSandboxContextTest
Bug: 230027385
Flag: TEST_ONLY
Change-Id: I4c7a60858821c8959be2c82dc61a83b7e2f4d1ed
2024-06-27 18:32:26 -04:00
Brian Isganitis c0da543553 Add tests for TaskbarUnitTestRule.
Test: TaskbarUnitTestRuleTest
Bug: 230027385
Flag: TEST_ONLY
Change-Id: I1c17b7f04920676cdfbe481b9435ff5d842181d1
2024-06-27 18:32:26 -04:00
Brian Isganitis c2bb120a87 Have recreateTaskbar perform recreate on UiThread.
Test: Taskbar{AllApps,Overlay}ControllerTest
Bug: 230027385
Flag: TEST_ONLY
Change-Id: I663e5ad7bb37e73381e2ef9d787c80177cfdf7a7
2024-06-27 18:32:26 -04:00
Brian Isganitis e7e98985f7 Move test rules to subpackage.
Test: Compiles
Flag: EXEMPT refactor
Bug: 230027385
Change-Id: I9199fd92450180fa10673c3072dd6e8312fd24d6
2024-06-27 18:32:26 -04:00
Vinit Nayak 8c307e249c Promote testSplitAppFromHomeWithItself to presubmit
Flag: EXEMPT test promotion
Bug: 295225524
Change-Id: Ia8615f2380fc5aa27316ecc8a4ff567ac3facb42
2024-06-27 18:37:27 +00:00
Liran Binyamin fde4fdc472 Merge "Add a new bubble at limit while expanded" into main 2024-06-27 17:26:34 +00:00
Vinit Nayak d900d39412 Merge "Add set correct window corner radius on split invocation animation leashes" into main 2024-06-27 16:42:54 +00:00
Liran Binyamin 2e1dd4644b Add a new bubble at limit while expanded
Handles adding a new bubble and removing an old bubble when the bar
is expanded and at the limit.

Demo when bar is on right: http://recall/-/bJtug1HhvXkkeA4MQvIaiP/dxhFKrctdR5I2F6Pvho6u8
Demo when bar is on left: http://recall/-/bJtug1HhvXkkeA4MQvIaiP/er4ZGQfg8OKHZ2aTi9OJ9N

Flag: com.android.wm.shell.enable_bubble_bar
Test: demos
Test: atest BubbleViewAnimatorTest
Fixes: 345795791
Change-Id: I4e75d61c8afdb81340823a1d77e55b15e3fd6bc0
2024-06-27 10:36:16 -04:00
Alex Chau 8474edcf13 Extract TaskContainer to its own class
Bug: 335606129
Test: Manual
Flag: EXEMPT refactor
Change-Id: I0ac924652079c69737cd37a9233080b432ecc16e
2024-06-27 14:26:14 +01:00
Vinit Nayak 093978a6ba Add set correct window corner radius on split invocation animation leashes
Test: Enter split anim from overview on phone is smoother than
Michael Jackson's moonwalk
Bug: 349387413
Flag: EXEMPT bugfix

Change-Id: I01fd1eee6fe111623a22dd6aaf130837ebbdeeb1
2024-06-27 03:58:42 +00:00
Vinit Nayak 09f06c29da Merge "Promote testSplitTaskTapBothIconMenus to presubmit" into main 2024-06-27 03:35:47 +00:00
Vinit Nayak 233ab23db3 Promote testSplitTaskTapBothIconMenus to presubmit
Bug: 288939273
Flag: EXEMPT test
Change-Id: I8aec88fbba33dd94afd348ebc4ebcb9b75ab3c04
2024-06-27 03:35:34 +00:00
Treehugger Robot 2f90296717 Merge "Use snapshotView references in TaskContainer when possible" into main 2024-06-26 18:01:54 +00:00
Alex Chau c06bc41ee0 Use snapshotView references in TaskContainer when possible
- Moved majority of TaskContainer.thumbnailViewDeprecated usage to TaskContainer.snapshotView, so they'll cover the new TaskThumbnailView as well
- There are afew location left that will be handled as a follow-up
- Removed TaskThumbnailView's splitTranslation and use translation directly as it's the only translation we use

Bug: 336612373
Test: Ensure all Task CUJs still work without refacorting
Test: Ensure major Task CUJs work with refactoring
Flag: EXEMPT refactor
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Change-Id: Ieb52236bc503ce0d0a511249978c1821a82d406e
2024-06-26 16:07:57 +01:00
Treehugger Robot ab26fef0f2 Merge "Ignore minimized Desktop apps in Overview." into main 2024-06-26 10:52:29 +00:00
Gustav Sennton d06e8dc8a3 Ignore minimized Desktop apps in Overview.
For each desktop session, Overview shows a single tile with multiple
desktop tasks. With this CL avoid showing minimized tasks in that tile.

Bug: 333013317
Flag: com.android.window.flags.enable_desktop_windowing_mode
Test: manual: ensured minimized desktop tasks are not shown in Overview

Change-Id: I48cb6826849abf225c0fe4448ca7b0b13afea44e
2024-06-26 08:53:15 +00:00
Brian Isganitis 1812030be0 Merge "Take in test instance as field." into main 2024-06-25 23:02:32 +00:00
Brian Isganitis a07a7c2f91 Take in test instance as field.
This refactor makes it simpler for the rule to keep track of the test
instance (immutable). Having the rule be a TestRule instead of a
MethodRule also simplifies nesting TestRules within this implementation
(future CLs).

Test: Taskbar{AllApps,Overlay}ControllerTest
Flag: EXEMPT refactor
Bug: 230027385
Change-Id: Icf587202242fcb4526946d9c7619e5be4f59154e
2024-06-25 17:16:35 -04:00
Brian Isganitis 5ee679dbb8 Merge "Introduce TestRule for setting Taskbar mode." into main 2024-06-24 20:17:24 +00:00
Brian Isganitis cbc07b4282 Introduce TestRule for setting Taskbar mode.
This rule is separate from TaskbarUnitTestRule, because mode isn't
relevant to all Taskbar controllers.

To keep MainThreadInitializedObject behavior consistent across
Robolectric and Instrumented environments, context needs to be a SandboxContext.

Test: TaskbarModeRuleTest
Bug: 230027385
Flag: TEST_ONLY
Change-Id: Iae2e3627b9002e13ee6da135113e7b8bcc4e7d47
2024-06-24 14:34:45 -04:00
Treehugger Robot c1391754ff Merge "Enable currently functional multivalent tests" into main 2024-06-24 01:17:40 +00:00
Uwais Ashraf c902df4e41 Enable currently functional multivalent tests
Flag: EXEMPT test-only
Bug: 325088619
Bug: 325088638
Bug: 325088328
Test: Presubmit
Test: Gradle robolectric run
Change-Id: I20e77a401ed98c97168bf9c752eacc93c3c545dd
2024-06-22 22:14:30 +00:00
Treehugger Robot 0abbc4af14 Merge "Add scrim to TaskThumbnailView" into main 2024-06-22 01:22:31 +00:00
Tony Wickham 74fc385999 Merge "Load and draw Recent/Running tasks that aren't in Hotseat" into main 2024-06-21 21:01:41 +00:00
Tony Wickham a79bc15cd0 Merge changes from topic "taskbar-running-minimized" into main
* changes:
  Maintain Running Tasks order in Desktop mode
  Change running apps section to use GroupTask instead of AppInfo
2024-06-21 21:00:01 +00:00
Treehugger Robot f4934108bb Merge "Fix bubble bar bounce animation issue" into main 2024-06-21 20:44:10 +00:00
Uwais Ashraf 0d9b547471 Add scrim to TaskThumbnailView
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Fix: 334832108
Fix: 348195366
Test: Manual - checked scrim in un/folded
Change-Id: I758a26e9b4498dac509b75afbe059784557b3f8c
2024-06-21 16:27:01 +00:00
Liran Binyamin cdc3e4d8b4 Fix bubble bar bounce animation issue
The bubble bar bounce animation was assuming that the initial translation
of the bubble bar is also the translation the bubble bar should have at
the end of the animation. This is normally correct except when the
bubble bar is initially hidden. What happens in that case is that the
translation is 0 so the bubble bar gets animated incorrectly.

This change gets the target animation from stash controller.

ABTD 100 runs: https://android-build.corp.google.com/abtd/run/L26900030004638356/

Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 347856510
Test: atest BubbleBarTest#selectDifferentBubble
Change-Id: I661bf006c6f23ff871c221f8d9da74d79a2dff11
2024-06-20 18:03:52 -04:00
Liran Binyamin 8af78f19a3 Merge "Animate bubble removal from the bar" into main 2024-06-20 20:57:34 +00:00
Liran Binyamin 7b426af15f Animate bubble removal from the bar
This change creates a BubbleAnimator class that handles animating
both new bubbles in and removed bubbles out.

Demo: http://recall/-/bJtug1HhvXkkeA4MQvIaiP/dMHGANplWjGC5HZT6MXyA4

Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 345687290
Test: atest BubbleAnimatorTest
Test: see demo

Change-Id: Ie060495f4b1421d1c8af48a861cd3e12dd0adbe8
2024-06-20 14:57:03 -04:00
Alex Chau 91602f658c Move testQuickSwitchFromHome to possubmit
Bug: 325659406
Test: presubmit
Flag: EXEMPT test
Change-Id: Iccc2c1f06da85a0df79b5f3e0881535ce226f953
2024-06-20 13:50:19 +01:00
Tony Wickham c5995c8f6d Load and draw Recent/Running tasks that aren't in Hotseat
- Re-support GroupTask as a tag on TaskbarView BubbleTextViews
- Can tap to launch (startActivityFromRecents) or drag and drop
- Move divider when enable_recents_in_taskbar is true

Behavior:
- While in Desktop mode, all open tasks show up in TaskbarView,
  either in the Hotseat section or the Running apps section
  past the divider. Each one also has a running line indicator.
- While in Fullscreen mode, up to 2 Recent apps that are not
  part of Hotseat will be added to the right of the divider.

Flag: com.android.launcher3.enable_recents_in_taskbar
Test: TaskbarRecentAppsControllerTest
Bug: 315354060
Change-Id: I2e2870cca434b51f276a701860edb32069109159
2024-06-19 00:27:30 +00:00
Tony Wickham 7c7c90528d Maintain Running Tasks order in Desktop mode
Fixes: 345034545
Test: TaskbarRecentAppsControllerTest
Flag: com.android.launcher3.enable_recents_in_taskbar
Change-Id: I4ab856c5293625c5279d4713450e5ea2d3b0ed85
2024-06-19 00:27:30 +00:00
Tony Wickham 2021727f1e Change running apps section to use GroupTask instead of AppInfo
- No longer bind All Apps to TaskbarRecentsController, and register
  RecentsModel.RecentTasksChangedListener instead
- The source of truth for "running tasks" in Desktop mode is the
  DesktopTask#tasks list itself, instead of
  RecentsModel.RunningTasksListener (which is no longer used)
- Added TaskInfo.TaskKey#isVisible to distinguish minimized running apps
- Next CL will hook up the UI for Recent/Running tasks that are
  not part of the Hotseat.

Flag: com.android.launcher3.enable_recents_in_taskbar
Test: TaskbarRecentAppsControllerTest
Fixes: 335398876
Bug: 315354060
Change-Id: I1313f97a791c5c0c1db7443a5d4f1d5bc761981f
2024-06-19 00:27:30 +00:00
Riddle Hsu d76b06359f Merge "Let sender permission allow background launch when starting recents" into main 2024-06-18 01:48:41 +00:00
Liran Binyamin ad2f15c5b2 Merge "Implement new bubble animation when collapsed" into main 2024-06-18 00:16:08 +00:00
Shamali Patwa 0fb4cce4a7 Merge "Consider WidgetSections for suggestions in standalone picker" into main 2024-06-17 23:55:16 +00:00
Jagrut Desai 18087d8b6f Merge "Add orientation logic to taskbar icon specs" into main 2024-06-17 20:28:33 +00:00
Liran Binyamin 9e15f07c1c Implement new bubble animation when collapsed
Bounce the bubble bar when a new bubble is received while the bubble
bar is collapsed.

Demo: http://recall/-/bJtug1HhvXkkeA4MQvIaiP/fn7NWNY3htuR6K3wxhfcK2

Flag: com.android.wm.shell.enable_bubble_bar
Bug: 280605790
Test: atest BubbleBarViewAnimatorTest
Change-Id: I4c622454fd99f6bb5a332b3fe4aa2764c8af93af
2024-06-17 16:24:59 -04:00
Shamali P 77e42868da Consider WidgetSections for suggestions in standalone picker
This cl address the problem for standalone picker (follow up to match
ag/27720721) to ensure widgets that aren't in section of their owning
package didn't appear in suggestions

Bug: 345520128
Test: Unit tests
Flag: EXEMPT bugfix
Change-Id: Ia0ef96c5be77db56b84c76ace498125d07f4be42
2024-06-17 20:02:18 +00:00
Jagrut Desai 67b8de56ce Add orientation logic to taskbar icon specs
Test: Presubmit
Bug: 341146605
Flag: NONE Taskbar Customization
Change-Id: Ia86d61fd6ac38d03e45b23ea2a424a5b0b33c12b
2024-06-17 11:43:04 -07:00
Brian Isganitis 0e709b9a9d Merge "Add test for toggleSearch." into main 2024-06-17 18:25:17 +00:00
Riddle Hsu a37161182e Let sender permission allow background launch when starting recents
Currently the recents activity is started by a pending intent created
by launcher. And the sender is system server.
(HIERARCHY_OP_TYPE_PENDING_INTENT in WindowOrganizerController)

If the intent creator doesn't have visible windows, e.g. launcher is
occluded by its another embedded of another package, then the background
launch policy will check whether the intent sender is allowed. But
system server also doesn't have visible windows, which causes
BackgroundActivityStartController#
checkBackgroundActivityStartAllowedBySender to return BalVerdict.BLOCK.
Which will set MOVE_TO_FRONT_AVOID_PI_ONLY_CREATOR_ALLOWS to disallow
moving the target task to front.
See I72a6c22a5fb27aeac52a4e5d46c6a16e28ee6757 for the block policy.

Although currently the recents activity can still move to front because
some places miss to check blocking the launch. Then it is like just
using a security hole.

By adding the background launch permission hint to ActivityOptions,
BackgroundActivityStartController#hasBalPermission will check if the
real caller has permission START_ACTIVITIES_FROM_BACKGROUND. Then
it will pass because the intent sender is system server.

Bug: 341618283
Flag: EXEMPT bugfix
Test: atest NexusLauncherTests: \
            com.android.quickstep.TaskAnimationManagerTest
Test: Swipe to minus one screen. Click a news item to Launch chrome.
      Swipe from bottom to return to home. There should not have an
      error log:
      "Without Android 15 BAL hardening this activity would be moved
       to the foreground ... only the creator of the PendingIntent
       allows BAL. realCallingPackage: android.uid.system:1000 ..."
       (from ActivityStarter#logPIOnlyCreatorAllowsBAL)
Change-Id: I19153f6553c09421bca248d4ff9110d168b34f98
2024-06-17 17:52:16 +08:00