Commit Graph

13396 Commits

Author SHA1 Message Date
Thales Lima
c56864e3c5 Stop intercepting QuickSwitch gesture if there are no fullscreen apps open
Bug: 345296916
Test: Launcher tests
Flag: com.android.window.flags.enable_quickswitch_desktop_split_bugfix
Change-Id: I61cb2958bb4ce3234f9b2e50474e0dad906fe90d
2025-01-27 16:25:00 +00:00
Lingyu Feng
9d98fb90c0 Merge "Add onDisplayRemoveSystemDecorations to TouchInteractionService" into main 2025-01-26 17:30:49 -08:00
Cosmin Băieș
1787eda528 Propagate IME back disposition state to SystemUI
Previously the navigation bar and taskbar were incorrectly using the
back dispositon state as the source of truth for the IME visibility.
While this can only be set while the IME is visible, it can (and is)
also unset despite the IME still being visible. This was fixed in [1].

While the taskbar previously did not take into account the back
dispositon state, by the IME visibility changing, the rotation of the
back button would also change, leading to an equivalent state. However,
with the fix from [1], this would no longer happen, with one scenario
being showing the IME and then the IME swithcer menu, which temporarily
unsets the back disposition mode while the menu is visible.

This propagates the back disposition state to SystemUI, so taskbar can
respond to changes in this value, rather than in the IME visibility.

  [1]: Ic57cea49f5ff49132802083b4f0c9b0e82db1cf7

Flag: EXEMPT bugfix
Test: switch to 3 button nav, show IME, show IME Switcher menu,
  observe back button rotation
  atest NavigationBarTest#testSetImeWindowStatusSysuiState_ImeVisibleImeSwitcherButtonVisible
  NavigationBarTest#testSetImeWindowStatusSysuiState_ImeVisibleImeSwitcherButtonNotVisible
  NavigationBarTest#testSetImeWindowStatusSysuiState_ImeNotVisibleImeSwitcherButtonVisible
  NavigationBarTest#testSetImeWindowStatusSysuiState_ImeVisibleBackDispositionAdjustNothing
Bug: 366129400
Change-Id: Ib05f9263afb754724021b5f3e48520eff5dad398
2025-01-25 01:18:11 +01:00
Cosmin Băieș
e05eaa3cf0 Rename IME_SHOWN states to IME_VISIBLE
This renames the SysUI states related to the IME and IME Switcher button
visibility from "shown" to "visible", to maintain consistency.

Flag: EXEMPT refactor
Bug: 366129400
Test: n/a
Change-Id: I45219e62b633ca984de98df43f5c238604b38109
2025-01-25 01:18:11 +01:00
Cosmin Băieș
c4ddddc2aa Remove redundant references to IME Switcher vis
The taskbar and bubble bar were using both the visibility of the IME and
that of the IME Switcher button to determine whether these bars should
be stashed. However, the IME Switcher button will never be visible while
the IME is not visible, so using its visibility is redundant.

This changes the stashing logic to only take into account the IME
visibility. Note, the IME is also considered visible even when a
hardware keyboard is connected, regardless of any UI being visible or
not. This visibility state determines various system behaviours.

Flag: EXEMPT refactor
Bug: 366129400
Test: open the IME and IME Switcher menu on large screen devices;
  observe taskbar behaviour
Change-Id: Ibcd16896582ca575538d8c1c3d2ab879090d075c
2025-01-25 01:18:11 +01:00
Cosmin Băieș
ee04a3e0fd Remove unused FLAG_ROTATION_BUTTON_VISIBLE
The code related to this flag was removed in [1], but the flag
declaration, and two no-op usages were left over.

  [1]: I1de7fa061a6c6aba9f949a0bcf8cfced84273e3f

Flag: EXEMPT cleanup
Test: n/a
Bug: 366129400
Change-Id: If3d0751e0a9035ba8b0c66250df9339856788171
2025-01-25 01:18:11 +01:00
Eghosa Ewansiha-Vlachavas
432544a529 Merge "[2/n] Hide desktop button in overview for incompatible tasks" into main 2025-01-24 13:01:25 -08:00
Treehugger Robot
196ba82377 Merge "Removing redudntant objects from BgDataModel" into main 2025-01-24 12:00:33 -08:00
Treehugger Robot
d77eed56f4 Merge "Fix for InteractionJankMonitorWrapper NPE" into main 2025-01-24 11:52:09 -08:00
Jagrut Desai
76545448dd Merge "Remove Forced Taskbar Hidden accessibility announcement and forced accessibility focus" into main 2025-01-24 11:36:52 -08:00
Jagrut Desai
defdc6c2d8 Remove Forced Taskbar Hidden accessibility announcement and forced accessibility focus
This cl also removes forced hidden annoucement and focus for Bubble Bar since they are annouced together.
we are keeping the tasksbar show annoucement and focus since it is only way to notify user of taskbar being shown on screen until we figure out proper solution with talkback team.

