Commit Graph

294 Commits

Author SHA1 Message Date
Sebastian Franco e1111e28c2 Moving DeviceProfile properties into DeviceProperties data class
Bug: 419264653
Flag: EXEMPT refactor
Test: DeviceProfileDumpTest
Test: All Image tests
Change-Id: I638f88cd76b926917965dbf9e70b5bdfff5971e0
2025-05-23 10:42:26 -07:00
Toni Barzic 2cf0d817a3 Use desktop mode autostashing on desktop devices
Updates few autostashing related conditions to use
`isTaskbarShowingDesktopApps()` instead of `isInDesktopMode()`, as the
former covers the case where the desktop flavour taskbar is shown
consistently (on desktop devices).

Bug: 390665752
Bug: 415991381
Flag: com.android.window.flags.enable_desktop_taskbar_on_freeform_displays
Test: On desktop device, verify that "Always show taskbar" is shown on
      home/in overview/in app outside desktop mode, and verify that the popup
      value shown is consistent with the value in desktop mode. Verify
      that taskbar does not get auto-stashed on home, even if "Always
      show Taskbar" value is false.
Change-Id: I4edfe20f5526210fdf767231d0906875fe04f806
2025-05-14 05:53:51 +00:00
mpodolian a4d2e5aa19 Restore taskbar stashed state on the overview screen.
Added logic to preserve overview screen state on the taskbar.

Fixes: 416418164
Test: Manual. Go to overview with the bubble bar. Expand bubble bar.
Rotate device. Observe the taskbar remains stashed.
Flag: EXEMPT bug-fix

Change-Id: I197c1b7f20b23a6b2a343b18b4da0aa45beb8c52
2025-05-12 10:01:23 -07:00
Jagrut Desai f52ffc1232 Auto-Stashing Functionality for Pinned Taskbar
This cl includes :
- Refactor to remove unpinning/pinning in desktop mode with refactor of DisplayController, TaksbarPinningController, and its tests.
- Combined the auto stashing conditions under one method shouldAllowTaskbarToAutoStash() which takes in consideration isTransientTaskbar, isInDesktop, and Always Show Taskbar option is turned on/off in desktop mode.
- enabled taksbar divider popup support in desktop mode.
- Intorduced animation for pinned taksbar when autostadhing is enabled.
- Enable to onSwipeToUnstashTaskbar for TaskbarInputStashController for pinned taksbar in desktop mode.

Test: Presubmit, Unit, Manual
Bug: 381535785
Flag: com.android.window.flags.enable_desktop_windowing_mode
Change-Id: Ie5ecf3a3c72bf8dfadf2d0c908269305fe5bad0b
2025-04-30 10:39:58 -07:00
Jagrut Desai cef287164f Fix Taskbar offset in launcher
This cl includes: adding support to stash controller to get device locked state. Use different taskbar offset before and after lock screen.

Test: Manual
Bug: 407589216
Flag: EXEMPT bugfix
Change-Id: I55b27d39049458c741efc9bec365cdbc27d4e012
2025-04-01 17:37:59 -07:00
Treehugger Robot ab933e6098 Merge "[CD Taskbar] Move DisplayController method calls to BaseTaskbarContext" into main 2025-03-17 12:11:06 -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 1b62b50a9b Relayer taskbar to application_overlay when shade is opened
When we get the sysui flag for shade expanding, take a
snapshot of the TaskbarDragLayer (after hiding three navigation
buttons), and add a View of that snapshot to the TaskbarOverlay
layer, while simultaneously hiding the real Taskbar.

Bug: 343194358
Test: have pinned taskbar, open shade, note taskbar stays behind shade
Flag: com.android.launcher3.enable_taskbar_behind_shade
Change-Id: I0ad9506f34dd4f3aec3796d94cd3d4a914ff67e5
2025-03-16 11:07:21 -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 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
Mady Mellor 768019357f Allow bubble bar to show on phones if the flag is enabled
* Check for bubble bar on phone being enabled in most places
  tiny taskbar was checking
* Forces taskbar to always be stashed when bubble bar is enabled
* There are a couple of visual issues with the flag enabled:
  - extra space in overview
  - the hotseat is a lil squished on home when bubbles are there

Flag: com.android.wm.shell.enable_bubble_bar_on_phones
Test: manual - enable bubble bar on phones observe that bubble bar
               is enabled and kind of works
Bug: 394869612
Change-Id: I56d3045c78c6c31dcacf16744033b34c9aa5f6e0
2025-02-14 13:09:46 -08: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
Toni Barzic 860c4ee680 Use pinned taskbar with desktop tasks on freeform displays
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: I5c1e21799609c28ec44cc190bfc681934907199f
2025-02-04 13:00:37 -08: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ș c48cc53bc2 Merge "Clarify state names for IME Switcher button" into main 2025-01-23 15:42:45 -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
Cosmin Băieș 0703d614e0 Clarify state names for IME Switcher button
We had a few instances of properties referencing the IME Switcher or its
visibility, when in fact this was related to the button, not the menu.

