Commit Graph

286 Commits

Author SHA1 Message Date
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
Jon Miranda 5dc07d786f Add support for taskbar background to wrap around hotseat
Currently only enabled for app launch animation

Future work is planned:
- Overview to home
- App dismiss
- When QSB is drawn inline

Bug: 345768019
Test: Launch an app, taskbar background and stashed handle will
      first wrap around hotseat before transforming into the
      stashed handle.
      Verified by locally forcing taskbar background and
      stashed handle to always draw.
Flag: com.android.launcher3.enable_scaling_reveal_home_animation
Change-Id: I9ab1870f87247b6a1b53a352ac3eb0183b7a1a1d
2024-07-26 08:10:50 -07:00
Jon Miranda cde962dcb7 Synchronize the app launch and taskbar stash animations.
Introduce FLAG_IGNORE_IN_APP to prevent taskbar from stashing prematurely
due to HomeTransitionListener signal.

Bug: 345768019
Fixes: 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.enable_scaling_reveal_home_animation
Change-Id: Ibb64e0321f33cf81e337fc7c1b2c3edfb23e6ba4
2024-07-19 00:26:13 +00:00
Tracy Zhou 100d8b3ec0 Fix double task bar
I was too excited when I finally got the repro on my device. After some debugging, I found it (ag/27947503)

Fixes: 350790048
Test: with the change, double task bar is gone.
Flag: EXEMPT bugfix
Change-Id: I969dbf5e9d2c5cc277dfb366858023e6eeff14e2
2024-07-16 23:43:38 -07:00
Brian Isganitis 1a03740ebd Inline showTaskbarFromBroadcast.
Feels like it should be the activities' responsibility to coordinate the EDU with stashing. All of these methods are also public to TaskbarActivityContext.

Test: Compiles
Bug: 346394503
Flag: EXEMPT refactor
Change-Id: Ibedd8caec59da3b3a14c15d0c948bf1069ca3c6c
2024-07-12 16:00:50 -04:00
Olivier St-Onge 27c0258caf Stash taskbar when a SysUI dialog appears.
SYSUI_STATE_DIALOG_SHOWING is used by all implementations of SystemUIDialog, which includes QS dialogs and the power menu.
This change is a no-op for QS dialogs as the taskbar is already stashed when the notification panel is expanded.

Fix: 341613141
Test: manually with power menu dialog
Flag: EXEMPT bugfix
Change-Id: I528b30ee45f93a5df2b9d6f4d3b3c32e89935417
2024-06-25 13:25:38 -04:00
Jagrut Desai a7ec8fe852 Merge "Fix taskbar background alpha" into main 2024-06-24 20:14:28 +00:00
Jagrut Desai eba5d919ef Fix taskbar background alpha
Test: Manual
Bug: 345018985
Flag: com.android.launcher3.enable_scaling_reveal_home_animation
Change-Id: Ic675285724bcf64b7bd03f918703defb4dc12a47
2024-06-24 13:11:51 -07:00
Jon Miranda f044d12fcc Merge "Fix taskbar bg delay for the case when user is going home." into main 2024-06-21 23:16:11 +00:00