Commit Graph

57 Commits

Author SHA1 Message Date
Wen-Chien Wang
e6816545b6 pin-shortcut: Check desktop state for the feature
This feature aims to work only for desktop mode. Add a check to
the desktop state when checking the aconfig feature flag.

Bug: 375648361
Test: EXEMPT flag update
Flag: com.android.window.flags.enable_pinning_app_with_context_menu
Change-Id: I19eb17d756f17892637bd303464748b505c89190
2025-05-09 00:31:27 +00:00
Wen-Chien Wang
ed04537faa pin-shortcut: Add tests to verify the behavior
Bug: 375648361
Test: This is the cl for tests
Flag: EXEMPT tests
Change-Id: I7209cebcc7e7c34d5f1362121fea5e062e3170de
2025-04-19 07:34:33 +00:00
Wen-Chien Wang
9d962c8c3e pin-shortcut: Move flag to lse
Bug: 375648361
Test: EXEMPT changing flag
Flag: EXEMPT moving flag
Change-Id: I13065db6dcf42e26e87aba27f395e4345c569d6f
2025-04-01 18:29:59 +00:00
Wen-Chien Wang
0f0df91430 pin-shortcut: Make single recent task pinnable from taskbar
With this change, we can now using long-press menu to pin a single
task to the taskbar.

Note that some of the code in this cl is filtered by the flag.

Bug: 375648361
Test: Adding in the next cl
Flag: com.android.launcher3.enable_pinning_app_with_context_menu
Change-Id: Id0f2a9dce03a6c94da2cf8bd0deffd4c48656a7a
2025-03-26 00:49:27 +00:00
Tony Wickham
88a9e18f7c Don't show hover tooltip while an app popup is open
Flag: EXEMPT bugfix
Test: TaskbarHoverToolTipControllerTest
Fixes: 397243128
Change-Id: I1b67d065e9e79e13a5a341a5d133da700ef5f40c
2025-03-17 22:36:27 +00:00
Treehugger Robot
9a993d2b9d Merge "pin-shortcut: Implements the actual pinning functionality" into main 2025-03-07 18:09:10 -08:00
Wen-Chien Wang
5ada92b966 Allow recent task to have long-press menu
Bug: 375648361
Bug: 344657629
Test: Manual, Recording uploaded to buganizer
Flag: com.android.launcher3.enable_pinning_app_with_context_menu

Change-Id: If496c56a3fe47905a3e9947407f51077f180d5a2
2025-03-04 21:47:32 +00:00
Wen-chien Wang
8444f38c92 Merge "pin-shortcut: Tracks hotseat states and adds unpin option for taskbar" into main 2025-03-03 16:50:48 -08:00
Sunny Goyal
39063bf167 Merging some notification dots implementation
Bug: 393703968
Flag: EXEMPT refactor
Test: Presubmit
Change-Id: Ie02311afba85f06fbafd265a5015cd23bd356a36
2025-02-27 08:50:26 -08:00
Wen-Chien Wang
a49081917b pin-shortcut: Implements the actual pinning functionality
This cl implements the onClick function for the pin shortcut, so
that clicking on it will actually pin an app/item to the taskbar.

Bug: 375648361
Test: Manual, Recording uploaded to buganizer
Flag: com.android.launcher3.enable_pinning_app_with_context_menu
Change-Id: Ia0e9464ceb99efd47a9fefd8136b930f908599cb
2025-02-25 00:11:03 +00:00
Wen-Chien Wang
f77c3cac2b pin-shortcut: Tracks hotseat states and adds unpin option for taskbar
This cl adds the unpin option by tracking the hotseat/taskbar state. The
option shown is determined by the following conditions:

1. If the target non-predicted item is on the taskbar, shows
   "Unpin from taskbar"
2. If the taskbar is not full, that is, reaching the limit of the
   available spaces, and the target item is anywhere outside of the
   taskbar, including All apps, shows "Pin to taskbar".
3. If the taskbar is full, simply don't show any shortcut option.

This cl also removes the option that will be shown on Launcher
homescreen or hotseat, as further UX alignment is needed.

One note about why the pin shortcut is not implemented in the
getShortcuts(). The reason is that getShortcuts does not have the
ItemInfo of the triggered item, while the SystemShortcut.Factory doesn't
have the hotseat/taskbar information. The simplest way at this point is
to check all the conditions in the controller and then manually add the
shortcut into the list.

