Commit Graph

11894 Commits

Author SHA1 Message Date
Brian Isganitis
e1eaefd537 Initial prototype of tiny taskbar.
Introducing isTinyTaskbar and using in a few places to show Taskbar on
phones.

Disabling for three button mode since the buttons will take up most of
the space. Could also prototype adding meta key as a 4th button in
this case if we feel like it.

Flag: com.android.wm.shell.enable_tiny_taskbar
Test: Manual
Bug: 341784466
Change-Id: Iba07382d9bd5d14fc29ef080a390db561f6fd454
2024-05-23 16:40:58 -04:00
Pierre Barbier de Reuille
f60dd5471c Update desktop mode to identify minimized tasks
When a task is minimised, it becomes invisible but is still running.
WMShell now signals to the launcher when a task's visibility changes.
The task bar takes the visibility into account to know if a running task
is, in fact, minimised.

Test: atest NexusLauncherTests:DesktopTaskbarRunningAppsControllerTest
Flag: com.android.window.flags.enable_desktop_windowing_taskbar_running_apps
Bug: 333872717
Change-Id: Iaff6b1240d354bb3c4de8e4884948acf9bf40112
2024-05-23 20:59:16 +01:00
Alex Chau
c228dbd2c1 Reset RecentsView when detached from window
- onDetachedFromWindow is a sign RecentsView or even activity will be destroyed, if we don't reset RecentsAnimationController will be stuck without finsihing, causing live tile to be stuck on screen

Bug: 339747262
Test: Swithcing apps (recents button, quick switch, OVerview) from Maps driving mode, live tile not stuck
Flag: EXEMPT bugfix
Change-Id: I990cfe0fc814c9125dbfbaf8a298f1b871e0194e
2024-05-23 11:34:41 +01:00
Alex Chau
ebcd2e5cd5 Merge "Don't call onModalnessUpdated if modalness stays the same" into main 2024-05-23 09:18:59 +00:00
Alex Chau
04b355a2d9 Don't call onModalnessUpdated if modalness stays the same
- Repeatedly calling onModalnessUpdated results in repeated calls of View.setAlpha, which caused regression in Overview loading time

Fix: 341266234
Test: android.platform.test.scenario.messenger.OpenAppFromQuickStepAndOpenQuickStepMicrobenchmark#testOpenQuickStepAndOpenApp
Flag: EXEMPT bugfix
Change-Id: Id756e80f20afafee2bb45e6a3ab861d83ab0b674
2024-05-22 18:52:42 +00:00
Johannes Gallmann
ddeca9746f Merge "Use better heuristic for when to apply statusbar customization during predictive back" into main 2024-05-22 15:26:36 +00:00
Treehugger Robot
656f0e8d13 Merge "Avoid IconView's setModalAlpha interfere with setContentAlpha" into main 2024-05-22 09:40:29 +00:00
Winson Chung
ab8e999f81 Add multi-instance state to item infos
- Add legacy resource for supported multi-instance apps that
  matches the current SystemUI resource of the same name, and will
  be removed as apps migrate to the V manifest property to declare
  multi-instance support
- Load the multi-instance state from PackageManager when the db is
  first loaded or when packages are updated
- The multi-instance check is then used to determine if an app pair
  can be saved (ie. whether the action can be shown)

Bug: 323112914
Test: atest NexusLauncherTests

Merged-In: I565b4bee4ab5f7040910306b1fd60a4fc3bf9a1c
Change-Id: I9658b63672b692c42563c111c11be2433c98d535
2024-05-21 23:01:19 +00:00
Orhan Uysal
d061c71e66 Merge "Fix activity leak" into main 2024-05-21 18:35:34 +00:00
Johannes Gallmann
03858c7d03 Use better heuristic for when to apply statusbar customization during predictive back
Bug: 341921089
Flag: ACONFIG com.android.window.flags.predictive_back_system_anims NEXTFOOD
Test: Manual, i.e. testing verifying on device that the color switch happens when the closing window passes the middle of the statusbar
Change-Id: I885e8142e52d29d13232cd588108fb1fb2742036
2024-05-21 15:43:21 +00:00
Alex Chau
63e4e4ce11 Avoid IconView's setModalAlpha interfere with setContentAlpha
- Because ag/27301532 we have restriction in setModalness that forbid setModalAlpha be called multiple times, this was a hack to avoid setModalAlpha interferring with setContentAlpha
- As part of ag/27301532 modalness.set no longer have the field != value check, which cause the regression that icon appears in quick switch carousel
- Now it follows IconAppChipView's implementation to use MuiliValueAlpha

