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
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
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
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
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
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
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
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
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
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
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
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
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
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
- 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
- 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
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
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
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
- 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
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
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
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
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
- 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
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
* 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
* 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
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
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
Implements the ability to split the screen by long-pressing a Taskbar icon.
Bug: 217964720
Test: Manual
Change-Id: I5d324d8ca912c10cc3c3de21cae98fad546b85ac
- 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