Commit Graph

19971 Commits

Author SHA1 Message Date
Andy Wickham bdbf8a9935 Merge "Only ignore All Apps left/right insets on tablets." into main 2025-05-23 12:53:58 -07:00
Treehugger Robot 70f5d5738e Merge "Implement spec to configure all apps height" into main 2025-05-22 19:13:37 -07:00
Andy Wickham 85ac41bc7f Only ignore All Apps left/right insets on tablets.
This was previously the case, but I think I mistakenly updated this
to include phones with the all_apps_sheet_for_handheld flag at some
point. However, there was also some broken logic with the panel bounds
on phones. panel.getLeft() would be 0 because that's relative to the
container, so we need to do getLeft() + panel.getLeft().

Landscape (camera on left): https://hsv.googleplex.com/5035787895701504
Seascape (camera on right): https://hsv.googleplex.com/6210562886205440
Portrait: https://hsv.googleplex.com/6563945312681984
Tablet: https://hsv.googleplex.com/6704696994562048

Bug: 419235232
Test: See HSVs above compared to before images in the bug
Flag: com.android.launcher3.all_apps_sheet_for_handheld
Change-Id: Id8b6f3367ee94ef22cb917e00518e843553b42d8
2025-05-21 19:23:53 -07:00
Kevin Lim a735b96a40 Merge "[Multiline] If a multiline searchbox can scroll up, don't scroll all apps container" into main 2025-05-21 19:18:53 -07:00
Treehugger Robot 091890adbc Merge "Support workspace cells with two-line labels" into main 2025-05-21 18:25:15 -07:00
Kevin Lim dddf56f5b1 [Multiline] If a multiline searchbox can scroll up, don't scroll all apps container
Bug: b/390540638
Flag: EXEMPT bug fix
Test: Before: http://recall/clips/2c3e5774-c0ba-4a2d-b878-db3a6efec247
Test: After: http://recall/clips/3c98c52b-7f94-4dd4-a6f6-560403d4a426
Change-Id: I9dad962740ec31edad6213c41e2dec04deeedf0b
2025-05-21 15:28:01 -07:00
Annie Lin 61867f4b3c Restrict launcher bubble shortcut option.
To respect current multi-window mode policies for non-resizeable activities, we should hide this option on small screens.

The bubble option will continue to show on large screens (unfolded Foldables and Tablets) but not on small screens (folded Foldables and Phones) for non-resizeable apps.

Bug: 411558731
Test: Manual - Enable the flag and try to bubble a shortcut via the longpress menu on launcher --> Does not show bubble option for non-resizeable apps on small screen but shows otherwise.
Flag: com.android.wm.shell.enable_create_any_bubble
Change-Id: I2546b1002c92e309b8f7f439480e2c87eaf951c4
2025-05-21 15:10:46 -07:00
Toni Barzic 3bd1f20e3b Implement spec to configure all apps height
Adds AllAppsSpec support, that can configure all apps height so the
container top aligns with the top of a row in the workspace grid.

Bug: 30153091
Flag: com.android.launcher3.enable_scalability_for_desktop_experience
Test: Manual

Change-Id: Ia5c939c7d3b6fed29a9c2f47233348a5e55b570f
2025-05-21 22:04:33 +00:00
Toni Barzic 83b8cc19ca Support workspace cells with two-line labels
Adds `maxLineCount` attribute to CellSpec. The attribute indicates the max
number of lines of text the cell was speced to support. It's used to:
*   enable two-line labels in `BubbleTextViews` for workspace (including
    folder children) items
*   Update cell dimension calculation to inform cell vertical padding

When calculating cell content size the icon text size will be included
`maxLineCount` times, so the cell content gets centered as if it
contains `maxLineCount` lines of text. That way the icon position will
be consistent between cells with text that fits into one line, and cells
that contain two lines of text.