This clarifies the names for these states, as well as adding some
documentation around where these values are used/passed.

Flag: EXEMPT bugfix
Bug: 366129400
Test: n/a
Change-Id: I962a9c3e1b0686d51e90a86e70fdf21b3b625e58
2025-01-15 16:55:19 +01:00
Brian Isganitis 1e6ffc8a08 Merge "Split up tests by actual hardware keyboard status." into main 2024-12-20 11:36:35 -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
Brian Isganitis a481af5779 Split up tests by actual hardware keyboard status.
Flag: TEST_ONLY
Bug: 230027385
Test: TaskbarStashControllerTest
Change-Id: I63fc433810af3993db5655571a11887eb2c68422
2024-12-10 19:08:36 -05: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
mpodolian f679ba942f Removed stashing hotseat calls.
Removed calls that were stashing and unstashing the hotseat bar.

Flag: com.android.wm.shell.enable_bubble_bar
Test: Manual. Be on Launcher home, have some bubbles. Expand / collapse
bubble bar. Hotseat remains behind the scream view.
Fixes: 373429249

Change-Id: I1a9ba39c8ca11d49340f217f095d5e872b06105b
2024-10-22 15:25:26 -07:00
Jagrut Desai 36bbc4f18f Fix Hotseat stashing on user going to dream
This cl simply delays the taskbar icon alignment animation and stashing animation by duration of dream animation and plays it off screen with 0 duration.

Test: Manual, Presubmit
Bug: 333989177
Flag: EXEMPT bugfix
Change-Id: I35d26b0cf895f9990fcfd73ceebc15b0f9886476
2024-10-17 09:59:26 -07:00
Tony Wickham 7519b7c2e6 Fix Taskbar unlock transition
- There are multiple signals that come just after FLAG_DEVICE_LOCKED
  is removed, and those should still be considered part of the unlock
  transition. We already did this for TaskbarStashController so I copied
  it to TaskbarLauncherStateController.
- Also animate when changing SYSUI_STATE_OVERVIEW_DISABLED, since this
  happens when the device is locked/unlocked and changes the visibility
  of TaskbarView icons.

Test: manually unlock over both home screen and in-app, verify clean
transition without jump (e.g. Hotseat is immediately visible as part of
Workspace, and Taskbar fades in during unlock to an app)
Flag: EXEMPT bug fix
Fixes: 364586744

Change-Id: If0497fcc17bb0ec44294c4ea1163104b4d8be459
2024-10-01 20:09:05 +00: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
Tracy Zhou 649c900004 Merge "Cancel TASKBAR_COLLAPSE/EXPAND CUJ tracking when the stash animation is cancelled" into main 2024-09-27 03:05:40 +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
Tracy Zhou 408b1e0103 Cancel TASKBAR_COLLAPSE/EXPAND CUJ tracking when the stash animation is cancelled
Bug: 362713428
Test: manual
Flag: EXEMPT bugfix
Change-Id: Ib09a26056ed0d4bae64566eed92279241dd84a90
2024-09-25 21:11:37 -07:00
Brian Isganitis bfe4d6b469 Merge changes Ie1b6609b,If115625c,I418675ba,I930e7458 into main
* changes:
  Add tests for TaskbarAllAppsViewController.
  Add tests for TaskbarAutohideSuspendController.
  Add tests for TaskbarScrimViewController.
  Add tests for TaskbarStashController.
2024-09-24 22:53:24 +00:00
Brian Isganitis 3231ba01e6 Add tests for TaskbarStashController.
Test: TaskbarStashControllerTest
Bug: 346394503
Flag: TEST_ONLY
Change-Id: I930e745826f2512d04434ad689a3e42cac7e9901
2024-09-24 18:51:46 -04: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
Tracy Zhou 5b569e764e Merge "Skip all stash animations in phone mode" into main 2024-09-19 01:55:28 +00:00
Tracy Zhou ba6e8ef13d Skip all stash animations in phone mode
Bug: 362713428
Test: manual
Flag: EXEMPT bugfix
Change-Id: Ieab234fc9fc96322800e3e1fb4532c270187a0f5
2024-09-19 01:55:20 +00:00
mpodolian bf7a4db0de Unstash hotseat immediately if go out of the launcher home.
When navigation mode is set to 3 buttons, it is possible for user to
click on recent apps button, so for such scenario taskbar should be
immediately un-stashed

Test: Manual
Set 3 buttons navigation mode. Go to Launcher home. Expand bubble bar.
Press recent apps button. Press the home button. Observe hotseat is
visible. Video:
http://recall/-/gx8ASgewUeUS3QYohfrd1J/fX0gSp18Riw8mYYAw0wj8W

Bug: 367488218
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: Id65fd9add720125a340294311d470f2be50d43f8
2024-09-17 15:47:42 -07:00
Liran Binyamin 69f4974e24 Hide hotseat when bubble bar is expanded.
Added logic to stash the hotseat when on launcher home screen.

