Commit Graph

80429 Commits

Author SHA1 Message Date
Jeremy Sim 633b94abf1 Fix icon positioning for flexible split in Overview
In flexible split ratios like 90:10 and 10:90, we hide the Overview icon of the smaller app completely. This resulted in a bug where the single remaining visible icon was positioned badly.

Fixed this by adding a check in updateIconPlacement() so that we can skip the two-icon positioning and center the visible icon alone. Also fixed the cases where split select is initiated on a split tile (from Taskbar). Now the correct icon should be shown and centered.

Fixes: 391865942
Flag: com.android.wm.shell.enable_flexible_two_app_split
Test: Single icon is positioned correctly in the middle. When split select is initiated, the right icon is shown and centered. When app chip menus are enabled, the (existing) correct behavior is not changed.
Change-Id: I79842222fc325a7661cbabbb54d277389a317504
2025-02-24 11:48:50 -08:00
Jeremy Sim b392f61ced Refactor SplitBounds to always use creation-time measurements
In flexible split ratios like 90:10 and 10:90, we hide the Overview icon of the smaller app completely (ag/30949010). However, there was an unintentional side effect where one of the icons would disappear when rotating the display.

This happened (basically) because SplitBounds is not recalculated on device rotation, so fields like leftTaskPercent and topTaskPercent should not be used directly when the rotation state is not known. I added an API to SplitBounds that hopefully makes it harder to write bugs like this in the future.

Fixes: 395783367
Flag: com.android.wm.shell.enable_flexible_two_app_split
Test: Icons do not disappear on rotation. When app chip menus are enabled, the (existing) correct behavior is not changed.
Change-Id: I2c1b38f4bd9a76dfb127b7bbf230897d747d3c49
2025-02-20 12:45:33 -08:00
Treehugger Robot c7e545674d Merge "Fix issue where hotseat apps don't migrate to the new grid" into main 2025-02-14 17:40:51 -08:00
Sergey Pinkevich 6880093100 Merge "Open and close animation for trampoline task" into main 2025-02-14 15:22:20 -08:00
Sukesh Ram f601711707 Merge "[CD Taskbar] Fix - Make Taskbar Icons Launch" into main 2025-02-14 14:45:33 -08:00
Brandon Dayauon 3fbac53d02 Merge "Add logs to components in AllApps to verify click." into main 2025-02-14 14:09:19 -08:00
Sukesh Ram 00cccdca4c [CD Taskbar] Fix - Make Taskbar Icons Launch
The base TaskbarUIController returns null for recents view.This makes icons on external display's taskbar unable to launch on external displays.

Test: m
Bug: 395954042
Flag: com.android.window.flags.enable_taskbar_connected_displays
Change-Id: I389a0fa102f63ab93b8a29de722cce0a446a2ea1
2025-02-14 12:46:28 -08:00
Treehugger Robot 059bba075b Merge "Update dismiss length for tasks to bring them off screen." into main 2025-02-14 12:30:46 -08:00
Treehugger Robot 2ab63042b8 Merge "[CD Taskbar] Staging - Add/Remove Taskbars" into main 2025-02-14 11:36:58 -08:00
Treehugger Robot 5ac353c697 Merge "Scale recents on drag of tasks during dismiss." into main 2025-02-14 11:05:12 -08:00
Treehugger Robot 2c5886869f Merge "Add debug logs to AbsSwipeUpHandler.calculateEndTarget" into main 2025-02-14 10:54:01 -08:00
Anushree Ganjam 5a8fcc3d40 Merge "Refactor TestEmitter and it doesn't need to be MainThreadInitializedObject" into main 2025-02-14 10:35:40 -08:00
Pat Manning 8bda4f6b5f Update dismiss length for tasks to bring them off screen.
Fix: 393553524
Test: TaplTestsQuickstep#testDismissBottomRow
Flag: com.android.launcher3.enable_expressive_dismiss_task_motion
Change-Id: I959bcc86ad986abfe4546add62146e99f3707cc4
2025-02-14 18:32:00 +00:00
Federico Baron b8030e9627 Fix issue where hotseat apps don't migrate to the new grid
Hotseat apps would not migrate to a new grid if the new grid already had
hosteat filled out. This resolves the issue and addresses the issue of
workspace spots showing up as occuppied when they should be available