Adds `maxLineCountMatchesWorkspace` attribute to specify that the cell
should inherit `maxLineCount` from workspace cell spec.

Bug: 30153091
Flag: com.android.launcher3.enable_scalability_for_desktop_experience
Test: Manual

Change-Id: I150a62f427a0ad755a4746a736d9846d3bea4d2e
2025-05-21 22:04:33 +00:00
Schneider Victor-Tulias 6d532fe59d Fix broken state when tapping nav handle from running app.
When tapping the nav handle from running app, OtherActivityInputConsumer will start the recents window through TaskAnimationManager. The recents window would then typically be closed through the StateManager, however since the state isn't changing, then RecentsWindowManger never actually gets any signal to close the recents window. Added a new callback to fix this flow.

Flag: com.android.launcher3.enable_launcher_overview_in_window
Flag: com.android.launcher3.enable_fallback_overview_in_window
Bug: 377678992
Test: pre/post submit tests. tapped nev handle from a runnign app
Change-Id: If1fe7de195a9a8a98c72629c7904d469a5768d7f
2025-05-21 10:35:11 -07:00
Kevin Lim f7ce5a06fe [Multiline] Clean-up multiline flag on Launcher3
Bug: b/409605328
Flag: EXEMPT removing multiline_search_bar
Test: Unit tests all passing
Change-Id: Id377b7c99af0d0265102888b8021c0809f53a6b9
2025-05-20 18:52:14 -07:00
Andy Wickham dc681e83e7 Only update All Apps scrim (panel) when blur state changes.
Previously we updated many other things, such as the buttons and RV
decorators, but the latest UX guidance is to use the same colors
when blurs are enabled or disabled, other than the panel color.

Note: When Overview blur is enabled, the activity is recreated and
this change is redundant. So this is only done if that flag is off.

Demo with home and taskbar all apps (toggling blur with adb):
https://drive.google.com/file/d/1HzveExKpAERxMVdu7JXQSYeGRwaBNR4_/view?usp=sharing&resourcekey=0-l-dGWOS6aCQjj2KStvwySA

Fix: 413229346
Flag: com.android.launcher3.all_apps_blur
Test: Manual with battery saver and `adb shell wm disable-blur 1` / 0
Change-Id: I55c9b46f0999c574c29a6ac7ae557b1e30d91d15
2025-05-19 19:20:34 -07:00
Andy Wickham 982b08ede0 Merge "Fix All Apps interpolators and blur." into main 2025-05-19 15:11:00 -07:00
Treehugger Robot 12927a055c Merge "launcher3: Add logcat event for launcher ready" into main 2025-05-19 12:06:56 -07:00
Alex Chau 13d1b07304 Merge "Reland "Recreate Launcher activity when blur enabled changes"" into main 2025-05-19 07:03:27 -07:00
Brandon Dayauon 123fba5790 Merge "Handle case where PS animation method may be called while running" into main 2025-05-16 23:00:20 -07:00
Mykola Podolian 9e4b44afcd Merge changes from topic "remove_ipc" into main
* changes:
  [5/5] Removed unused IPC call.
  [4/5] Cover DragToBubbleController with tests.
  [3/5] Implement DragToBubbleController.
  [2/5] Hook up DragToBubbleController and prepare launcher to use it.
  [1/5] Added DragToBubbleController
2025-05-16 16:01:03 -07:00
Shamali Patwa b7b5e60d9f Merge "Pass device profile as constructor arg to DatabaseWidgetPreviewLoader" into main 2025-05-16 14:06:39 -07:00
Shamali Patwa 35c051001c Merge "Centralize all entry points for widget picker" into main 2025-05-16 13:41:26 -07:00
Brandon Dayauon fa87e4d470 Handle case where PS animation method may be called while running
I suspect the animation may be called while a current animation running. Should be using the mAnimatorSet pattern anyways.

