Commit Graph

20057 Commits

Author SHA1 Message Date
Matthew Mourgos 45101ddfb5 Navigate Home to hide tasks on WidgetPicker show
When the widget picker is shown while the show_home_behind_desktop
feature is enabled, it becomes possible for the widget picker to be
opened while freeform tasks are occluding the home screen. To fix this
case, navigate Home to move it in front of occluding tasks, and then
open the widget picker. Navigating home is an asynchronous action, and
widget picker will already be opening once the intent executes, so
exlude closing the widget picker when closing all AbstractFloatingViews
in this case.

This change is intended for the desktop form factor.

Bug: 416057590
Flag: com.android.window.flags.show_home_behind_desktop
Test: Open freeform tasks, open WidgetPicker via menu, make sure that
tasks are hidden and WidgetPicker shows.

Change-Id: I19ebeeb706ae7374df8038d956d453708bc96f7e
2025-05-29 13:13:20 -07:00
Catherine Liang 4bbf978043 Move custom Launcher theme flag to shared SysUI package (1/3)
This allows the flag to be shared with Customization Picker.

Flag: com.android.systemui.shared.extendible_theme_manager
Test: manually verified by building w/ soong and gradle
Test: manually verified by flipping flag
Bug: 397782741
Change-Id: I131f54602e33dd2b92ce0068f5fc43da3e150a01
2025-05-29 18:47:43 +00:00
Sebastian Franco 8244449a9f Moving taskbar variables in DeviceProfile to their own class
Bug: 419264653
Flag: EXEMPT refactor
Test: DeviceProfileDumpTest
Test: All Image tests
Change-Id: I05ec9e15ef02096326596af4835adb706473a736
2025-05-29 11:04:06 -07:00
Treehugger Robot ba8a5a2235 Merge "Disable surface effects when a theme controller doesn't support adaptive themed icons" into main 2025-05-29 09:57:49 -07:00
Treehugger Robot 3893804a59 Merge "Moving hotseat variables in DeviceProfile to their own class" into main 2025-05-29 09:01:51 -07:00
Uwais Ashraf 478f07798e Moving hotseat variables in DeviceProfile to their own class
Bug: 419264653
Flag: EXEMPT refactor
Test: DeviceProfileDumpTest
Test: All Image tests
Change-Id: I377b33668c3ed330d362527f62226dd84a5773db
2025-05-29 13:16:05 +00:00
Treehugger Robot baacf9f4df Merge "Converting StatsLogManager to kotlin" into main 2025-05-28 18:29:53 -07:00
Shamali Patwa 8e1ac2de44 Repository and datasource implementations backing the widget picker.
Bug: 408283627
Flag: EXEMPT independent module
Test: Existing tests
Change-Id: I0f0b68c25f416c8494f363ecc93a388570f8dfa6
2025-05-28 16:49:18 -07:00
Shamali Patwa 807d4c0268 Open widget picker activity instead of full sheet when refactor flag is on
Bug: 408283627
Flag: EXEMPT independent module
Test: Manual
Change-Id: I6dbd1614ae1e49e3c781d6e08199c8c17221eed7
2025-05-28 16:49:06 -07:00
Sunny Goyal ac35781625 Disable surface effects when a theme controller doesn't support adaptive themed icons
Bug: 420985075
Bug: 415118235
Flag: com.android.launcher3.extendible_theme_manager
Test: Verified on device
Change-Id: I82c46e529aa59be345bf6cdfcfa29fdf784c0068
2025-05-28 16:38:24 -07:00
Treehugger Robot 6facece986 Merge "Adding dagger subcomponent for activity context scope" into main 2025-05-28 16:11:00 -07:00
Matthew Mourgos 4ddf9f1df1 Merge "Disable swipe up on workspace when launcher is not the top task" into main 2025-05-28 14:26:33 -07:00
Sunny Goyal bb0f554148 Converting StatsLogManager to kotlin
This is make it easier to create factory classes for individual when adding more injected parameters

Bug: 361850561
Test: Presumit
Flag: EXEMPT refactor
Change-Id: Ie68e9e24aae801b7fed14d1b03df760e5b67c183
2025-05-28 14:12:13 -07:00
Sunny Goyal 182dbd609d Adding dagger subcomponent for activity context scope
Bug: 361850561
Test: Presumit
Flag: EXEMPT refactor
Change-Id: I2d2e556fc1c81eaac74e2a1a2a1c5526505f7a56
2025-05-28 13:33:22 -07:00
Treehugger Robot bf0411ea7e Merge "Update hotseat qsb and icons visibility with alpha" into main 2025-05-28 11:18:13 -07:00
Matthew Mourgos eca91f8de6 Disable swipe up on workspace when launcher is not the top task
When freeform windows are shown on top of launcher, disable the swipe up
to open all apps, which would open behind these windows. This change is
inteded for the desktop form factor.

Bug: 419565477
Flag: com.android.window.flags.show_home_behind_desktop
Test: Manually swipe up on home screen with freeform windows shown.
Change-Id: I795e9e05fe39b0cf8033b51ce4369340d49ef812
2025-05-28 10:55:16 -07:00
Sebastian Franco 6dcdd67e23 Moving bottom sheet variables to their own class
Bug: 419264653
Flag: EXEMPT refactor
Test: DeviceProfileDumpTest
Test: All Image tests
Change-Id: Ibaee4e94e54dbeb2f79ea5c1b6e73415ae219251
2025-05-28 13:48:44 +00:00
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
Toni Barzic d8526a858f Update hotseat qsb and icons visibility with alpha
Updates multi value alpha tracker for qsb and icons in hotseat to update
the view visibility when alpha is set to fully transparent. This
prevents fully transparent views from getting keyboard focus, or
interactions where tapping on seemingly empty parts of the home screen
launching search.

Test: On desktop device, where hotseat is hidden due to presence of
      tasbkar, verify that invisible hotseat icons, or qsb do not get
      focused during keyboard navigation. Verify that tapping just above
      taskbar in left bottom area of workspace is no-op.
Bug: 404868614
Flag: EXEMPT bugfix
Change-Id: Ibccd3536209c7966498863fcb3f006b721443c3c
2025-05-21 18:05:55 +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