Commit Graph

19989 Commits

Author SHA1 Message Date
Sebastian Franco 609df338cc Moving dropTarget variables in DeviceProfile to their own class
Bug: 419264653
Flag: EXEMPT refactor
Test: DeviceProfileDumpTest
Test: All Image tests
Change-Id: I8fc519ec8adcda6495ac7c9a9c747b6a80615547
2025-05-27 22:18:28 -07:00
Shamali Patwa 3b04cf3155 Merge "Extract widget picker intent extras in WidgetPickerActivity" into main 2025-05-27 20:09:52 -07:00
Sebastián Franco 6488138490 Merge "Moving Overview variables to OverviewProfile class" into main 2025-05-27 18:01:38 -07:00
Treehugger Robot 13a600cd96 Merge "Adding ListenableRef as an alternative to StateFlows." into main 2025-05-27 18:01:25 -07:00
Shamali Patwa 021c13c172 Extract widget picker intent extras in WidgetPickerActivity
This change refactors activity to move base activity to launcher3

This is to prepare for using it for launching widget picker for
homescreen and use compose.

Bug: 408283627
Flag: EXEMPT independent module
Test: Manual
Change-Id: I271748fb73b3691ba4d046ac8aceb51c4c8aea55
2025-05-27 17:21:31 -07:00
Sebastian Franco 3bd77e2aae Moving Overview variables to OverviewProfile class
Bug: 419264653
Flag: EXEMPT refactor
Test: DeviceProfileDumpTest
Test: All Image tests
Change-Id: I01644a546a5ce867d1dced1521deb798d6fc3a19
2025-05-27 15:07:38 -07:00
Treehugger Robot 97594d1e94 Merge "Unregister AbsSwipeUpHandler's ContextInitListener on launcher destroy" into main 2025-05-27 11:45:32 -07:00
Schneider Victor-Tulias 8f88cb272d Unregister AbsSwipeUpHandler's ContextInitListener on launcher destroy
- Unregister the init listener on launcher destroy to unblock the home button
- This also exposes a crash in AbsSwipeUpHandler.onRecentsAnimation start since the home bounds aren't available. So, also adding handling to reload the launcher on night mode change

Flag: EXEMPT bug fix
Fixes: 384423890
Fixes: 416536400
Test: changed dark theme then swiped/pressed home and overview buttons.
Change-Id: Ic26192e8d0e4e6b226fb9af6dba596aa78a09e96
2025-05-27 11:39:53 -07:00
Tony Wickham 84cd5182ba Merge "Migrate some logs to OverviewCommandHelperProtoLogProxy" into main 2025-05-23 22:44:08 -07:00
Treehugger Robot a591225da1 Merge "Adding support for custom signature for grid customization" into main 2025-05-23 19:09:21 -07:00
Sunny Goyal ca7fe2f56c Adding support for custom signature for grid customization
Bug: 403628674
Flag: EXEMPT flagging not supported
Test: Verified manually
Change-Id: I009cc3814c593b2906acd05cb19391cacc5fbaaa
2025-05-23 16:31:59 -07:00
Sebastián Franco e1d31e5406 Revert "Revert "Moving DeviceProfile properties into DevicePrope..."
Revert submission 33716851-revert-33672643-DataDeviceProfile1-XHYRAPLEBK

Reason for revert: Error is fixed

Reverted changes: /q/submissionid:33716851-revert-33672643-DataDeviceProfile1-XHYRAPLEBK

Change-Id: Ib86824134955903c11e51e52dbfd6368aba1cd50
2025-05-23 14:08:11 -07:00
Priyanka Advani (xWF) 1bec329180 Merge "Revert "Moving DeviceProfile properties into DeviceProperties da..."" into main 2025-05-23 14:03:53 -07:00
Priyanka Advani (xWF) 7705e92d93 Revert "Moving DeviceProfile properties into DeviceProperties da..."
Revert submission 33672643-DataDeviceProfile1

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

Fix: 419867875

Reverted changes: /q/submissionid:33672643-DataDeviceProfile1

Change-Id: Icb66aefbbcee24e05806b2139923e1f2ea1c65e3
2025-05-23 13:53:04 -07:00
Sunny Goyal a57d75cd11 Adding ListenableRef as an alternative to StateFlows.
This allows using listener pattern instead of coroutines within the recommended repository pattern and avoid the jank due to coroutines

Bug: 390572144
Test: atest ListenableRefTest
Flag: com.android.launcher3.model_repository
Change-Id: I9f74166e01e1bdb4cb8afce3213022ea10137230
2025-05-23 13:52:16 -07:00
Sebastián Franco b80423b1b7 Merge "Moving DeviceProfile properties into DeviceProperties data class" into main 2025-05-23 13:17:32 -07:00
Andy Wickham bdbf8a9935 Merge "Only ignore All Apps left/right insets on tablets." into main 2025-05-23 12:53:58 -07:00
Sebastian Franco e1111e28c2 Moving DeviceProfile properties into DeviceProperties data class
Bug: 419264653
Flag: EXEMPT refactor
Test: DeviceProfileDumpTest
Test: All Image tests
Change-Id: I638f88cd76b926917965dbf9e70b5bdfff5971e0
2025-05-23 10:42:26 -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
Tony Wickham e9ef7ad43c Migrate some logs to OverviewCommandHelperProtoLogProxy
This will allow us to see the logs in Winscope, including frame by
frame to make debugging easier.

Also added a log for Launcher#onNewIntent to help with Home button.

Test: EXEMPT log only update
Bug: 417248321
Bug: 384423890
Flag: NONE log only update
Change-Id: Ib24aeb78e44ff29542eb25411c51f77dba299a2e
2025-05-21 15:32:03 -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