Bug: 375648361
Test: Manual, Recording uploaded to buganizer
Flag: com.android.launcher3.enable_pinning_app_with_context_menu
Change-Id: I7d048bcb1b00f78651e909fbfcd911052a4cd4ef
2025-02-25 00:10:59 +00:00
Ahmed Fakhry
ad6fee6111 Implement isInDesktopMode*()
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
2025-02-12 21:18:51 +00:00
Mady Mellor
7d97e96550 Update code guarded by bubble anything flag to use the helper method
Also adds a dependency on shared shell lib so launcher can use this.

Flag: com.android.wm.shell.enable_create_any_bubble
Test: manual - enable the create flag and check that bubble anything still
               works; same with bubble anything flag
Bug: 389737359
Change-Id: I18322512c9d9883ee5cf473b72df565adea85879
2025-01-15 17:04:10 -08:00
Jagrut Desai
636aba5acb Merge "Don't recreate taskbar in Overview" into main 2024-12-19 13:00:03 -08:00
Jagrut Desai
2f1c1e10de Don't recreate taskbar in Overview
This cl includes
	- when going to overview from Launcher or Desktop Mode don't recreate taskbar and keep it a same variant as the context user was in.
        - user will still be able to pin/unpin taskbar in overview, but it will be recreated to the launcher context.
	- opening app from taskbar context is now aware of if taskbar is in desktop mode and opens app in Desktop Mode when user oepn any app.
        - This cl will not include the animation when taskbar variant is changing between launcher and desktop mode.

Solution
    - if desktop tasks are visible we will open any app from taskbar context into Desktop windowing mode after launching the DesktopTaskView manually. We will launch desktop task from recentview first and upon end of recent animation we will launch the app.

Bug: 343882478
Test: Manual
Flag: com.android.window.flags.enable_desktop_windowing_mode
Change-Id: Ib67e1e7150670f901c07c2df188cde81e7d725dc
2024-12-19 10:50:20 -08:00
Saumya Prakash
1bcaab81e3 Merge "Close the multi instance menu when other things open" into main 2024-12-18 07:38:26 -08:00
Saumya Prakash
54c6cf7c38 Close the multi instance menu when other things open
This change ensures that if open, the Taskbar multi instance menu will close when
another long press app menu is launched, when a folder is opened, or
when Taskbar all apps is opened.

Fix: 383510315
Test: Open Taskbar multi instance menu and ensure it closes when other
views are opening (Taskbar all apps, a folder, and app long press menu)
Flag: com.android.launcher3.enable_multi_instance_menu_taskbar

Change-Id: Id2d64c86a76978af8db56d3a083dc79a677a1a5d
2024-12-16 08:54:42 -08:00
Wen-Chien Wang
2badfc7ebc pin-shortcut: Add pin shortcut to the context menu
This cl adds the pin shortcut option to the context menu, where
it works on Home launcher, hotseat, and pinned apps on the
taskbar.
Currently the option is a no-op.

Bug: 375648361
Test: Manual. Recording uploaded to buganizer
Flag: com.android.launcher3.enable_pinning_app_with_context_menu
Change-Id: I5d1284a6e909fd75f14e81c3ae713da3cdc01ce3
2024-12-13 22:49:52 +00:00
Saumya Prakash
ddd667ac9a Prevent Taskbar all apps from showing multi instance options
This change makes it so that we don't show any multi instance options in
Taskbar all apps. This matches the behavior from regular All apps.

Fix: 382342931
Test: Long press an app icon in Taskbar all apps and ensure multi
instance options don't show up.
Flag: com.android.launcher3.enable_multi_instance_menu_taskbar

Change-Id: I5322df328ee5484168b96831f32c2023521704e6
2024-12-05 01:04:54 +00:00
Saumya Prakash
dbaf1028db Add Manage Windows option to Taskbar long press menu
This change adds an option to the long press menu on Taskbar apps to
view open instances of the calling apps. It will only show on apps that
support multi instance (ex. Chrome).

Bug: 315989246
Test: Manual
Flag: com.android.launcher3.enable_multi_instance_menu_taskbar
Change-Id: Ie1e001c4cec831c751bcbf448aaa68bb90fb24ca
2024-11-15 06:34:28 +00:00
Saumya Prakash
4cf02b8538 Merge "Add "New Window" option to Taskbar menu." into main 2024-09-20 18:20:36 +00:00
Saumya Prakash
8e0ed4b01b Add "New Window" option to Taskbar menu.
This change adds a new menu option to Taskbar that is invoked when long
pressing an icon. It createds a new instance for an app if the app
supports multi instance in Desktop Mode.

