Commit Graph

151 Commits

Author SHA1 Message Date
Mady Mellor fd6772ab84 If we're going to overview we might need to unstash
Flag: com.android.wm.shell.enable_bubble_bar
Test: atest NexusLauncherTests:PersistentBubbleStashControllerTest
Test: atest NexusLauncherTests:TransientBubbleStashControllerTest
Test: manual - swipe up to overview from home & from in an app, ensure
               bubble bar is unstashed
             - switch between home / overview / in app in transient
               and persistent taskbar to make sure things work
Bug: 368364143
Change-Id: I34c22b000d1fcc75489ea6da497f14def9649a20
2024-10-01 11:57:26 -07: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
Treehugger Robot b8526d7798 Merge "Fix taskbarIconAlignment not being part of animToLauncher" into main 2024-09-19 22:27:56 +00:00
Tony Wickham 0d1b9ea40a Fix taskbarIconAlignment not being part of animToLauncher
Previous sequence of events when swiping home:
- AbsSwipeUpHandler getParallelAnimationToLauncher() ->
  TaskbarLauncherStateController#createAnimToLauncher(NORMAL, ...)
  (but mLauncherState is still BACKGROUND_APP, so we don't play the
  icon alignment anim here)
- AbsSwipeUpHandler#createWindowAnimationToHome ->
  LauncherHomeAnimationFactory#createActivityAnimationToHome() sets the
  state to NORMAL.
- TaskbarLauncherStateController now animates the icon alignment in
  response to the state change, but it's a separate animation from the
  one created in createAnimToLauncher()
- If you touch down during the transition to home, we finish the
  animation that was returned by createAnimToLauncher(), but that
  doesn't include iconAlignment so that part still plays on top

To fix this, we set mLauncherState = toState in createAnimToLauncher so
that the applyState picks it up and does the iconAlignment as part of
that animation.

Test: manual: swipe to home and immediately swipe up to All Apps (or
down for notifications or right for -1), verify no Taskbar on top
Flag: EXEMPT bugfix
Fixes: 360116367

Change-Id: Icd9e4659812c9d77598b9214f51592ce2136b265
2024-09-18 22:59:15 +00:00
Toshiki Kikuchi 6ddfe9b179 Allow to show pinned taskbar when Launcher is visible
This CL allows freeform-first devices to lock the taskbar in a pinned
state when Launcher is visible.

Bug: 361419732
Flag: com.android.window.flags.enter_desktop_by_default_on_freeform_displays
Test: DisplayControllerTest
Test: manual

Change-Id: Ic0d2740e33fee19c676d88aa2bcf370eb64366e8
2024-09-18 10:49:52 +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
Ats Jenk 29496de39d Merge "Show bubble bar when hotseat icons are visible" into main 2024-09-16 15:41:03 +00:00
Ats Jenk 9b4484c974 Show bubble bar when hotseat icons are visible
Fixes a flicker with bubble bar briefly attempting to stash when swiping
up on home screen.
Keeps bubble bar visible when dragging an icon on home screen.

Bug: 365561149
Flag: com.android.wm.shell.enable_bubble_bar
Test: swipe up on home screen, check that bubble bar does not stash
Test: drag a home screen icon, check that bubble bar does not stash
Change-Id: Ic8f4bf6051ed437167f369e8581a631b73e839b2
2024-09-13 11:28:37 -07:00
Treehugger Robot 206e15b286 Merge "Move DesktopVisibilityController to TouchInteractionService" into main 2024-09-12 02:32:00 +00:00
Treehugger Robot e698c7237a Merge "Disallow long click on taskbar icons while animating home." into main 2024-09-11 19:08:24 +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
Jon Miranda 11a8ed8a53 Disallow long click on taskbar icons while animating home.
Fixes: 360778703
Test: swipe up to home, long click on taskbar icon before it settles
Flag: EXEMPT bugfix
Change-Id: I3c46b43b6b9c44b91c2516c9db453d3fa3692b00
2024-09-10 11:17:46 -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
Jagrut Desai 62fb48d247 Merge "Extend DesktopVisibilityController Funcationality to handle taskbar corner radius in desktop windowing mode" into main 2024-08-28 23:36:08 +00:00
Tracy Zhou 111d05c913 Skip taskbar animations from launcher state changes in phone mode
Based on https://b.corp.google.com/issues/361593564#comment4