Test: Manual, Presubmit
Bug: 383928453
Flag: EXEMPT bugfix
Change-Id: I2c32ea393da2509af49e2fce795759a6903b0451
2025-01-24 09:20:07 -08:00
Will Osborn
bd40e543dc Fix for InteractionJankMonitorWrapper NPE
Test: trigger overview locally with recents-in-window flags on
Flag: EXEMPT bugfix
Bug: 366024009
Change-Id: I013ccc93354d6789a9b2633bdc90cce89d83cdcb
2025-01-24 15:22:01 +00:00
Treehugger Robot
b22158206b Merge "Introduce SingleTask and SplitTask" into main 2025-01-24 02:59:37 -08:00
Treehugger Robot
9bc36997c4 Merge "[CD Taskbar] [CD Taskbar] Refactor TaskbarManager dump" into main 2025-01-23 18:37:03 -08:00
Treehugger Robot
446270599c Merge "Add debugging logs to understand why taskbar root layout would be null" into main 2025-01-23 18:28:18 -08:00
Mykola Podolian
10f4747b69 Merge "IPC for app icons drag events over the Bubble Bar" into main 2025-01-23 17:52:50 -08:00
Sukesh Ram
28b7077a38 Add debugging logs to understand why taskbar root layout would be null
Add debugging logs to understand why taskbar root layout would be null.

Flag: EXEMPT not adding new behavior
Bug: 382378283
Test: Manual
Change-Id: I1140360274667a6c3766f03e1f5f1592c09e13e1
2025-01-23 16:05:07 -08:00
Ahmed Fakhry
f87e44376b Introduce SingleTask and SplitTask
See go/refactor-group-task for details. This CL introduces `SingleTask`
and `SplitTask` and makes `GroupTask` abstract.

Bug: 388593902
Test: m
Flag: EXEMPT pure refactor with no behavior change.
Change-Id: I96d0eb0600420ce5cb2fff30ed9d766224b6961e
2025-01-23 23:48:01 +00:00
Cosmin Băieș
c48cc53bc2 Merge "Clarify state names for IME Switcher button" into main 2025-01-23 15:42:45 -08:00
Sukesh Ram
7d916904de [CD Taskbar] [CD Taskbar] Refactor TaskbarManager dump
Update debugging logs for TaskbarManager to be display specific.

Flag: EXEMPT not adding new behavior
Bug: 390004132
Test: Manual
Change-Id: I0222e3bce94bee410b3572d1bc820cc71a2c1a68
2025-01-23 14:28:00 -08:00
Jagrut Desai
7efe9257ce Merge "Fix Taskbar existing app launch in DW" into main 2025-01-23 13:49:20 -08:00
Sunny Goyal
777324ed15 Removing redudntant objects from BgDataModel
Bug: 390572144
Flag: EXEMPT refactor
Test: Updated model tests
Change-Id: Ied8a0bfdbfd324b9fb05724f1fcf67238aa37d16
2025-01-23 12:55:37 -08:00
Uwais Ashraf
c1f65d0d7a Merge "Only cancel CoroutineScope of TaskThumbnailView instead of removing from RV." into main 2025-01-23 12:16:50 -08:00
mpodolian
5d904e0f67 IPC for app icons drag events over the Bubble Bar
Added an IPC call to inform the Bubble Bar in the launcher process
of drag events from the shell.

Bug: 388894910
Flag: com.android.wm.shell.enable_bubble_bar
Test: Manual. Check that events from the shell process successfully
reach the launcher process.

Change-Id: I01615911ce7e4250138aedaa5823f639b9163ff0
2025-01-23 11:10:18 -08:00
Treehugger Robot
9bd2d14fa4 Merge "Add SysUiProxy multiple desktops APIs" into main 2025-01-23 11:08:50 -08:00
Treehugger Robot
ed5910ad52 Merge "Revert "Revert "Migrating RecentsAnimationDeviceState and depend..."" into main 2025-01-23 11:02:36 -08:00
Treehugger Robot
4e09250fd5 Merge "Convert TaskViewTouchController to Kotlin." into main 2025-01-23 09:51:04 -08:00
Jagrut Desai
c900bda8da Fix Taskbar existing app launch in DW
The issue: we were blocking the opening of existing app in when multi-instance flag was tunred on.