Bug: 395786587
Test: GridSizeMigrationTest, GridMigrationTest, ValidGridMigrationTest
Flag: EXEMPT bugfix
Change-Id: I79613986702c7dddf15a9a31c29b4ef59eac2b3a
2025-02-14 18:30:54 +00:00
Treehugger Robot bbc199826f Merge "Update KQS text font family to match new specs" into main 2025-02-14 10:07:00 -08:00
Pat Manning 3b355f645b Scale recents on drag of tasks during dismiss.
Fix: 389083567
Test: TaplTestsQuickstep#testDismissCancel
Flag: com.android.launcher3.enable_expressive_dismiss_task_motion
Change-Id: Ibeb0a742cdfb4392c920deb64dd5bd4f221a9564
2025-02-14 17:04:19 +00:00
Schneider Victor-Tulias 0ae28ca5d0 Update KQS text font family to match new specs
Flag: com.android.launcher3.expressive_theme_in_taskbar_and_navigation
Fixes: 393615634
Test: opened KQS, be before/after in bug
Change-Id: Ia953e2b927b6e69c0c150df01925436b6247d751
2025-02-14 10:49:30 -05:00
Treehugger Robot 17c250e9d5 Merge "Merging IconShape with ThemeManager" into main 2025-02-14 07:21:20 -08:00
Treehugger Robot 2c29f8cdaa Merge "Convert IconAppChipView from Java to Kotlin" into main 2025-02-14 05:15:02 -08:00
Sergey Pinkevich 9c8926bff5 Open and close animation for trampoline task
Moving most of the logic from DesktopAppLaunchTransition to DesktopAppLaunchAnimatorHelper to make it more testable

Bug: 391548553
Flag: com.android.window.flags.enable_desktop_trampoline_close_animation_bugfix
Test: DesktopAppLaunchAnimatorHelperTest

Change-Id: I606fc3fc25250ea4128f3089b701a1ae153dc47a
2025-02-14 10:20:26 +00:00
Sukesh Ram edec1fbbfd [CD Taskbar] Staging - Add/Remove Taskbars
Tablet to Monitor connection renders Extended Mode.

Test: Manual
Bug: 390426030
Flag: com.android.window.flags.enable_taskbar_connected_displays
Change-Id: I16e2e4911446c42d5351d7086154d6c720bca284
2025-02-14 01:50:33 -08:00
Sunny Goyal 29f9c3d231 Merging IconShape with ThemeManager
The order of initialization for IconShape is closely tied to ThemeManager
which makes it difficult for change listeners to work. Merging these keeps
all the theming information at one place

Bug: 381897614
Test: Updated tests
Flag: EXEMPT refactor
Change-Id: Ie29efa20c3308a24be3e284c1c93ed7444b68d58
2025-02-13 22:38:01 -08:00
Jeremy Sim 1767f094ad Merge "Handle dim layers in recents animation" into main 2025-02-13 17:13:10 -08:00
Anushree Ganjam 7128c6fcfb Refactor TestEmitter and it doesn't need to be MainThreadInitializedObject
Bug: 361850561
Test: Presubmit
Flag: EXEMPT dagger

Change-Id: I30e7c3c165db698785e9e4d7e2256ab061ff71a2
2025-02-13 15:20:17 -08:00
Treehugger Robot 03c22b7b0e Merge "Refactor: Extract GetThumbnailPositionUseCase from TTVM" into main 2025-02-13 15:14:06 -08:00
Brandon Dayauon 3791a80e28 Merge "Fix focusability of web suggest via talkback" into main 2025-02-13 15:05:14 -08:00
Sebastián Franco 3d3438ebbb Merge "Rotate Wallpaper Picker if in FixedLandscape" into main 2025-02-13 13:26:26 -08:00
Jordan Silva 8b53ee48b4 Refactor: Extract GetThumbnailPositionUseCase from TTVM
This CL deletes TaskThumbnailViewModel and refactored ThumbnailPosition
to be propagated from the TaskView into TaskContainer.

Fix: 396147816
Doc: go/launcher-overview-unified-taskviewmodel
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: OverviewImageTest
Test: TaskViewModelTest
Test: GetThumbnailPositionUseCaseTest
Test: GetThumbnailUseCaseTest
Change-Id: I9cc68a8007835f0dc4846b9bf71377c81d19b27b
2025-02-13 13:11:05 -08:00
Charlie Anderson 8f0658d652 Merge "Temporarily disable shapes flag for tests that it breaks." into main 2025-02-13 11:59:35 -08:00
Sunny Goyal d1f19b103f Merge "Moving LauncherIcons to dagger" into main 2025-02-13 10:43:59 -08:00
Treehugger Robot d59261110c Merge "Retrieve thumbnail for freeform windowing" into main 2025-02-13 09:50:55 -08:00
Jordan Silva 88df64edbb Convert IconAppChipView from Java to Kotlin
Fix: 396401083
Flag: com.android.launcher3.enable_overview_icon_menu
Test: OverviewImageTest
Test: Manual
Change-Id: Ie9b82a6ee531a8afb7dcfaf86d14d44acafeddc4
2025-02-13 17:47:46 +00:00
Charlie Anderson 527be0c133 Temporarily disable shapes flag for tests that it breaks.
- when done with breaking changes will update tests as part of b/396211437

Bug: 395952745
Bug: 396211437
Flag: com.android.launcher3.enable_launcher_icon_shapes
Test: Presubmit