bug: 414369872
Test: manually -presubmit ensured current animation doesn't change
Flag: EXEMPT bug fix
Change-Id: Ieeda50026cda656579c60d92f35f085a169eb18a
2025-05-16 11:51:46 -07:00
Shamali P 4cb6ff3838 Pass device profile as constructor arg to DatabaseWidgetPreviewLoader
This is so, we can use it with compose, and let caller pass the needed
dependencies. May also convert to dagger in
 followup

Bug: 408283627
Flag: EXEMPT BUGFIX
Test: N/A
Change-Id: I9b04011ec2592df3bd02bd74ec4889eb05928e7f
2025-05-16 11:47:18 -07:00
mpodolian 86f7a230f8 [2/5] Hook up DragToBubbleController and prepare launcher to use it.
Updated DragController logic to set touch event XY coordinates if there
is no view returned by the DropTarget. Added wait call for all drop
targets views removed to the
TaskbarActivityContext#onDragEndOrViewRemoved() method.

Bug: 411506181
Flag: com.android.wm.shell.enable_create_any_bubble
Test: build launcher
Change-Id: Ie97b08f22ae8dc34bd9f4e3738704e4fc90345bb
2025-05-16 10:34:55 -07:00
Charlie Anderson 157da33ffc Merge "Add more logging for the options launcher returns to picker" into main 2025-05-16 07:27:42 -07:00
Alex Chau 557d8e6d7f Reland "Recreate Launcher activity when blur enabled changes"
- When battery saver changes, WallpaperThemeManager always recreate activity to reapply theme base on wallpaper color hint changes
- Battery saver change can also result in light/dark theme changes, for which WallpaperThemeManager also recreate activity to apply theme changes
- As a result, it'll be much simpler to recreate activity whenever isBlurEnabled changes
- Exposed recreateToUpdateTheme API from WallpaperThemeManager to achieved this
- Greatly simplified Overview styling to read from styles

Reland fix:
- Removed mBlursEnabled in BaseDepthController, and only use `mCrossWindowBlursEnabled` to control swapping between blur style and fallback style
- Temporary variables like `mPauseBlurs` and `hasOpaqueBg` should only affect if blurs are applied, but not result in swapping of blur style, otherwise this cause unnecessary redraw or activity recreate

Reason for revert: reland
Reverted changes: /q/submissionid:33581402-revert-33554447-b/414789280-CTVRJLPLRT
Bug: 414789280
Test: manually toggling battery saver and light/dark theme and WallpaperThemeManagerTest
Test: PressBackFromLaunchedApp.testPressBackFromLaunchedApp
Flag: EXEMPT bugfix

Change-Id: Iac2b0c00811e0e79684da0cf77df76a120c1272a
2025-05-16 12:33:44 +01:00
Brandon Dayauon c182354074 Merge "Fix workUtilityView showing up before keyboard is up" into main 2025-05-15 20:13:31 -07:00
Federico 'Morg' Pareschi 49ee74932f launcher3: Add logcat event for launcher ready
This event helps us monitor via logcat when a login (after a screen unlock)
event ends.

Bug: 417839016
Test: manually unlock screen and verify the log shows up when ready
Change-Id: I051bf3d5e77b363bcfe37f995146a82e6db69a94
Flag: EXEMPT log only update
2025-05-16 02:45:22 +00:00
Treehugger Robot 6bc72676ed Merge "Recreate DP for CD when displayInfo changes" into main 2025-05-15 18:07:54 -07:00
Andy Wickham d4100bec42 Fix All Apps interpolators and blur.
Fixes an issue where leaving All Apps did not reverse interpolators,
causing blur to disappear too quickly.

In addition, the logic in BaseDepthController is updated to ensure
100% blur is applied upon reaching max depth. Previously we were
multiplying the depth by 3, but the intention was to reach 1 when
depth reached 0.3. So the blur was only at 90% the intended value in
All Apps (which has a depth of 0.3).