Bug: 315344726
Test: Manual
Flag: com.android.launcher3.enable_multi_instance_menu_taskbar
Change-Id: Ibc42fbb1ad485496cd938af730b86e051cea559a
2024-09-19 21:30:43 +00:00
Schneider Victor-Tulias
2b46c945a7 Move DesktopVisibilityController to TouchInteractionService
Moved DesktopVisibilityController to TIS for 3P launcher support.

Flag: EXEMPT bug fix
Fixes: 338063030
Fixes: 357859025
Test: Launched overview and resumed desktop task from desktop mode on 1P and 3P launchers
Change-Id: I64e99a32ed13bcb6e4a81a18c29df2643373dc35
2024-09-11 09:56:35 -07:00
Saumya Prakash
eb950c1f44 Disable split screen option in app menu in Desktop Mode
The split screen app shortcut is not intended to work in Desktop Mode.
This change removes it from Taskbar and all apps in this mode to avoid
a crash.

Fix: 346333758
Test: Launch the app menu for different apps in Desktop mode and in
normal mode. Check that the split option only shows up in normal mode.
Flag: EXEMPT bugfix

Change-Id: I6e2535b41a490ad3eb5c0ebd924c49eaf5028669
2024-08-13 22:22:19 +00:00
Mady Mellor
1cc100844c Add a bubble option to launcher long press menus
- Add a launcher "system shortcut" to bubble deep shortcuts or apps
- For shortcuts, save the shortcut info to use to produce the bubble
- Add an interface so that the system shortcut can call through to
  sysui proxy

Flag: com.android.wm.shell.enable_bubble_anything
Test: manual - enable the flag and try to bubble a shortcut via the
               longpress menu on launcher
             - try bubbling an app on launcher
             - try bubbling an app from the taskbar
Bug: 342245211
Change-Id: I1ef49e1628ba0be9cea05073ecd9cd66bf67f88f
2024-08-08 21:23:13 +00: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
Jeremy Sim
a596f589c4 Allow app pairs in folders
This CL substantially refactors folders to be able to take contents of type AppPairInfo. App pairs can now be moved in and out of folders, and launch from folders.

This CL contains only logic and model changes; animation and style changes (for dropping items into folders, color changes to app pair surfaces, etc.) will be in a following CL. Another CL (hopefully) will contain tests. I'm planning to submit them together, but this patch should also be able to stand alone with no issues (except janky transitions).

Bug: 315731527
Flag: ACONFIG com.android.wm.shell.enable_app_pairs TRUNKFOOD
Test: Manual, more to follow in another CL.
Change-Id: I73732fcaefbdc61bf6e02a5be365962b8bbc3e41
2024-04-03 16:47:42 -07:00
Jeremy Sim
742630c2f8 Reparent folders and app pairs
Previously, app pairs and folders shared a common data model, FolderInfo. Now we need to separate them, so a new type, CollectionInfo, will serve as the parent of both types.

Bug: 315731527
Fixes: 326664798
Flag: ACONFIG com.android.wm.shell.enable_app_pairs TRUNKFOOD
Test: Manual, unit tests to follow
Change-Id: Ia8c429cf6e6a376f2554ae1866549ef0bcab2a22
2024-03-29 15:39:28 -07:00
Sunny Goyal
9f226dff72 Simplyfing SystemShortcut rendering
Instead of opening the popup again when the status of AppSharing
changes, updating the UI in-place.

Bug: 321179015
Test: Presubmit
Flag: N/A
Change-Id: I6d7bd8cdf2014fd881324347e3e01b8e7e84ef1e
2024-01-19 10:48:54 -08:00
Charlie Anderson
69524513db Remove ENABLE_MATERIAL_U_POPUP flag and cleanup dead code
- removes a lot of dead code for the old popup design and especially around adding notifications to popups
- renames several resource files to remove the material_u specification, as it is now the only design

Test: manually run through launcher popups
Bug: 270395516
Flag: ENABLE_MATERIAL_U_POPUP
Change-Id: I462063482206578b4b896a6d405dc2383f2da510
2023-08-30 20:40:25 +00:00
Jagrut Desai
53d953ccd2 Taskbar All Apps Shortcut Menu Acccessibility Focus
Bug: 280657266
Test: manual
Flag: not needed
Change-Id: I2426636067ce3635b8b24b9f5d093dad7d9ddf4c
2023-06-28 14:48:54 -07:00
Jeremy Sim
ab9e66c260 Merge "Allows splitscreen with work & personal version of the same app" into udc-dev 2023-05-13 00:23:23 +00:00
Jeremy Sim
f4835a8884 Force Taskbar to remain stashed when in 3p launcher or recents
This patch makes it so that the transient Taskbar cannot unstash when in 3P launcher.