Bug: 361593564
Test: manual
Flag: EXEMPT bugfix
Change-Id: I93d1cfc3b0eaec6b9496d13acc14d20c4de6d3b1
2024-08-27 09:33:05 -07:00
Jagrut Desai e62cb76491 Extend DesktopVisibilityController Funcationality to handle taskbar corner radius in desktop windowing mode
This cl includes
	- adding support for listenting into when desktop window mode task is resizing and we need to adjust taskbar corner radius.

Test: Presubmit
Bug: 348335379
Flag: com.android.window.flags.enable_desktop_windowing_mode
Change-Id: Ic6ea3dc1353df7fa4b8079106f20fade0f740683
2024-08-26 11:39:40 -07:00
Bryce Lee 6668ab9cab Show Taskbar when Glanceable Hub is showing.
This changelist ensures that the Taskbar is not hidden when the
Glanceable Hub is showing. Logic for hiding the Taskbar when dreaming
was suppressing it from showing when Glanceable Hub was present. The
surrounding condition has been updated to now not trigger is Glanceable
Hub is showing.

Test: manual - verified Taskbar was properly displayed and hidden
      between glanceable hub and dreaming.
Flag: EXEMPT bugfix
Fixes: 353803584
Change-Id: I58a61617baff65041757ae0df96687a071120880
2024-08-23 13:31:09 -07:00
Tony Wickham 5c32af7e5b Fix Taskbar being visible over Hotseat when recreated in Overview
Debugging locally, it seems there were a couple of state changes
and the last one (which is correct) was getting clobbered by a
previously destroyed instance of TaskbarLauncherStateController.
Fixed this by updating the isDestroyed() call which previously
only checked TaskbarActivityContext to now check
TaskbarLauncherStateController's destroyed state directly. This
is needed because TaskbarLauncherStateController is part of
LauncherTaskbarUIController which can be destroyed independently
of the other Taskbar controllers when Launcher is destroyed.

Also fix a debug log that was not updated long ago in ag/21122190

Flag: EXEMPT bugfix
Test: Go to overview, change Font Scale or Dark Theme from Quick
settings, ensure Taskbar is not visible over Hotseat
Fixes: 302923055

Change-Id: I1299462955b51a2bf931f022177045b1cec039c5
2024-08-21 21:43:54 +00:00
mpodolian 9367722dbc Fixed issue when hotseat icons are not touchable
The issue existed because of taskbar insets where set to the full height
of bubble and task bars. Added check that only adds bars touch area if
the user is currently not on the launcher home screen. Commented failing
tests.

Bug: 358301278
Bug: 359277238
Flag: com.android.wm.shell.enable_bubble_bar
Test: Manual.
http://recall/-/gx8ASgewUeUS3QYohfrd1J/hcgYuHUJwfbhlvPRsvdWYf
The touch area is within the red rectangle.

Change-Id: I3c2ad3633a049972b93fe5c5e45efd557c220e1f
2024-08-16 13:00:03 -07:00
Tracy Zhou 2cfc2e1b1c [Taskbar Performance] Avoid calling notifyUpdateLayoutParams in code logic specifically for unfolded taskbar when folded
Bug: 355968858
Test: https://android-build.corp.google.com/abtd/run/L59700030005634589/?referrer=email
Flag: com.android.wm.shell.enable_taskbar_on_phones
Change-Id: I27ee8aefa7dbb42028de4c2de617c0deac4452e8
2024-08-04 09:47:59 -07:00
Tracy Zhou 2003bc8dd8 Do not synchronizeNextDraw in phone mode
Bug: 355973871
Test: Needs to verify with perfetto traces
Flag: com.android.wm.shell.enable_taskbar_on_phones
Change-Id: I84c258020951274915792d75d67c263135bbf2a9
2024-07-29 18:27:09 -07:00
Schneider Victor-tulias e2bdd1568c Finish the running recents animation when the user locks their device mid-animation.
Flag: NONE bug fix
Fixes: 319022192
Test: locked device during home animation and checked temp logs
Change-Id: I884694a4318348259b04c3b6073d3ea37eff98fb
2024-06-10 11:48:34 -04:00
samcackett 76331b6c17 Add metric logging for fake landscape usage
- Reuse existing TaskSwitcherContainer for Overview metric logging
- Log current orientation state for Overview when interacting with
gestures or via three button nav
- Log current orientation state on each phone rotation