Finally, related to the 100% blur, we correctly end early wakeup
when that is reached, which means we also start it again when the
blur starts changing back towards 0 again. This spins up the GPU,
CPU, and SurfaceFlinger and should help avoid missed frames.

In order to avoid negative performance hits, reducing the max blur
radius from 34dp to 30dp, so that it matches what we were hitting
previously. (The full 34dp unfortunately does cause some regressions).

Bug: 415247657
Test: Open all apps, drag back down, view animation. Also try other
Launcher state transitions.
Flag: com.android.launcher3.all_apps_blur
Change-Id: Ia5daa07525ac96c0597a25bb4320348f27a4ee56
2025-05-15 17:53:17 -07:00
Brandon Dayauon d2bf99e068 Fix workUtilityView showing up before keyboard is up
The reason is that there is extra translation applied to account for the all apps moving. Rather we should only offset any translation when -windowInsets.bottom < 0.

bug: 416323265
Test: videos in bug
Flag: EXEMPT bug fix
Change-Id: I3565d3a2ee09f545c0d01aa0ce3da8f80a017308
2025-05-15 16:14:27 -07:00
Ajinkya Chalke 1fd6090eb7 Recreate DP for CD when displayInfo changes
- Only IDP is updated when displayInfo changes but DPs of CD don't. As
  a result taskbars on CD end up reusing the old config DPs. For
  example, when user changes display size, displayInfo updates but
  taskbars on CD continue using old DP resources.
- So, update DP for CD when DisplayInfo changes.
- Also added using supplied context with dpToPx for calculating radius
  for taskbar roundedness at the ends.

Fix: 414933860
Test: m
Flag: com.android.window.flags.enable_taskbar_connected_displays

Change-Id: I7d8ed3c5ba69b755a58d3462a5da9ed7fd404198
2025-05-15 22:42:09 +00:00
Alex Chau 38efd382b7 Merge "Revert "Recreate Launcher activity when blur enabled changes"" into main 2025-05-15 13:07:22 -07:00
Sunny Goyal 1d4a457680 Merge "Adding repository for AppsList data" into main 2025-05-15 12:23:44 -07:00
Charlie Anderson cd4382aa43 Add more logging for the options launcher returns to picker
Bug: 413707700
Test: N/A just logs
Flag: EXEMPT just logs

Change-Id: I2377a6bcf7fa8d219fec784570ff92eface1118e
2025-05-15 12:21:40 -07:00
Catherine Liang 00dbb434dd Fix incorrect widget layout when previewing grid
When previewing grid, actual widgets are updated. Revert grid changes
when preview binder dies to restore original widget layout in Launcher.

Flag: com.android.systemui.shared.new_customization_picker_ui
Bug: 408934352
Test: manually verified
Change-Id: I18f63fd1760b1188306defd2a8315fe5765dab01
2025-05-15 18:43:27 +00:00
Priyanka Advani (xWF) 1f891a6b67 Revert "Recreate Launcher activity when blur enabled changes"
Revert submission 33554447-b/414789280

Reason for revert: Droidmonitor created revert due to b/417614196. Will be verifying through ABTD before submission.

Fix: 417614196

Reverted changes: /q/submissionid:33554447-b/414789280

Change-Id: Idf349cd39a3f86910f597f0f9ab4d46fb03e945c
2025-05-15 11:12:05 -07:00
Alex Chau 6564f33184 Merge "Remove debug logs on a closed bug" into main 2025-05-15 06:37:49 -07:00
Alex Chau b7dd7bf1e0 Merge "Recreate Launcher activity when blur enabled changes" into main 2025-05-15 06:07:58 -07:00
Sunny Goyal 869b20cb27 Adding repository for AppsList data
Flag: com.android.launcher3.model_repository
Test: atest AppsListRepositoryTest
Bug: 390572144
Change-Id: I6e5993c91f77ed8f0b6f2c12c9d743c87a497134
2025-05-14 21:19:18 -07:00
Treehugger Robot 6bcd5d93de Merge "launcher3: Add error handling for drag preview bitmap creation." into main 2025-05-14 19:02:50 -07:00
Brandon Dayauon 11388a53f4 Merge "Make hotseatQsbShadowHeight public" into main 2025-05-14 17:48:57 -07:00
Adnan Begovic 0e41e168b2 launcher3: Add error handling for drag preview bitmap creation.
In some cases, the bitmap that is needed for FastBitmapDrawable
can fail to render. Return a placeholder in that case.