The Solution:  we don't actually need to do this since, the multiple taskbar icons of the same app are blocked pm TaskbarRecentsAppsController

Test: Manual, Presubmit
Bug: 391143101
Flag: EXEMPT bugfix
Change-Id: Ic2aa7cca4fd18d9b8cf48a2778c6e666241a4f7f
2025-01-23 09:29:36 -08:00
Eghosa Ewansiha-Vlachavas
c808bb1b23 [2/n] Hide desktop button in overview for incompatible tasks
Flag: NONE bug fix
Test: atest -c NexusLauncherTests:com.android.quickstep.DesktopSystemShortcutTest,
      atest -c NexusLauncherTests:com.android.quickstep.ExternalDisplaySystemShortcutTest
Fixes: 389923274

Change-Id: I82acc85ca57b5454f9eeedd800dcd7da9990f9c8
2025-01-23 17:14:52 +00:00
Uwais Ashraf
b7a66372ff Only cancel CoroutineScope of TaskThumbnailView instead of removing from RV.
Removing TVs from RV was causing failures of CUJs (only in tests) when enabling TTV flag.

Bug: 390156722
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: TaplTestsQuickstep.testOverview
Test: TaplTestsKeyboardQuickSwitch.testLaunchOverviewTask_fromHomeAllApps
Change-Id: I0aae99891941c04b543d1e29db9d6d87bc89ed8e
2025-01-23 16:56:13 +00:00
Ahmed Fakhry
1d112be382 Add SysUiProxy multiple desktops APIs
Add two new APIs for multiple desktops:
- `createDesk()`.
- `activateDesk()`.
Currently these APIs are not hooked up yet. This will be done in
follow-up CLs.

Also removes the unused `getVisibleTaskCount()` API.

Bug: 390715986
Test: m
Flag: com.android.window.flags.enable_multiple_desktops_frontend
Change-Id: I363f0e520f649572156047ebcd4ed6e542d77dc1
2025-01-23 16:41:30 +00:00
Artsiom Mitrokhin
8519be8f3a Merge "Use conditional stroke color for taskbak overflow entrypoint" into main 2025-01-23 08:31:28 -08:00
Treehugger Robot
86864f95c3 Merge "AllApps tray icon tap: use showDesktopApp() for existing Desktop tasks" into main 2025-01-23 03:34:55 -08:00
Pat Manning
b426809ced Convert TaskViewTouchController to Kotlin.
Flag the change to use the previous class.

Fix: 391107339
Test: Manual.
Flag: com.android.launcher3.enable_expressive_dismiss_task_motion
Change-Id: Icf139fc0d6744766da548f2137597b2b020863c1
2025-01-23 10:57:17 +00:00
Treehugger Robot
d32348bddb Merge "Show desktop tasks when taskbar is pinned on home" into main 2025-01-23 02:10:17 -08:00
Lingyu Feng
779bd3cd46 Add onDisplayRemoveSystemDecorations to TouchInteractionService
onDisplayRemoveSystemDecorations() is a new method in IOverviewProxy.aidl

Bug: 352461502
Flag: com.android.server.display.feature.flags.enable_display_content_mode_management
Test: manually (adb shell settings put secure mirror_built_in_display
{1|0})

Change-Id: I42d96ef27fd62d35ae1ca6134bd74752de3a2b5d
2025-01-23 01:30:20 -08:00
Gustav Sennton
1427068342 AllApps tray icon tap: use showDesktopApp() for existing Desktop tasks
When tapping an icon in the AllApps tray, before this CL, we would use
the WM Shell API startLaunchIntentTransition() to launch a task for that
app icon. However, this would break the window limit logic since in WM
Shell (startLaunchIntentTransition()) we think we're launching a new
task, when in fact we're just moving an existing one to the front.
With this CL we instead reuse the showDesktopApp() API whenever the app
we're trying to launch has an already visible / minimized Desktop task.

Bug: 391365151
Test: launch visible Desktop app from AllApps - doesn't overtrigger
window limit
Flag: com.android.window.flags.enable_desktop_app_launch_transitions_bugfix

Change-Id: Ia3638012226fe28c853ec6cfd0523a8fb23b8961
2025-01-23 00:46:08 -08:00
Sunny Goyal
a5fef475a5 Revert "Revert "Migrating RecentsAnimationDeviceState and depend..."
Revert submission 31416515-revert-31332401-recents-device-state-LXBUANUQFL

