Commit Graph

240 Commits

Author SHA1 Message Date
Ajinkya Chalke 9086f88aeb Set uiController only in RecentsWindowManager
Fix: 414724376
Test: m
Flag: EXEMPT fixing a recently added logic
Change-Id: I5c489252dd5b8f917c2a278d217f68d8260e4fcc
2025-05-08 12:57:25 +00:00
Will Osborn 51943297be No recents-in-window on default display if enableOverviewOnConnectedDisplays is true
Bug: 413257766
Flag: com.android.launcher3.enable_overview_on_connected_displays
Test: local + presubmit
Change-Id: I0ae36d4bec4cf962e4c71304c82838dbf2bf518f
2025-04-29 15:11:27 +00:00
Sunny Goyal 0b22c5d9ee Cleaning up useActivityOverlay flag
Bug: 409606388
Test: Presubmit
Flag: EXEMPT cleanup
Change-Id: I0c9b4885dc6d8678b85443571d4714921825c1eb
2025-04-16 08:36:50 -07:00
Alex Chau 2c2088ed87 Migrate RecentsDisplayModel to PerDisplayRepository
- RecentsWindowManager/FallbackWindowInterface should be accessed through the respecitve REPOSITORY_INSTANCE or through Dagger
- RecentsDisplayModel is no longer needed as PerDisplayRepository manages lifecycle of all per-display objects

Fix: 410224937
Test: manual and presubmit
Flag: EXEMPT refactor
Change-Id: Iddfddbdcbe15be5075c038d98d02aa79ab55117b
2025-04-12 22:05:38 +01:00
Sukesh Ram 3351985052 Merge "[CD Taskbar] Cache displayId & Consolidate DisplayController methods" into main 2025-04-04 10:57:29 -07:00
Sukesh Ram 5da5e1c9e1 [CD Taskbar] Cache displayId & Consolidate DisplayController methods
TaskbarActivityContext should store displayId and return a cached value to avoid unnessary binder calls.

Flag: com.android.window.flags.enable_taskbar_connected_displays
Bug: 406019031
Test: m
Change-Id: I808352e7098ee731abc7362b2f8f1b7a675457f9
2025-04-03 23:40:45 -07:00
Toni Barzic fd39b428f9 Avoid some unnecessary taskbar recreations
Skips recreate taskbar calls for desktop taskbar on freeform display
feature. When the feature is enabled, the taskbar will be consistent on
freeform displays across different UI states. This means that changes in
launcher visibility, and desktop mode will not expected to change the
flavour of taskbar used on the display, making taskbar recreation
unnecessary in those cases.

Bug: 390665752
Flag: com.android.window.flags.enable_desktop_taskbar_on_freeform_displays
Test: manual on desktop device. verify correct taskbar is shown
      on home screen, in overview, in desktop mode, with fullscreen
      app shown. Verify opening/launching apps from taskbar works
      as expected.

Change-Id: Ib679aa27afc1087226f05d0e914bfe6ff67bd24b
2025-04-04 05:53:07 +00:00
Jon Miranda 9bf65787e9 Prevent NPE when syncing app launch with taskbar stash.
This can happen because when callback is ran after onDestroy.
We call the runnable as part of the cleanup process to avoid
a leak.

Bug: 319162553
Fixes: 405316024
Test: Launch an app, note the two animations are synced
      Verified by locally introducing a startDelay (since otherwise it is hard to tell)
Flag: com.android.launcher3.sync_app_launch_with_taskbar_stash
Change-Id: I961b9a185b2751a8a908d1a7b2cbfdb8bfe0b8f9
2025-03-25 15:18:03 -07:00
Sukesh Ram 19de54a02d Merge "[CD Taskbar] Null Protect Taskbar against onLauncherVisibilityChange crash" into main 2025-03-20 10:26:33 -07:00
Sukesh Ram cb38ecbc8c [CD Taskbar] Null Protect Taskbar against onLauncherVisibilityChange crash
Null Protect Taskbar against onLauncherVisibilityChange crash.