Bug: 416779946
Flag: EXEMPT Bug fix
Test: manual
Change-Id: I188a820157f4ac43b8a13a99f3ac2c2348afbc13
2025-05-14 16:28:34 -07:00
Treehugger Robot 753ee52a18 Merge "Support desktop device category in grid options" into main 2025-05-14 13:30:52 -07:00
Brandon Dayauon 653b4b9b31 Make hotseatQsbShadowHeight public
This variable is used during layout of the psb in hotSeat.java. It is specifically
applied to calculate the qsbOffsetY()

bug: 413719316
Test: manually presubmit
Flag: com.google.android.apps.nexuslauncher.psb_aim_reskin
Change-Id: I9b4bd244a39de61e7ef23dbf477e1808f30f5401
2025-05-14 11:33:10 -07:00
Alex Chau a6fa3db580 Recreate Launcher activity when blur enabled changes
- When battery saver changes, WallpaperThemeManager always recreate activity to reapply theme base on wallpaper color hint changes
- Battery saver change can also result in light/dark theme changes, for which WallpaperThemeManager also recreate activity to apply theme changes
- As a result, it'll be much simpler to recreate activity whenever isBlurEnabled changes
- Exposed recreateToUpdateTheme API from WallpaperThemeManager to achieved this
- Greatly simplified Overview styling to read from styles

Bug: 414789280
Test: manually toggling battery saver and light/dark theme and WallpaperThemeManagerTest
Flag: com.android.launcher3.enable_overview_background_wallpaper_blur
Change-Id: I90ad724867283fe3c62a9073a6e072491533f774
2025-05-14 17:45:04 +01:00
Treehugger Robot 8cc0274fb0 Merge "Fixing leak in model repository" into main 2025-05-13 17:55:55 -07:00
Shamali P 8dc2f98338 Centralize all entry points for widget picker
So we have a central place to replace it with opening
WidgetPickerActivity behind a flag.

Bug: 408283627
Flag: EXEMPT minor refactor
Test: Existing tests
Change-Id: I1c26c3faec8549fd5c3057b4c26ab2ab109f6f0c
2025-05-13 17:15:25 -07:00
Sunny Goyal 6e8b2bc95b Fixing leak in model repository
Bug: 417356788
Flag: com.android.launcher3.model_repository
Test: atest TaplDragTest
Change-Id: I4b11a521d66790637dfc05682fb1550f6cc9adcd
2025-05-13 15:15:11 -07:00
Daniel Akinola 6efff5eeac Update StatusBarTouchController to work on external display
Dragging on launcher background on external display didn't do anything
because there was no StatusBarTouchController. Now by adding it to
SecondaryDragLayer, we can open the shade on external display via
launcher drag

Bug: 362719719
Bug: 416511740
Test: manual testing
Flag: EXEMPT refactor only
Change-Id: I1a587fe85bf2e7c6f212b3358646d5d282019eef
2025-05-13 13:26:41 -07:00
Sunny Goyal 43841027b0 Merge "Removing some unnecessary launcher typecast" into main 2025-05-13 11:42:34 -07:00
Sunny Goyal b2315b69c2 Removing some unnecessary launcher typecast
Bug: 417227133
Flag: EXEMPT refactor
Test: Presubmit
Change-Id: Ie794e4855441f86441d869d315699bf46fce0db5
2025-05-13 08:26:25 -07:00