Change-Id: I461f6834932a710efa439a112bce23359aee13de
2025-02-13 09:32:52 -08:00
Alex Chau e15fa0470c Merge "Crop Desktop TaskThumbnailView according to its intersection with parent" into main 2025-02-13 09:10:34 -08:00
Treehugger Robot 38a203e8f4 Merge "Convert TaskGridNavHelper to Kotlin." into main 2025-02-13 08:54:17 -08:00
Uwais Ashraf 58b4407154 Retrieve thumbnail for freeform windowing
Fix: 348643341
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: Manual - open freeform task and see thumbnail shown during launch. Videos in b/348643341.
Change-Id: I7c9d070e6b39391301a9701f33adef57819e631d
2025-02-13 15:25:41 +00:00
Pat Manning 1bc108f1c2 Convert TaskGridNavHelper to Kotlin.
Fix: 396114184
Test: TaskGridNavHelperTest
Flag: EXEMPT Kotlin conversion
Change-Id: I1c3da7eac7f41a0763293a0b408f608799f02cf2
2025-02-13 14:47:21 +00:00
Elliott Hughes 1c442011de Merge "Fix typo." into main 2025-02-13 06:15:09 -08:00
Alex Chau 08bd1bfcdb Crop Desktop TaskThumbnailView according to its intersection with parent
- Override TaskThumbnailView's outline bounds to be the Rect that the view intersect with parent, so it draw corner radius around the intersection, to match the corner radius behavior in live tile
- This is not fixed in TaskThumbnailViewDeprecated as it doesn't have an outline implemenation, and it's too complicated to rewrite that as a bugfix

Fix: 379881502
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Flag: com.android.window.flags.enable_desktop_recents_transitions_corners_bugfix
Test: OverviewDesktopTaskImageTest
Change-Id: I67d7e6a05b15f0f651c8ec71f33ca1e02d662b06
2025-02-13 12:38:03 +00:00
Pat Manning 849d204c71 Merge "Add Haptic feedback to task dismiss animations." into main 2025-02-13 02:51:01 -08:00
Treehugger Robot 6191d06684 Merge "launcher3: Improve SimpleBroadcastReceiver." into main 2025-02-12 18:19:35 -08:00
Sunny Goyal 46b9e9a2dd Moving LauncherIcons to dagger
Bug: 361850561
Test: Presubmit
Flag: EXEMPT dagger

Change-Id: Ia6de74a5fd632872460dc7745f6c29ead1ab0a2e
2025-02-12 16:47:12 -08:00
Ana Salazar Maldonado 3bb0634a32 Merge "Fix contrast tile measurement calculation for folders" into main 2025-02-12 16:45:54 -08:00
Treehugger Robot c2ef2629cd Merge "Notify with onIsInDesktopModeChanged()" into main 2025-02-12 16:27:38 -08:00
Jeremy Sim d658a709f9 Handle dim layers in recents animation
Launcher-side changes for ag/31424956.

Bug: 349828130
Flag: com.android.wm.shell.enable_flexible_two_app_split
Test: Visually correct when a 90:10 pair goes to recents and back
Change-Id: I65bc56565291eae5959cd567057754d47a84bcaa
2025-02-12 15:39:52 -08:00
Treehugger Robot 6a039c4465 Merge "Implement isInDesktopMode*()" into main 2025-02-12 15:31:53 -08:00
Ana Salazar Maldonado 4ff68edea9 Fix contrast tile measurement calculation for folders
When creating a folder, the element name begins empty. Because of this,
while layout is happening, the paddings for the text and the bubble are
not considered. Fix the condition within onMeasure to add the respective
paddings when the bubble could be drawn.

Bug: 341217082
Flag: com.android.launcher3.enable_contrast_tiles
Test: Manual, visual change
Change-Id: Ie707102fa3d4827568a9db247ea5ebf5f8e1ae0d
2025-02-12 14:31:01 -08:00
Adnan Begovic 1b26bb4a74 launcher3: Improve SimpleBroadcastReceiver.
Unless explicitly annotated, parameters in java are by
  default nullable. There are a few cases where a null context
  may be passed to the unregisterReceiverSafely function
  of SimpleBroadcastReceiver.

  To mitigate misuses or incorrect contexts being passed for
  register vs unregister, keep the context as a strong reference
  in the constructor.

  Also added NonNull annotations for any public callsites to
  enforce behavior.

Bug: 395019017, 395966395
Flag: NONE - bug fixed
Test: manual - presubmit
Change-Id: Ie371fa45cadceaf51cf184b446df9123ef27c337
2025-02-12 13:43:34 -08:00
Ahmed Fakhry 2289c28f7f Notify with onIsInDesktopModeChanged()
This CL renamed `onDesktopVisibilityChanged()` to
`onIsInDesktopModeChanged()` and adds a parameter for the display ID
on which the change is taking place.

When the multiple desktops flags are disabled, the behavior should
remain exactly as it is today; `onIsInDesktopModeChanged()` is
triggered only for the `DEFAULT_DISPLAY`, and when the same old
conditions occur.

Bug: 394685645
Test: m
Flag: com.android.window.flags.enable_multiple_desktops_frontend
Flag: com.android.window.flags.enable_multiple_desktops_backend
Change-Id: I31658b1b7932c787ebd430cee7e5c99bdd01e8c9
2025-02-12 21:18:54 +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