Flag: EXEMPT not adding new behavior
Bug: 403294086
Bug: 404928723
Test: m
Change-Id: I84e899d26f93d484031073d1b63c6757daa8b141
2025-03-20 05:22:18 -07:00
Tony Wickham 81469da43b Have Taskbar listen for RecentsState as well
Also update parallel animation to GestureEndState instead of
assuming it's always a LauncherState.

Fixes: 401382426
Test: manual/existing automated tests
Flag: com.android.launcher3.enable_fallback_overview_in_window
Flag: com.android.launcher3.enable_launcher_overview_in_window

Change-Id: Id10bb2ac5601462a3885d24d6484889ddfeb59d6
2025-03-19 11:59:54 -07:00
Sukesh Ram 16e04e84eb [CD Taskbar] Move DisplayController method calls to BaseTaskbarContext
To ensure consistent, controllable Taskbar in Connected Displays Behavior, move all independent calls to the singleton DisplayController's various methods into one place in BaseTaskbarContext, where we have access to the parent context and can override default behaviors of these methods throughout taskbar if in external display.

Flag: EXEMPT not adding new behavior
Bug: 401553128
Test: m
Change-Id: If9efc0cfc18bac3ee75bb64bf5280ea979d1faa2
2025-03-17 03:15:45 -07:00
Jon Miranda 0779b1fa1b Synchronize the app launch and taskbar stash animations.
Introduce FLAG_IGNORE_IN_APP to prevent taskbar from stashing
prematurely due to HomeTransitionListener signal.

Fixes leak by adding event callback to clear runnable when launcher is
destroyed.

Bug: 319162553
Test: Launch an app, note the two animations are synced
      Verified by locally introducing a startDelay (since otherwise it is hard to tell)
Flag: com.android.launcher3.sync_app_launch_with_taskbar_stash
Change-Id: I684c714bb84fb1717b0e26620f2aa938671eb19a
2025-03-12 16:17:55 -07:00
Sukesh Ram feda773d48 Merge "[CD Taskbar] Make External Taskbar 3-Button & Persistent" into main 2025-03-11 09:32:47 -07:00
Sukesh Ram c166a373a9 [CD Taskbar] Make External Taskbar 3-Button & Persistent
The gesture handle still persists in conjunction with the three buttons. In addition to being forced into three button mode, the taskbar on external displays needs to never enter transient mode. More info and before/after images on bug.

Flag: com.android.window.flags.enable_taskbar_connected_displays
Bug: 399718805
Test: Manual
Change-Id: Iff5c297c8ac4823fa24e7a8e4becd0447224cac0
2025-03-10 13:58:21 -07:00
mpodolian c7390ce4e3 Fixing NPE caused by postponed action relaying on controllers.
This change addresses a NullPointerException (NPE) caused by a postponed
action that relied on controllers. Logic has been added to verify the
availability of controllers prior to checking bubble bar visibility.
Additionally, the destruction sequence of LauncherTaskbarUIController
has been modified: the DeviceProfileListener is now unregistered before
the controller reference is cleared.

Fixes: 396336136
Test: N/A
Flag: EXEMPT bugfix
Change-Id: I1a7f716b3ad0dd4f8431773ea447b95ade4d87ef
2025-03-10 09:29:33 -07:00
Toni Barzic 26ad16592a Taskbar on home should open all apps that support drag to workspace
If taskbar is shown on home screen, have the taskbar all apps button
toggle the launcher activity version of all apps UI. This makes the
behavior consistent with how all apps system action (keyboard shortcut)
works, and addresses a gap in functionality where users are unable to
drag apps from the taskbar all apps UI to the workspace.

Bug: 392118517
Flag: com.android.window.flags.enter_desktop_by_default_on_freeform_displays
Test: On desktop device, toggle all apps from taskbar on home screen,
      drag and app from all apps to workspace.
Change-Id: Ida0f230bf38c6e1e35041556f33de1be85daf785
2025-02-28 21:31:46 +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
Ahmed Fakhry b6ecf5889e Remove all external usages of GroupTask.task1/2 from Launcher3
See go/refactor-group-task for details. This CL removes all the usages
of `task1` and `task2` from `GroupTask` in Launcher3. Follow-up CLs will
remove it from NexusLauncher and remove the fields altogether.