Bug: 339787593
Test: Swipe up from app, or quick switch then swipe up, icon shouldn't be visible
Flag: EXEMPT refactor
Change-Id: I0abb8df951ef32ba8a0f9bbfa385c0aa3b96dd7f
2024-05-21 15:16:23 +01:00
Orhan Uysal
67c807a1fe Fix activity leak
In some occasions, launcher leaks through DesktopVisibilityController
and SplitFromDesktopController. Set mDesktopVisibilityController and mSplitSelectStateController to null
after their onDestroy() methods are called.

Bug: 332339792
Test: m
Flag: ACONFIG com.android.window.flags.enable_desktop_windowing_mode TEAMFOOD
Change-Id: I66418f30ec5d2735f812ee6e4180f55f67d7b46f
2024-05-21 12:42:37 +00:00
Alex Chau
4127e460b0 Move common code from DesktopTaskView and GroupedTaskView to TaskView
- Most TaskView method will now loop through taskContainer instead of accessing the first/second
- Moved TaskThumbnailView, showWindowsView, and TaskOverlay to be part of TaskContainer. There are still some TaskOverlay access from TaskThumbnailViewDeprecated that should be remove as we start using TaskThumbnailView

Fix: 339787250
Test: Manual
Flag: EXEMPT refactor
Change-Id: Icfaa4f5eb50582faed01113465335b6d2899f781
2024-05-21 12:43:37 +01:00
Ats Jenk
38ad424a17 Merge "Only send bubble bar top coordinate to shell" into main 2024-05-20 17:36:23 +00:00
Tracy Zhou
8355bc1a76 Set inset in phone setup mode to setup inset
- In phone setup mode, gesture mode is no button but the inset we report should be setup inset