Bug: 280494203
Test: Manual:
http://recall/-/gx8ASgewUeUS3QYohfrd1J/fjfjUw296LRXUm9uYqXU4K
all tests in com.android.launcher3.taskbar
Flag: com.android.wm.shell.enable_bubble_bar

Change-Id: I67b298831eaed9c549a2fae7dc5a0d9fae51f7c4
2024-09-16 15:50:28 -07:00
Jon Miranda 86a4b653b9 Add FLAG_DELAY_TASKBAR_BG_TAG to restrict when taskbar bg anim gets delayed.
We set it only when user swipes up to unstash.

Fixes: 360778703
Test: swipe up to home, long click on taskbar icon before it settles
Flag: com.android.launcher3.enable_scaling_reveal_home_animation
Change-Id: I24ff466ee6730e3739d85307363567cfa1455cbf
2024-09-13 19:08:46 -07:00
Treehugger Robot 206e15b286 Merge "Move DesktopVisibilityController to TouchInteractionService" into main 2024-09-12 02:32:00 +00:00
Treehugger Robot 072d2e46b6 Merge "Cancel the stash animation if the stash controller is destroyed before then" into main 2024-09-11 21:01:36 +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
Treehugger Robot 746d3e58fe Merge "Do not delay taskbar background animation when closing taskbar all apps." into main 2024-09-10 23:47:32 +00:00
Jon Miranda ff72d154d7 Do not delay taskbar background animation when closing taskbar all apps.
Fixes: 362379633
Flag: EXEMPT bugfix
Test: open app, unstash transient taskbar, open Taskbar All Apps, close it
Change-Id: I0819ae12bd599be051cb0da4091ab02d0759984c
2024-09-10 12:13:39 -07:00
Tracy Zhou acea86234a Cancel the stash animation if the stash controller is destroyed before then
The TASKBAR_COLLAPSE CUJ is logged when folding the phone before it can't tell if it's folding or going to lockscreen unfolded before taskbar recreation flow kicks in. The animation never gets cancelled, reporting a CUJ that messes up the metrics

Bug: 362713428
Test: manual
Flag: EXEMPT bugfix
Change-Id: I132ad28da982e08edba1909bf9e747a43dc11a84
2024-09-07 11:19:24 -07:00
mpodolian 39383dd5b3 Fix falling tapl tests
Fix the root cause of falling tests.

Bug: 359277238
Flag: TEST_ONLY
Test: TaplTestsQuickstep,TaplTestPersistentTaskbar
Change-Id: I1e3138e26d0ab253dff7a64cbb3253c220a7db1a
2024-09-07 09:13:53 -07:00
Ats Jenk 673b88535c Reuse stash handle alpha animation constants
Taskbar and bubble bar stash handle should use a similar animation for
stash and unstash.
Remove duplicate alpha animation constants and use only the ones defined
in taskbar controller for taskbar and bubble bar.

Bug: 345680453
Flag: EXEMPT refactor
Test: m
Change-Id: I9edf847fc4148bc731051de60a883011e6bfb848
2024-08-30 13:07:24 -07:00
mpodolian dcd76d56c7 Fixed issue with the bottom zone of launcher is not touchable.
Updated logic of the touch area configuration. Only add the taskbar
bounds if the taskbar is being shown inside the app or on overview.

Fixes: 358301278
Fixes: 361653416
Test: Manual:
http: //recall/-/gx8ASgewUeUS3QYohfrd1J/lpzJER3iGI5PpZrQqv7b7
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: Id9902058c5ec873dab6257a34b4c3a87aec5ae6b
2024-08-23 16:43:37 -07:00
Jagrut Desai 0f59383c62 Do not register Taskbar System Action when device is in phone mode
Bug: 359880840
Test: Presubmit
Flag: NONE bug fixing for taskbar system action

Change-Id: Idf34bd677a96cf711e80df1561d49441824ae4ba
2024-08-19 16:00:26 -07:00
Jon Miranda 50a7279ae6 Revert "Synchronize the app launch and taskbar stash animations."
This reverts commit cde962dcb7.

Fixes: 355666644
Reason for revert: Memory leak b/355666644

Change-Id: I2eee00d2d8d65e1e1805ad76fafc7caab8626715
2024-08-13 00:41:01 +00:00
Tracy Zhou ab63a991cd Do not animate unfolded bar when folded on certain SysUI flag update
Inspired by b/276864833

Test: https://android-build.corp.google.com/builds/abtd/run/L42600030005659107
Bug: 355973871
Flag: com.android.wm.shell.enable_taskbar_on_phones
Change-Id: I1c06062a17f147c3252048373eedfa53db356572
2024-08-07 22:11:02 -07:00
Jon Miranda e8b47c540f Merge "Add support for taskbar background to wrap around hotseat" into main 2024-07-30 15:59:48 +00:00