Bug: 388593902
Test: m
Flag: EXEMPT pure refactor with no behavior change.
Change-Id: I902c8135b3a0aae95acf25267b3bcbf286bd4e7d
2025-01-31 17:14:44 +00:00
Mykola Podolian dca789d97d Merge "Fix hotseat QSB squished issue" into main 2024-12-23 14:10:49 -08:00
mpodolian 91cf7b3fc4 Fix hotseat QSB squished issue
Added logic to do not adjust hotseat and QSB if the bubble bar is not
visible.

Test: Manual. Unfold foldable device, open bubbles test application,
trigger bubble via adb, wait until bubble bar is stashed, unfold the
device, go back to the home screen. Observe hotseat and QSB are not
squished.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 384903202

Change-Id: Ib03e02d977de6357069470171952afb20c681f20
2024-12-20 15:40:11 -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
Sunny Goyal ddded547bb Removing TisHelper dependency in taskbar
Taskbar should be able to access TouchInteractionService directly

Bug: 384896306
Test: Presubmit
Flag: EXEMPT bugfix
Change-Id: I2a32d3a7a2b2071645abff72c62635c6575a48a1
2024-12-18 15:02:44 -08:00
Johannes Gallmann c8fd3f23fe Play workspace reveal animation for predictive back-to-home
Bug: 382453424
Test: Manual, i.e. tested back-to-home and back-to-allapps animation on phones, tablets and foldables, including interruptions.
Flag: com.android.launcher3.predictive_back_to_home_polish
Change-Id: I092a74ab2340828e18067ca15c7019c44d30f40b
2024-12-12 14:18:03 +00:00
Treehugger Robot 9632253a4a Merge "Revert "Play workspace reveal animation for predictive back-to-home"" into main 2024-12-11 08:07:22 -08:00
Johannes Gallmann 6b1272ad9f Revert "Play workspace reveal animation for predictive back-to-home"
This reverts commit 09603bfb39.

Reason for revert: Launcher icons are sometimes not visible during the back-to-home animation when immediately swiping back after opening the app.

Change-Id: I13869cf755160986e323365a460f6ebe128008a9
2024-12-11 06:05:39 -08:00
Johannes Gallmann b2683aa902 Merge "Play workspace reveal animation for predictive back-to-home" into main 2024-12-11 01:33:53 -08:00
Johannes Gallmann 09603bfb39 Play workspace reveal animation for predictive back-to-home
Bug: 382453424
Test: Manual, i.e. tested back-to-home and back-to-allapps animation on phones, tablets and foldables, including interruptions.
Flag: EXEMPT bugfix
Change-Id: Iece001b6b9edd9ca7a909e3ccbe8ebdff2e71d9f
2024-12-10 12:42:12 +00:00
Tony Wickham 7614088dc5 Merge "Fix Taskbar 3 Button y position on launcher home pause/resume" into main 2024-12-02 23:33:57 +00:00
mpodolian 24521dd6f8 Only adjust the hotseat if bubble bar is visible.
The change avoids setting up the hotseat if there is no bubble bar.

Fixes: 379809704
Test: EXEMPT bugfix
Flag: com.android.wm.shell.enable_bubble_bar

Change-Id: I26820e3a13a4eaceb0897e44852c0d70aa71918b
2024-11-27 17:12:25 -08:00
Sukesh Ram 3cecfd077c Fix Taskbar 3 Button y position on launcher home pause/resume
When app launcher pauses (not on app entry, but whilst home), we want to move the taskbar buttons to 3-button mode to avoid overlap with any popup UI (usually in the form of bottom sheets). To avoid overriding existing app entry animations, this is only implemented for cases of launcher pause without a launcher stop.

Flag: EXEMPT bugfix
Bug: 373977342
Bug: 374058222
Test: Manual
Change-Id: I727173b0ae7f3f8e23b1da6755ceda6493b311cb
2024-11-28 00:27:42 +00:00
Tony Wickham 4ad57959d6 Merge "End icon alignment early when touching down during 3 button anim to home" into main 2024-11-18 18:53:55 +00:00
Jagrut Desai a9095ca0c8 Merge "Fix launching app animation from launcher all apps." into main 2024-11-15 22:43:39 +00:00
Tony Wickham 5903216275 End icon alignment early when touching down during 3 button anim to home
This will allow Hotseat to handle the touch during the transition.