Previously, the user was able to unstash Taskbar when in 3P launcher, causing a janky-looking UI (3P launchers may implement their own version of Taskbar on the home screen. This also caused problems with certain Taskbar commands like split screen, which provide an entry portal to Pixel-specific implementations.

Fixed by forcing the Taskbar to stay stashed when a 3P Launcher is displayed. The Taskbar is still usable inside of other non-launcher apps. This was done by using TopTaskTracker to check for ACTIVITY_TYPE_HOME or ACTIVITY_TYPE_RECENTS, and disabling Taskbar when these activities are running.

Fixes: 277963491
Test: Manual
Change-Id: Ifc0f3c07e3b76eb610f93205978fbc596bab6253
2023-05-12 00:32:24 -07:00
Jeremy Sim
92e1eeb5f0 Allows splitscreen with work & personal version of the same app
This patch makes changes in various splitscreen controllers to pass userId to the new shell API, to allow same-app splitting with different users.

Fixes: 274973415
Test: Manual
Change-Id: I810b5353aad738c7c275856586b9c521f1554022
2023-05-11 22:10:51 -07:00
Jagrut Desai
29fcd9a636 Taskbar All Apps Icon Shortcuts Popup Accesiiblity
Before we were only applying the icon.clearAccessibilityFocus() only on normal popup and not material u popups, since the flag is turned on for udc, we can move it outside.

There seems to be a bug associated with either nested abstract floating views or the accessibility service where upon opening a nested abstract floating view from another the icon get the focus. This change make the bug littl less visible to use but users will still see this bug if they open the shortcut pop agian withought closing taskbar all apps.

The accessibility delegate was always null when using the TaskbarOverlayContext, now we use TaskbarActivityContext Delegate when in TaskbarOverlayContext.

Test: Manual
Bug: 280657266
Flag: not needed
Change-Id: I631e3aa6e54748c4c8ea2ac7daf5473b198e47d6
2023-05-08 16:25:53 -07:00
Brian Isganitis
44935cf678 Update notification dots in Taskbar All Apps.
AllAppsStore already has the business logic for this, we just were not
piping along to it.

Test: Dismiss notification from tray while All Apps is open, and dot
should go away in All Apps.
Fix: 277925243

Change-Id: I29c5723fd77d22f683f5518bd6e2e3206ddee999
2023-04-12 14:00:54 -04:00
Jon Miranda
9c478b6c29 Add taskbarIconSize to GridOption/DisplayOptions
- Renamed variables to make it more clear what they represent
- DeviceProfile will be source of truth for taskbar
  sizes

Bug: 265144213
Test: phone, multi-display, tablet
Change-Id: Id9c19d15a65894fd7645e0f876a4b6527b713c34
Flag: ENABLE_TRANSIENT_TASKBAR=true
2023-03-24 12:29:11 -07:00
Charlie Anderson
04c6def895 reorder System shortcuts for taskbar and secondary display
Bug: 269343928
Bug: 272418357
Test: locally on device
Change-Id: Iec7f9ad702214c7ab7f49758dbf2463fe63b0324
2023-03-23 15:27:12 +00:00
Jeremy Sim
3c8def9f88 Merge "Fix bug where Taskbar was not auto-hiding after splitscreen launch from icon menu" into tm-qpr-dev 2023-03-21 23:34:34 +00:00
Jeremy Sim
8eed87ac89 Fix bug where Taskbar was not auto-hiding after splitscreen launch from icon menu
This patch fixes a bug where the transient Taskbar was not hiding properly after splitscreen was initiated. When the user is inside an app and launches splitscreen by longpressing on a Taskbar icon and selecting the split button, the transient Taskbar should hide right away. This is an equivalent action to dragging the Taskbar icon up to create a split, and should hide the Taskbar so that other UI elements (like system-level toasts and error messages) can be seen.

The bug occurred because updateAndAnimateTransientTaskbar() is not being called in this specific code path to stash the Taskbar.

Fixed by adding a new call to updateAndAnimateTransientTaskbar upon clicking the splitscreen menu button.

Fixes: 272292897
Test: Manual
Change-Id: I64a9acfc41ddcaba4d9f43eb216458de44b4c9a4
2023-03-21 14:35:36 -07:00
Jagrut Desai
d78b4ecbd0 Clear Accessibility Focus from Taskbar Icon after Shorcut Menu invoked
Test: Manual
Bug: 267698319
Flag: not needed
Change-Id: I2726504094af2abacf1c41089c7bcd4efb588099
2023-03-20 12:41:17 -07:00
Charlie Anderson
8ad9144ca2 adding the new Material U App Shortcut Popup design
Bug: 247880037
Test: tested manually
Change-Id: I66c291df54dfc2a76fc974082a19091deb167f73
2023-02-14 16:03:15 -05:00
Vinit Nayak
49dc6d2712 Launch initial split from taskbar in overview app menu
* Consolidated init calls in SplitSelectStateController
* Also add support to launch from taskbar all apps
* Add logic in SplitSelectStateController to know whether
or not we need to dismiss existing TaskView vs relying
on mSplitHiddenTaskView null check
* Default click handling for SplitShortcut is to start
split selection mode

Bug: 251747761
Test: Initiated split from smart actions, thumbnail app
icon, home, taskbar in overview, all apps. Saw it choose
the latest thumbnail

Change-Id: Ib4f64e619c97615af458a19a9c0efd86c92979d9
2023-01-27 16:46:14 -08:00
Vinit Nayak
eae4c99434 Prevent dropping a drag from TaskbarAllApps in Overview
* Don't close TaskbarAllApps once drag starts
(see comment in code regarding needing multiple shared drag
layers)
* Hide app menu split options for taskbar in overview
* One TODO is that the animation needs to be tweaked
because the scale of the icon when it's returned is too large.
* I think maybe we have to change the
TaskbarDragController#mDragIconSize since that gets directly
set from a resource. Unclear.

Test: Dragged in TaskbarAllApps in overivew and in split
select, app returned to original position and not taskbar
Bug: 251747761

Change-Id: I785f34b0bdb0b0abfc440450494074f8dfe7c31a
2022-11-10 16:17:26 -08:00
Jeremy Sim
f3bfe4e156 Update animations for TM-QPR: Home > OverviewSplitSelect transition
This change updates the animation for initiating a split from the home screen. Also fixes a bug where icons were getting severely pixelated mid-animation.

Fixes: 236759099
Fixes: 244499770
Test: Manual
Change-Id: I56a76cbf286bd30540f3debdcb681d39c890a445
2022-09-19 22:02:54 -07:00
Vinit Nayak
7fb4f997c4 Add metrics sources for split invocation
* See design doc in bug description for
usage/details

Bug: 231369744
Change-Id: I0c0ec11e924e387c523b5ac5feb7cabf78eaa748
2022-09-14 11:58:03 -07:00
Sunny Goyal
f0ff70a2a5 Adding support for easily extending Launcher DragAndDrop support
Bug: 232165524
Test: Verified locally
Change-Id: I3b4f37bc9914de55330662edd678e6fdd0eafece
2022-05-11 21:34:08 +00:00
Tracy Zhou
c2538d748a Add originalView of the menu to SystemShortcut
Split from home animation needs to originate from the app icon instead of the menu item icon. This can be useful for other animations in the future.

Bug: 226395821
Test: N/A
Change-Id: If45d80e347ba275bd550b6acd6ad81b319e753a3
2022-04-11 17:13:35 -07:00
Jeremy Sim
abdf25d226 Implement splitting from Taskbar long-press
Implements the ability to split the screen by long-pressing a Taskbar icon.

Bug: 217964720
Test: Manual
Change-Id: I5d324d8ca912c10cc3c3de21cae98fad546b85ac
2022-04-08 12:15:16 -07:00
Schneider Victor-tulias
fb252e7ce1 Add taskbar TAPL tests
- Added TAPL objects to support TAPL tests for taskbar features
- Added tests for major taskbar features: hiding/showing the taskbar, opening all apps, lauching apps and app deep shortcuts from the taskbar/all apps page, launching apps and app deep shortcuts in splitscreen
- These tests should only run for large devices

Design: go/taskbar-tapl-tests
Test: ran tests locally with invalid configurations and remotely
Bug: 215218813
Change-Id: I3c28c339707467414aa47fa633f87fa0c1fdee57
2022-03-10 13:02:35 -08:00