Bug: 332870519
Test: Manual
Flag: NA
Change-Id: Ia10cf1acb809432175daab55151998f0d77362f9
2024-05-15 09:42:08 +01:00
Chris Göllner 0cd995e4ef Convert SysUiState flags from int to long
We already reached the limit of 32 flags for an int. To be able to have
more, changing from int to long.

This is needed, as new flags have to be added.

Flag: NONE
Test: Manually running SysUI and Launcher
Test: Unit tests in CL
Bug: 335625543
Change-Id: Iec1d40218264c7c64c50fd09764aa07c0caa7787
2024-05-13 14:47:33 +01:00
Anushree Ganjam c9eda41c31 Hardcode the className instead of class.getSimpleName().
class.getSimpleName() causes issues with obfuscation.

Bug: 332171918
Test: Manual
Flag: NA
Change-Id: I5119a7ba0e4e27d8745c94df67881934fed282a4
2024-05-08 12:31:24 -07:00
Ivan Tkachenko cd1dced953 Desktop windowing wallpaper
* Remove Launcher state manipulation from `DesktopVisibilityController`
* Remove Taskbar state updates for desktop mode in
  `LauncherTaskbarUIController`
* Update app widget animation for Home transision
* Update `RemoteTargetGluer` remote targets setup for Dekstop mode

Bug: 309014605
Flag: ACONFIG com.android.window.flags.enable_desktop_windowing_wallpaper_activity DEVELOPMENT
Test: manual
Change-Id: Ie2a7ad214a4d4e7e642d1236f2375ba6d17f3781
2024-04-16 10:59:30 +00:00
Brian Isganitis 84fbec0b16 Prevent meta shortcut from cancelling split select state.
There are two things that need to be changed for this to work:

1. Make the isInOverview condition check for any Overview UI (including
   the split select state, modal, etc.)
2. Toggle Home All Apps directly, because firing the intent will cause
   Launcher to pause and resume before the intent is handled. We
misinterpret the pause as a request to cancel split screen. Since
TaskbarManager has a reference to Launcher, we might as well call the
method directly.

Test: Manual
Fix: 319076403
Flag: N/A
Change-Id: Ib8899188f593a168a054a16717df4a95be098557
2024-04-09 16:10:56 -07:00
Treehugger Robot 6539e29882 Merge "Launch AppPair live tile when not visible" into main 2024-04-05 02:08:17 +00:00
Vinit Nayak 637274ebc9 Launch AppPair live tile when not visible
* End the recents animation and then relaunch as if
from scratch
* We explicitly ignore the anim for end of recents animation
since that will cause the taskbar to quickly show and stash
again, and we know in this case that we'll quickly be launching
right back into an app

Test: Tested w/ live tile + non live,
fullscreen + app pairs
Bug: 316485863

Change-Id: I6ae8cccc01401935bf96fba8a154216e6b1ad701
2024-04-04 15:58:17 -07:00
Sunny Goyal 9e6e3562f0 Using IHomeTransitionListener for listening for Launcher state when taskbar recreates
IHomeTransitionListener was only used when the visibility state changes, but not
when the taskbar is recreated during rotation. Instead we create a static listener
to keep track of current home visibility state

Bug: 331947346
Bug: 331947116
Flag: aconfig use_activity_overlay staging
Test: Manual
Change-Id: Icf613f7fc4f78e3f76a600202687b069d53a16dd
2024-04-02 10:36:54 -07:00
Vinit Nayak f1a832fa55 Revert^2 "Call setOverviewDragState() whenever taskbar is recreated"
This reverts commit 541c5d272d.

Reason for revert: test still failing w/ revert https://android-build.corp.google.com/abtd/run/L66700030002678824/