Test: manually touch Hotseat in pinned/transient/3-button taskbar during
the transition to home, ensure Hotseat handles it in all cases
Flag: EXEMPT bug fix
Fixes: 368419997

Change-Id: I3d998876ed4d8423bdb4fd48fa0d55f719da8d01
2024-11-15 22:17:50 +00:00
Jagrut Desai 596594c684 Fix launching app animation from launcher all apps.
This cl includes
	- making pinned taskbar animate slide in/out animation from bottom of screen.
        - no icon aligment with hotseat when taksbar is pinned

The solution
	- upon state change applied on TaskbarLauncherStateController. offset taskbar background and icons to bottom of screeen and animate with slide in/out effects.

Test: manual, presubmit
Bug: 314279101
Flag: EXEMPT bugfix

Change-Id: Ife336ebd57eb2f60c2bc33ed6a4527c42111808f
2024-11-14 15:51:50 -08:00
Treehugger Robot 90c4e9e62b Merge "Fix hotseat layout on device rotation." into main 2024-11-14 22:10:32 +00:00
mpodolian b563271ff5 Fix hotseat layout on device rotation.
When rotating the device, a few issues were causing improper hotseat
layout:

- BubbleBarController receives an initial configuration before the UI
controller is set.
- The updated device profile, including the correct `isQsbInline` value,
arrives after all controllers are recreated, and the UI controller is
not informed of the device profile update.

Added logic to carry over the bubble bar bubble visibility state to the
new UI controller. Included a call to notify the UI controller of the
device profile update.

Fixes: 378400160
Flag: com.android.wm.shell.enable_bubble_bar
Test: Manual. Have a Tangor device in landscape orientation with the
bubble bar. Rotate the device - observe hotseat and QSB are reduced in
width. Dismiss the bubble bar - observe hotseat and QSB extends to the
full width.
video: http://recall/-/gx8ASgewUeUS3QYohfrd1J/e8e1ZFRQlbHQtUlCXVJbFJ

Change-Id: If180b01c8cdb329cd45d084af63a986c08cf65a1
2024-11-13 17:41:17 -08:00
Ats Jenk 5ad93d97fa Fix bubble bar position on recreate
When device is rotated, taskbar goes through recreate flow.
LauncherTaskbarUIController restores the state for taskbar in-app
display multiprop.
Ensure that bubble bar is positioned within the taskbar bounds.

The multiprop values in LauncherTaskbarUIController for taskbar in-app
display progress can be restored from shared state when the device
rotates. But this means when we receive updates to various indexes, the
progress for that index may not match what is the actual value of the
multiprop. As it relies on the max function.
Make sure we pass along the actual value for in-app display progress
when updating bubble bar and not the value for the index that got
updated.
Also make sure bubble bar translation always updates when updates are
received as this is the only path for bubble bar to receive updates.

Make sure that when we do override bubble bar translation using in-app
display progress, any existing animation for bubble bar translation y is
cancelled. Otherwise the unlock animation was animating the bubble bar
to the incorrect position after unlock.

Bug: 377621110
Flag: com.android.wm.shell.enable_bubble_bar
Test: atest PersistentBubbleStashControllerTest
Test: manual, have bubble bar with 3 button nav, swipe to -1 and rotate
  the device, observe that bubble bar is in the correct position
Test: manual, repeat same test with all apps open, observe that bubble
  bar has correct position after rotation
Test: manual, with gesture navigation, observe that bubble bar has
  correct position on home screen, -1 and all apps after rotation
Change-Id: I66138e003c4b371299e40558fdadc142fbdbbcd5
2024-11-11 23:21:30 -08:00
Ats Jenk 72d176c407 Translate bubble bar when in -1 or all apps
When persistent taskbar is used, bubbles align with hotseat when
launcher state is home. But when user navigates to the -1 page or all
apps, we show the persistent taskbar instead of hotseat.
3 button navigation container shifts in this case. Apply the same shift
to bubble bar.