Fixes: 340998601
Test: https://screenshot.googleplex.com/8Q4WHorpUeqWSjw
Change-Id: I84d60ecc7179008e80e7b09eda5b3a1abb24e138
(cherry picked from commit b17af6ff75)
2024-05-20 16:24:50 +00:00
Tracy Zhou
ad26390e23 Merge "Set inset in phone setup mode to setup inset" into main 2024-05-20 16:24:36 +00:00
Berke Emin Kabagöz
84ff0e6abc Fix isVisible NoSuchField issue (#4402) 2024-05-19 08:35:25 +08:00
Fengjiang Li
c9efd81d57 Merge "[Launcher Jank] Move binder call of RotationChangeProvider to BG thread" into main 2024-05-17 23:06:29 +00:00
Sunny Goyal
b7cd672363 Merge "Adding support for importing/exporting launcher layout" into main 2024-05-17 18:08:25 +00:00
Ats Jenk
7383866b91 Merge "Fix bubble translation when released after dragging" into main 2024-05-17 18:04:23 +00:00
Ats Jenk
b34f8c8831 Only send bubble bar top coordinate to shell
Stop sending entire bubble bar bounds to shell.
Keeping the bounds in sync was error prone as bubble bar can expand and
collapse. Bubbles can be added/removed.
In each of these cases we had to make sure that shell gets updated.
Shell only needed the full bounds for collapse/expand animation. But
after updating the animation, shell only needs the top coordinate of the
bubble bar.

Bug: 330585402
Flag: com.android.wm.shell.enable_bubble_bar
Test: bubble bar drag
  - drag bar from right to left
  - expand the bar
  - check that expanded view scales in from left edge
  - collapse and drag bar back, check the animation
Test: selected bubble drag
  - drag expanded bubble from right to left
  - check that expanded view scales in from the left edge
  - drag the bubble back to right, check animation
Test: other bubble drag
  - drag a unselected bubble from right to left
  - check that the selected bubble expands in from left edge
  - drag the bubble back to right, check animation again
Test: drag bubble from right to left, observe that expanded view
  expand animation originates from the bubble bar

Change-Id: Ib66cef8d3c04bce54a69e30e99edd408a31f018f
2024-05-17 10:53:33 -07:00
Uwais Ashraf
e420318843 Merge "Use getter for thumbnail from converted ThumbnailData in Java" into main 2024-05-17 17:08:08 +00:00
Ats Jenk
3529ace8a1 Fix bubble translation when released after dragging
Translation for bubble after drag release was based on bubble bar translation. TranslationX was adjusted for bubble position. And translationY was reused from bubble bar.
Before ag/27284635 bubble bar translationY just copied over the input translation value. But the cl introduced a fixed translationY applied to bubble bar.
This was getting applied to the bubble as well. And resulted in bubble being out of its target position when releasing drag.

Bug: 330585402
Test: drag a bubble from bubble bar and release it, observe it animates
  to its correct position in the bar

Change-Id: I48f2a84b60a9cc6047e9841c254b4035212f3c0e
2024-05-17 15:58:24 +00:00
Alex Chau
65574f8485 Sets taskOverlayFactory to TaskThumbnailViewDeprecated even when not binding
Bug: 339787593
Test: Manual
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Change-Id: I672bf7e5c0fd578974fca16272557f2ef2f218ee
2024-05-17 12:40:42 +01:00
Orhan Uysal
33967ebcea Merge "Set the listeners to null on unregister" into main 2024-05-17 08:33:03 +00:00
Kean Mariotti
c4079927f9 Merge "vc tracing: refactoring prior perfetto migration" into main 2024-05-17 07:38:33 +00:00
Tracy Zhou
b17af6ff75 Set inset in phone setup mode to setup inset
- In phone setup mode, gesture mode is no button but the inset we report should be setup inset

Fixes: 340998601
Test: https://screenshot.googleplex.com/8Q4WHorpUeqWSjw
Change-Id: I84d60ecc7179008e80e7b09eda5b3a1abb24e138
2024-05-16 21:38:58 -07:00
Sunny Goyal
25f5e29418 Adding support for importing/exporting launcher layout
Bug: 338282246
Flag: None
Test: Manual, developer feature
      atest AutoInstallsLayoutTest
Change-Id: I8a5674080f3c156d97bc6118c51532c2fe8177d5
2024-05-16 15:24:41 -07:00
Fengjiang Li
6335460613 [Launcher Jank] Move binder call of RotationChangeProvider to BG thread
Fix: 333771185
Test: record prefetto trace
Flag: NONE not gated
Change-Id: I68a574cbcfed84876fe57fa5be03ca189e569f7e
2024-05-16 15:17:12 -07:00
Ats Jenk
5719808945 Merge "Rename removeBubble method to clarify it is for dismissing via drag" into main 2024-05-16 22:00:56 +00:00
Liran Binyamin
013a4121be Merge "Suppress bubble animation when IME is visible" into main 2024-05-16 18:22:38 +00:00
Uwais Ashraf
1aa0e96d1f Use getter for thumbnail from converted ThumbnailData in Java
Bug: 334825222
Test: NA - one for one conversion
Flag: NA
Change-Id: Ibad85c59d7696f177d0fb723b7fd5b8983ecc974
2024-05-16 16:07:29 +00:00
Liran Binyamin
2cbb6dc5e4 Suppress bubble animation when IME is visible
When the IME is visible we now don't animate the bubble bar.

Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Bug: 340532785
Test: manual
Change-Id: I31fcf6a1fe81d907a9a02780ba42813111ac7e90
2024-05-16 10:15:19 -04:00
Alex Chau
ed9e3a8701 Merge "Convert TaksView to Kotlin" into main 2024-05-16 14:00:02 +00:00
Liran Binyamin
606e9fde47 Merge "Animate bubble update notifications" into main 2024-05-16 13:13:57 +00:00
Eghosa Ewansiha-Vlachavas
c36afd3e26 Merge "[2/n] Unify DesktopModeStatus between Shell and Sysui" into main 2024-05-16 12:43:26 +00:00
Chris Göllner
4b6d2d4fa3 Merge "Shortcut Helper - Integrate with launcher 3 button nav translation" into main 2024-05-16 12:40:22 +00:00
Alex Chau
9565667813 Convert TaksView to Kotlin
- PS1: Android Studio conversion (unformatted, cannot compile)
- PS2: Fix compilation issues and formatting
- PS3: First pass ready for review
- PS4: Minor changes (Remove Consumer, remove unnecessary null-checks)
- PS5: Removed check() around taskContainers, which is now lateinit and should always be initiailzed. Also ensure TaskView is bound before adding to parent.
- PS6: Move a bunch of getters to use .property style
- PS8: Refacoted RecentsView.applyLoadPlan bind logic, to avoid inflating TaksView, bind, add then immediatley remove
- PS10: Turned more functions to express functions; added an extension function
- PS11: Re-order functions, no code changes
- PS12: Reverted unit express function back to {} style

Bug: 339787593
Test: Manual
Flag: NONE
Change-Id: I75c06cf29718d8f258a4124997bcb054f5eb056f
2024-05-16 12:33:28 +01:00
Sam Cackett
1ee568bf13 Merge "Add metric logging for fake landscape usage" into main 2024-05-16 10:28:26 +00:00
Pragya Bajoria
571c9b288d Merge "Remove obsolete desktop stashing logic from platform/packages/apps/Launcher3 [5/n]" into main 2024-05-16 09:50:17 +00:00
Orhan Uysal
2552cc78ed Set the listeners to null on unregister
In some occasions, launcher leaks through DesktopVisibilityController
and SplitFromDesktopController. It seems that we don't set the listeners
to null after we unregister which might be the reason why they hold on
to the launcher activity.

Bug: 332339792
Test: m
Flag: ACONFIG com.android.window.flags.enable_desktop_windowing_mode TEAMFOOD
Change-Id: If52ae87cec959264109e59b1144679183c8fedcc
2024-05-16 09:07:48 +00:00
Liran Binyamin
03a2ab1e56 Animate bubble update notifications
Updates to existing bubbles now cause the bubble bar to animate in
similarly to new bubble notifications.

Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Bug: 280605846
Test: manual
Change-Id: Ib53316889170e0392f055242c6206882084b4a46
2024-05-15 12:13:12 -04:00
Sam Cackett
155e558b5b Merge "Fix crash resulting from missing entry in the taskViewIdArray" into main 2024-05-15 12:48:08 +00:00
samcackett
a24cb0e0fc Fix crash resulting from missing entry in the taskViewIdArray
Bug: 338057269
Test: Manual
Flag: NA
Change-Id: Ifa99fe87423ba75f52c43248c8fd730667803d1a
2024-05-15 11:32:48 +01:00
Pragya Bajoria
d9900e0d17 Remove obsolete desktop stashing logic from platform/packages/apps/Launcher3 [5/n]
Bug: 309481654
Change-Id: Id7b5db662d578eb625171055d30c37cd59e7d73c
Flag: EXEMPT refactor since it is removing obsolete code with no changes to current behavior.
2024-05-15 09:16:13 +00: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
Ats Jenk
50eb8e78f1 Rename removeBubble method to clarify it is for dismissing via drag
The removeBubble method was only used for dismissing a bubble via drag
in Launcher. Renaming the method to indicate it is only for this
purpose.
This allows us to reduce remote calls from launcher to shell when a
bubble is dismissed via drag. Otherwise we would need to make two calls,
one for removing a bubble and other for stopping the drag.
As shell keeps track of drag status in launcher for hiding the expanded
view.
Also removing the bubble key from remote call to shell to signal drag
has finished. The bubble key was not used.

Bug: 330585402
Flag: ACONFIG com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Test: drag a bubble that is not expanded to dismiss target, previously
  expanded bubble should expand again
Change-Id: I57484aa3a2c0585ff7c3974d9f0d19dc1ab9dbd2
2024-05-14 20:37:47 -07:00
Holly Sun
49dc99abb0 [omni] Handle touch slop for LPAA.
Only handle touch slop when the taskbar is pinned (not isTransientTaskbar).

Bug: 335018496
Test: manual
Flag: legacy CUSTOM_LPAA_THRESHOLDS disabled
Change-Id: I4dc6dba473455b02208ef254c271a767bd7c8d42
2024-05-14 16:16:02 -07:00
Holly Jiuyu Sun
5334c82136 Merge "[omni] Dynamically configure timeout for LPAA." into main 2024-05-14 21:45:03 +00:00
Jeremy Sim
ee9e655c5c Fix bug with flickering actions bar
This CL fixes a bug caused by ag/27148514. The bug occurred because:

1) The new way we use FloatProperty to set the alpha did not have a working `get()` function, so it just returned a junk value, set to `-1f` (I didn't think `get()` would ever be called meaningfully for this property).

2) However, during certain UI interactions, `RecentsView#updateActionsViewFocusedScroll()` is called many times in a loop, which repeatedly tries to re-start the fade-in animation for actions bar. Pre ag/27148514, even though the fade-in animation was called repeatedly, it would start and then immediately stop running because it realized that it was already set to the desired alpha. However now that we return a junk value for `get()`, it didn't know to skip and just ran the full fade-in animation again and again.

Fixed by refactoring FLOAT_SETTER (now ALPHA_PROPERTY) and creating a new data class, OverviewActionsAlphaProperty, that handles some of the intricacies of this increasingly complicated alpha system.

Fixes: 339545510
Test: Swipe to Overview, move tiles around, actions bar does not flicker.
Flag: ACONFIG com.android.wm.shell.enable_app_pairs NEXTFOOD
Change-Id: I1093363780db5e0780deda2ff14b4f7361d63940
Merged-In: I1093363780db5e0780deda2ff14b4f7361d63940
2024-05-14 21:10:10 +00:00