Change-Id: If3ab4bb850ee519446e6cae4160ea6271049f83a
2024-03-23 00:51:00 +00:00
Sukesh Ram 541c5d272d Revert "Call setOverviewDragState() whenever taskbar is recreated"
This reverts commit 0adca26744.

Reason for revert: potential cause of presubmit failures

Change-Id: I102d92f86afc7fa21c806d3cf1642e343dc91d45
2024-03-21 21:25:30 +00:00
Vinit Nayak 0adca26744 Call setOverviewDragState() whenever taskbar is recreated
* Un/Pinning taskbar re-creates controllers which led to
stale state for checking if we are allowing split selection

Test: Crash/immediately going into split no longer repros after
un/pinning taskbar in overview and trying to split
Fixes: 326356246

Change-Id: I06cfc4d1c3c7fe071f04414c3134eaff7960ade6
2024-03-19 17:30:33 -07:00
Luca Zuccarini c9cbc9d5a1 Introduce a new Home animation for workspace and the outgoing task.
The values are currently the same for all display and orientation
configurations, but they might change before launch.

There are a couple known imperfections:
* Swiping out of a hotseat app with very low velocity doesn't look
  great
* Sometimes, if the window movement reaches its final location faster
  than the background is done scaling, there is a small snap in icon
  position

Bug: 298089923
Flag: ACONFIG com.android.launcher3.enable_scaling_reveal_home_animation DISABLED
Test: verified with the flag on and off

Change-Id: Id54c7f0a76f62108d8b92a3b5e78634fff64dbef
2024-03-14 10:48:02 +00:00
Jon @ e322086de7 Merge "Clean up launcher state when ENABLE_HOME_TRANSITION_LISTENER is enabled." into main 2024-02-09 21:30:20 +00:00
Jon Miranda 3c9de6841c Clean up launcher state when ENABLE_HOME_TRANSITION_LISTENER is enabled.
This prevents taskbar showing up on home screen. We already did this clean
up when the flag is off, so now we're matching parity. Investigation for
root cause is still on-going but for now this will fix the issue for
TEAMFOODers.

Bug: 279514548
Test: See bug for repo steps
Flag: N/A
Change-Id: I9a0c3b56f48b2c7c43e303978699124146c8b61b
2024-02-09 08:43:31 -08:00
Jon @ f670b96e31 Merge "Update state for when task launched in live tile mode gets cancelled." into main 2024-02-08 00:00:21 +00:00
Jon Miranda 4af3e80cae Update state for when task launched in live tile mode gets cancelled.
This fixes the bug where taskbar shows up on home screen.

Fixes: 314790864
Flag: N/A
Test: From overview, tap on app, then immediately swipe to go home

Change-Id: I3aaa8cbe67edefc43ccd6db90ee7647152a862fc
2024-02-07 11:29:07 -08:00
Vinit Nayak 7c7ece3efe Rename isSplitSelectionEnabled() to isSplitSelectionActive()
Bug: 295467097
Change-Id: I5c518c3e7227c034956fb92590b7472ba4a71d39
2024-01-23 15:41:14 -08:00
Tracy Zhou 95c4c8d268 Fix crash from folding/unfolding
This is fundamentally caused by the phone device profile not having task bar related attributes, which crashes in icon alignment animation. We had resolved it by skipping this animation based on isPhoneMode check. However, we passed in launcherDp instead of taskbarDp (from TaskbarActivityContext) which doesn't always have the most up to date information in race conditions (e.g. repetitively fold/unfold)

Fixes: 311431054
Test: repetively fold/unfold, make sure it doesn't crash
Change-Id: I65f600112da4123d337b3f59a2fe6dd13ac7af74
2023-12-14 18:39:42 -08:00
Jon Miranda 20fdc7b508 Move taskbar clean up so that it only gets called when user swipes up to go home.
This fixes the bug where the flag gets set when user taps on nav handle, which
results in the taskbar animation playing.

Flag: N/A
Test: open app
      wait for taskbar to finish stashing*
      tap on nav handle
      nothing happens (desired affect)
      * I will address tapping on taskbar while its animating in a separate change