Bug: 376141984
Flag: com.android.wm.shell.enable_bubble_bar
Test: atest PersistentBubbleStashControllerTest
Change-Id: I2765936e0bac43a790b628e7df2a1b4ddad32cae
2024-11-08 10:23:18 -08:00
Sukesh Ram 99c442b015 Revert "Fix Taskbar Y-Translation with Visible Bottom Sheet"
This reverts commit d82503fc42.

Reason for revert: Introduced crashes

Change-Id: I0956f746e25ccfe655169580fd802d33f99c0652
2024-10-28 17:26:47 +00:00
Sukesh Ram d82503fc42 Fix Taskbar Y-Translation with Visible Bottom Sheet
When bottom sheet is visible, such as in SUW or when app launcher pauses, the taskbar three buttons are translated upwards clashing with SUW UI.

Flag: EXEMPT bugfix
Bug: 358532768
Test: Manual
Change-Id: I0d18bda5cb7aeae894f5058df89cc413e34c00fc
2024-10-14 23:41:38 +00:00
Alina Zaidi 90f9700b4d Merge "[dev_option] Move DestopModeFlags out of android.windows.flags" into main 2024-10-08 20:24:06 +00:00
Alina Zaidi 8c0dc4c655 [dev_option] Move DestopModeFlags out of android.windows.flags
This is to maintain separation of non-generated files from generated flag values.

Test: Current tests pass
Flag: EXEMPT refactoring
Bug: 370777204
Change-Id: If9ca76cbf084da7a37241216f41319610adc52b0
2024-10-08 17:51:23 +00:00
Jagrut Desai 0a65c5bd72 Fix Taskbar to Hotseat Animation for Non-Predective back apps
- Refactored Taskbar animation duration to under one method and added logic to sync animation duration according to enableScalingRevealHomeAnimation.
- Change the interpolator for TaskbarLauncherStateController based on enableScalingRevealHomeAnimation.

Test: Presubmit, Manual
Bug: 369378541
Flag: EXEMPT Bug Fix
Change-Id: I942829b475f91e9102801b758eb7ee0d27eee912
2024-10-07 17:01:00 -07:00
Mykola Podolian 6f231f694d Merge "Update placement of the hotseat according to the bubble bar location." into main 2024-09-27 15:45:04 +00:00
mpodolian dfb48214ea Update placement of the hotseat according to the bubble bar location.
Update the hotseat and Qsb placement according to the 3 nav buttons bar.

Test: Manual.
Set navigation mode to 3 buttons.
On launcher home screen move the bubble bar from one side to another.
Observe that the Hotseat and Qsb moving together with the navigation
bar.
Once moved the bubble bar, expand the bubble bar and collapse it.
Observe how the Hotseat is stashing and un-stashing.
After bubble bar changes position hit the recent apps button, observe
the transition.
On launcher home screen start application with the hotseat icon and exit
opened application. Observe that flying icon comes back to the correct
position in the hotseat.
Video with the above scenarios:
http://recall/-/gx8ASgewUeUS3QYohfrd1J/blTYrKopTyufOcRoPuVpYK
Bug: 346381754
Flag: com.android.wm.shell.enable_bubble_bar_in_persistent_task_bar

Change-Id: Ic8c6acdffbbb111cbe4f3fd6bc60195578d7035d
2024-09-26 19:04:01 -07:00
Jon Miranda 9c09196dfd Revert "Add support for taskbar background to wrap around hotseat"
This reverts commit 5dc07d786f.

Reason for revert: b/360116669

Bug: 345768019
Change-Id: Id70ceed141e2106f746d4a0e68a09675ba45dd28
Fixes: 360116669
Test: open taskbar, open all apps w/ ime, use ime back button
Flag: com.android.launcher3.enable_scaling_reveal_home_animation
2024-09-23 22:38:35 +00:00
Jagrut Desai d3460af469 Merge "Refctor DisplayController#handleInfoChange" into main 2024-09-23 19:43:02 +00:00
Jagrut Desai 94c9fb7cf5 Refctor DisplayController#handleInfoChange
Test: Presubmit
Bug: 369140181
Flag: EXEMPT refactor DisplayController#handleInfoChange
Change-Id: I196fe0e843a60c518d882c25f9fbdcd3cb775ba6
2024-09-23 09:58:30 -07:00