Reason for revert: Fixing build breakage and resubmitting

Reverted changes: /q/submissionid:31416515-revert-31332401-recents-device-state-LXBUANUQFL

Change-Id: I3b89356df57f1e7ff1a9e364c0d766578e23798c
2025-01-22 18:31:06 -08:00
Toni Barzic
f817372651 Show desktop tasks when taskbar is pinned on home
Updates taskbar and KQS to show (running) desktop tasks when taskbar is
shown on the home screen - adds `shouldShowDesktopTasksInTaskbar` method
to TaskbarDesktopModeController to be used instead of
`areDesktopTasksVisible*()` to determine whether to show desktop tasks
in the taskbar. The method, in addition to desktop tasks visibility,
also considers whether taskbar should be shown on the home screen, and
whether current launcher state is home.

The launcher state is fetched from `TaskbarStashController`, which
already keeps track of this state. This is likely not ideal, but can be
removed in the long term - see http://b/390665752.

Furthermore, updates ReventsModel login not to always filter out desktop
tasks with no non-minimized tasks (which is currently expected behavior
in overview) in `getTasks()`. The filtering is now done by the filter
passed to `getTasks()` method, instead of when processing tasks in the
background. The filter used by default is updated to filter out such
desktop tasks, but callsites from `KeyboardQuickSwitchController` and
`TaskbarRecentAppsController` are updated to use an empty filter, so
they can display desktop tasks when they're all minimized.

Bug: 376711722
Bug: 390665160
Test: Manual on desktop device - verify that taskbar and KQS when shown
on home screen display desktop tasks, including the case all tasks are
minimized.
Flag: com.android.window.flags.enter_desktop_by_default_on_freeform_displays

Change-Id: Iabc22e20bf64aa9a826b4a5952f1edc6ea639cdc
2025-01-22 22:36:02 +00:00
Liana Kazanova (xWF)
9b0a007ae3 Merge "Revert "Migrating RecentsAnimationDeviceState and dependent obje..."" into main 2025-01-22 14:05:04 -08:00
Liana Kazanova (xWF)
fa30e3fc0e Revert "Migrating RecentsAnimationDeviceState and dependent obje..."
Revert submission 31332401-recents-device-state

Reason for revert: DroidMonitor: Potential culprit for http://b/391684419 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.

Reverted changes: /q/submissionid:31332401-recents-device-state

Change-Id: I3986328ee3aa8ebb822f7ef05b9f80ef68872aef
2025-01-22 13:50:08 -08:00
Vinay Joglekar
75a07a3e2d Merge "Consume callback sent from shell when overview task is entered desktop mode from desktop menu" into main 2025-01-22 13:32:46 -08:00
Treehugger Robot
966e15e7c8 Merge "Remove TEMP_PARAMS and instead create a new FullscreenDrawParams in constructor." into main 2025-01-22 12:22:52 -08:00
Anushree Ganjam
efc40ac203 Remove TEMP_PARAMS and instead create a new FullscreenDrawParams in constructor.
Bug: 361850561
Test: Manual
Flag: EXEMPT Dagger
Change-Id: I5d2c289e58ff6151f651a5a6ec6bd8f567cb93d1
2025-01-22 10:16:40 -08:00
Treehugger Robot
cfe0dbf1cd Merge "Migrating RecentsAnimationDeviceState and dependent objects to Dagger" into main 2025-01-22 09:34:25 -08:00
Mykola Podolian
1b6238e90a Merge "Fixed Bubble Bar Cutoff After Unlock" into main 2025-01-22 09:22:55 -08:00
Gustav Sennton
826cbf9c81 Merge "Pass empty bundle instead of null to startLaunchIntentTransition()" into main 2025-01-22 01:03:11 -08:00
Sunny Goyal
d7bfa76bcc Migrating RecentsAnimationDeviceState and dependent objects to Dagger
Bug: 361850561
Flag: EXEMPT dagger
Test: Presubmit

Change-Id: I2c45ec49a913abb0532e83b09e797012e06eb8c4
2025-01-21 23:53:02 -08:00
Treehugger Robot
e3220bec92 Merge "Fix failing tests that are blocking OOM investigation" into main 2025-01-21 23:19:37 -08:00
Treehugger Robot
bd3228ef8e Merge "Update usages of icon shapes in Launcher" into main 2025-01-21 20:51:35 -08:00