Bug: 292108880
Change-Id: I75870050225bdd951c69224d272d0bd5a3d6d4ea
2023-12-13 02:51:28 +00:00
Tracy Zhou ab1dc752e8 Make sure the hotseat icons are always visible in phone mode
With task bar in unfolded state, we animate from app to home by morphing the task bar into the hotseat. In the folded state, the visibility of the hotseat should never be affected by the task bar state.

Fixes: 309477352
Test: Swipe up from app in folded state with task bar / nav bar unification flag on, make sure that the transition is smooth and the hotseat is always visible. Also make sure unfolded state works as usual.
Change-Id: I1064a0c03e8f7539f8ea4d0322f58be9dff8513e
2023-11-11 07:46:30 +00:00
Jon Miranda 60ae29ef08 Migrate ENABLE_HOME_TRANSITION_LISTENER to launcher.aconfig
Also set flag to TEAMFOOD.

Flag: ACONFIG ENABLE_HOME_TRANSITION_LISTENER TEAMFOOD
Bug: 306053414
Test: manual
Change-Id: Icf3947e61fa9f20f5b6e5ca2af96e693b55d3edc
2023-10-27 16:43:01 +00:00
Vinit Nayak a1be4c1123 Use aconfig flag enable_split_contextual
Bug: 276361926
Test: Basic split contextual operations work
as expected

Change-Id: I7202654f8452a0c57e5e728c9baaadf85fa22a96
2023-10-25 01:37:17 +00:00
Jon Miranda 00c3d78191 Add HomeTransitionListener to launcher.
Fixes: 279514548
Bug: 284474103
Bug: 306053414

Flag: LEGACY ENABLE_HOME_TRANSITION_LISTENER DISABLED
Test: App launch -> Hotseat -> Taskbar stashes
      Transluscent app launch and launcher still visible -> No change
      Going home -> Hotseat visible

Change-Id: I6db5253ada3e3b37dfae124f3ee88a9805804fb8
2023-10-20 15:46:11 -07:00
Vinit Nayak 114293fb56 Disallow taskbar long click when in split selection state
* This is specifically when contextual is initiated on home
screen and then user swipes up into overview.
* We no longer want to rely on LauncherStates for split specific
management

Bug: 295981634
Test: Start split on home, swipe up to overview, long press on
taskbar app icons, nothing happens
Flag: ENABLE_SPLIT_FROM_WORKSPACE_TO_WORKSPACE

Change-Id: I9e56ddbe1f536be779d4848769a993724d5395da
2023-10-06 14:42:22 -07:00
Mady Mellor 2da9c114c4 Stash taskbar when bubbles is expanded in overview
Test: manual - have transient taskbar
             - have a bubble
             - go to overview
             - expand bubbles
             => observe that transient taskbar stashes
             - collapse bubbles
             => observe that transient taskbar unstashes

             - verify that expanding bubbles in app and on launcher
               home behaves as expected (stashes taskbar in app and
               don't see taskbar or stashed handle on home)
Bug: 284104811

Change-Id: I3d7057ed651e66ab2a0292725f30153ee4d6d51e
2023-09-11 09:41:14 -07:00
Ats Jenk f0be4fa573 Use hasBeenResumed() for checking if launcher is resumed
ag/23852178 introduced a clean up for launcher state when invoking
transient taskbar. It was checking launcher activity resumed state with
`isResumed()` method. This breaks transient taskbar for desktop mode as
we are marking the launcher activity to be paused using the launcher
flags. `hasBeenResumed()` method is the one we can used instead as it is
checking the launcher flags and not the resumed state of the activity
itself.

Bug: 292266259
Test: open transparent activity on top of launcher
      unstash taskbar
      go home
Test: move an app to desktop, unstash taskbar
Change-Id: I98d14dbfdde4b857f50e62206fc0f308e8f54231
2023-07-25 11:18:29 -07:00
Alex Chau 625709617e Clean-up b/260135164 logs
Fix: 271242509
Test: manual
Change-Id: I2c5421539f8f70897b142dfdaa6bc97a10225309
2023-07-17 15:30:31 +01:00