Commit Graph

113 Commits

Author SHA1 Message Date
Catherine Liang
b5fdc80bb2 Handle messages to update Launcher preview color
Receive color update messages with a list of color resource ids and a
corresponding list of color overrides, and adjust the preview
accordingly.

Flag: com.android.systemui.shared.new_customization_picker_ui
Test: manually verified that the selected colors are previewed
Bug: 350718581
Change-Id: Ibcde0575416df00b76627ac1004f21f5f9af1196
2024-10-04 19:33:45 +00:00
Sunny Goyal
621918feda Changing min-sdk version of Launcher to 31
Bug: 368071216
Flag: EXEMPT refactor -> dead code removal
Test: Presubmit
Change-Id: I1f0113c56de56f12f3a174eb31c3f8e8a09407e6
2024-09-20 06:00:10 +00:00
Liran Binyamin
69f4974e24 Hide hotseat when bubble bar is expanded.
Added logic to stash the hotseat when on launcher home screen.

Bug: 280494203
Test: Manual:
http://recall/-/gx8ASgewUeUS3QYohfrd1J/fjfjUw296LRXUm9uYqXU4K
all tests in com.android.launcher3.taskbar
Flag: com.android.wm.shell.enable_bubble_bar

Change-Id: I67b298831eaed9c549a2fae7dc5a0d9fae51f7c4
2024-09-16 15:50:28 -07:00
Shamali P
3ae39c72de Cleanup widgetsModel and add tests
1. Removes unused method `getAllWidgetComponentsWithoutShortcuts`
2. Exposes widgets either as component map or package item map - to
eliminate the duplicate logic around widget sections.
3. Add tests that validate that each package is unique - to help
cover the redirect issue seen in past.
4. In follow up cls, other methods that deal with picker specific data
types like WidgetsListBaseEntry will also be moved out - leaving the
model to only be responsible for providing all widgets map or widgets
by package.

Bug: 341611976
Flag: EXEMPT BUGFIX
Test: Unit test
Change-Id: Ife70874d312b51c66025a6ec678480f2b5c41793
2024-07-17 14:29:31 +00:00
Fengjiang Li
6944c9e63f [Launcher Jank] Add TODO for LauncherPreviewRenderer to set bg handler on smartspace BaseTemplateCard
Fix: 347775522
Flag: NONE - performance change
Test: manual
Change-Id: I19ba67e1eabfe02c45909d85d723bc28a78ae6df
2024-07-09 13:38:32 -07:00
Sunny Goyal
bf3efe8af0 Fixing LauncherIcons leaking outside sandbox context
Since LauncherIcons was using a global static pool, a custom
instance for a test could leak into the global pool, affecting
other tests

Bug: 335280439
Test: Verified image test on device
Flag: None
Change-Id: Iedd19c8e69c928e44b65eae7eba0167b03b5df6b
2024-05-07 12:13:37 -07:00
Charlie Anderson
496198ac4a Merge "Fixes padding for app icons in Launcher preview for Foldable devices in unfolded state." into main 2024-05-03 18:46:00 +00:00
Charlie Anderson
0920311107 Fixes padding for app icons in Launcher preview for Foldable devices in unfolded state.
Also adds unit tests for the padding.

Bug: 332566064
Test: manually verify
Flag: N/A
Change-Id: Ic9227086b4025b4f266f2f2305159f032c21556b
2024-05-03 16:07:24 +00:00
fbaron
9d08e0fe70 Migrate smartspace as a widget and smartspace removal toggle flags to aconfig
Bug: 336823684, 336823681
Test: none
Flag: ACONFIG enable_smartspace_as_a_widget DISABLED
Flag: ACONFIG enable_smartspace_removal_toggle DISABLED
Change-Id: I4cba42e09f58365f761ab866b15a494817e6bb0f
2024-04-25 14:26:30 -07:00
Sunny Goyal
edbe8e5ffc Merge "Fixing MainThreadInitializedObject" into main 2024-04-23 18:06:38 +00:00
Sunny Goyal
10fa016352 Fixing MainThreadInitializedObject
> Making SafeCloseable implementation mandatory, to prevent leaks during test and preview
> Removing getNoCreate method and defining executeIfCreated to avoid null pointer exceptions
> Fixing sandbox value leaking into main, by Checking sandbox against App context
> Converting sanbox to an interface instead a class

Bug: 335280439
Test: Presubmit
Flag: None
Change-Id: I951dcde871898e745ff6490a1c4f8fd1512888f5
2024-04-22 17:04:33 -07:00
Sebastian Franco
b41d4b4e7a Make getWidgetProviderInfoByProviderName return the correct WidgetItem
for Pixel own widgets.

The pixel own widgets can have categories and getWidgetProviderInfoByProviderName
might not find the right widget if the widget has a category.

Flag: NA
Test: Manaul testing =(
Test: Make sure the placement in the widget picker is correct.
Test: All widgets in widget_section.xml with alsoKeepInApp set to false will previously dissapear on the preview.
Fix: 331628371
Change-Id: I1e4c8ae3dd21f8aef3e4aac99ce6ce6701e94760
2024-04-22 10:47:50 -07:00
Shamali Patwa
1b8fcf4371 Merge "Revert "When getting a widget provider by name, check all categories"" into main 2024-04-18 22:14:29 +00:00
Shamali Patwa
7e5ed568b9 Revert "When getting a widget provider by name, check all categories"
This reverts commit 1f69351310.

Reason for revert: Testing odd behavior between google app and pixel weather and duplicate items issue

Change-Id: If181aa3e86969e8821b7e1cc765c3801f04489d2
2024-04-18 18:16:38 +00:00
Sebastián Franco
f0c030380a Merge "When getting a widget provider by name, check all categories" into main 2024-04-17 16:24:21 +00:00
Sebastian Franco
1f69351310 When getting a widget provider by name, check all categories
Some widgets have different categories for special cases for Pixel
widgets and because of that, some times we can't find the provider,
so we need to go through all of the categories.

Flag: NA
Test: Manaul testing =(
Test: All widgets in widget_section.xml with alsoKeepInApp set to false will previously dissapear on the preview.
Fix: 331628371
Change-Id: Iffbb788cbb27c79a215d06d21c9d623462d6f7e6
2024-04-15 19:21:21 -07:00
Sunny Goyal
4a22ed81ea Using resource overrides for PluginManager instead of code-swap
Bug: 330920490
Test: Presubmit
Flag: None
Change-Id: Ib1cd50f95873928b9ce104e8e95d21f1dca9c6e3
2024-04-12 11:38:32 -07:00
Jeremy Sim
742630c2f8 Reparent folders and app pairs
Previously, app pairs and folders shared a common data model, FolderInfo. Now we need to separate them, so a new type, CollectionInfo, will serve as the parent of both types.

Bug: 315731527
Fixes: 326664798
Flag: ACONFIG com.android.wm.shell.enable_app_pairs TRUNKFOOD
Test: Manual, unit tests to follow
Change-Id: Ia8c429cf6e6a376f2554ae1866549ef0bcab2a22
2024-03-29 15:39:28 -07:00
Jeremy Sim
46ca78ee78 Merge "Refactor how app pair icons draw" into main 2024-03-26 02:39:37 +00:00
Jeremy Sim
b37faec287 Refactor how app pair icons draw
This changes (and cleans up) the way app pair icons are composed. Previously, the background and 2 icons were drawn individually and separately onto the canvas. Now, they are composed into a combined drawable first. This also allows the full icon drawable to be requested by external functions (which will be needed for display app pairs in folder previews).

Bug: 315731527
Flag: ACONFIG com.android.wm.shell.enable_app_pairs TRUNKFOOD
Test: Visually confirmed that app pairs loooks the same in all scenarios: rotation, disabled, themed, taskbar, pinned taskbar. Screenshot test to follow.
Change-Id: I7242e0c525ef578a54a06fb9137fcfc42c6f0e86
2024-03-25 16:43:40 -07:00
Sunny Goyal
bd7ec3335b Using xml override instead of code swap for predicted icon
Bug: 330920490
Flag: None
Test: Presubmit
Change-Id: I5ff52464b931630da003fb6aeff2a4fd9d2dd3b3
2024-03-25 15:18:48 -07:00
Andy Wickham
b922dccbf5 Cleanup API checks for P, Q, and R.
Test: Build with gradle
Flag: NA
Change-Id: I3ef17090741d14bebd76cf09cf3dc5ac4f11e686
2024-01-24 14:58:08 -08:00
Catherine Liang
b0de412e47 Fix Launcher preview display size
When previewing the Launcher in the Wallpaper Picker for a different
display size than the current screen, the preview no longer adapts to
that screen size.

Flag: ACONFIG com.android.wallpaper.multi_crop_preview_ui_flag DEVELOPMENT
Bug: 316000567
Test: manually verified
Change-Id: Ib10f2c9acec98ed99cadd40a588e2ffdea900ba6
2023-12-14 19:08:39 +00:00
Stefan Andonian
dd088daead Revert "Update launcher preview icons on themed icon update"
Revert submission 25242534-launcher-preview-update-themed-icon

Reason for revert: This change potentially breaks the launcher's database.

Reverted changes: /q/submissionid:25242534-launcher-preview-update-themed-icon

Change-Id: I90fd55695b24529752a82cb6bf001935204a53f7
2023-11-30 20:12:40 +00:00
Catherine Liang
d64230f449 Update launcher preview icons on themed icon update
Flag: NA
Bug: 300257098
Test: manually verified
Change-Id: Ic34cdce3021d8fcc97c153671bd1f05013933b6d
2023-11-03 11:40:02 +08:00
fbaron
c0e687bad8 Add smartspace removal option as a toggle
Bug: 303471576
Test: try removing smartspace by going to home settings and turning it off
Flag: ENABLE_SMARTSPACE_REMOVAL
Change-Id: Idd95da1b302927885a8c469e38db6d3c5130f8c1
2023-10-05 17:26:03 +00:00
fbaron
e58aaf1802 Add smartspace as a widget to first page (implementation 2)
Flag: SMARTSPACE_AS_A_WIDGET
Test: verify that the smartspace gets replaced with a smartspace widget
Bug: 300140279
Change-Id: I42c170de5e2a9fd3d24d99bb8b09cf412c55e3a5
2023-09-29 18:16:09 +00:00
Sebastian Franco
1e4e50149b Reorder code so we can use different displays on the preview render
The existing code almost have the avility to use different display
for the preview by providing a different display id, this change
just make sure the InvariantDeviceProfile is created after we
create a new context with the desired display and we need to use
the default display for the SurfaceControlViewHost

Test: Manual testing, changing the display id on FixedWidthDisplayRatioFrameLayout
Bug: 292152331
Change-Id: I450d94a9a3f1a6a7b0c2b0722a11cf335122de05
2023-08-14 12:56:13 -07:00
Jeremy Sim
94fd07e5da App Pairs: Implement save, inflate, launch, and delete
This is the third of several patches implementing the App Pairs feature behind a flag.

This patch includes:
- AppPairIcon and associated XML. Actual icon asset is placeholder for now
- Ability to launch split pair on click
- Icon can be moved around, incl. to Taskbar
- App pair can be deleted by dragging to "Remove" drop zone
- Icon persists on Launcher reload

Change-Id: I88aec6fbc814be98f9ef048bbc5af889d0797970
Flag: ENABLE_APP_PAIRS (set to false)
Bug: 274835596
Test: Not included in this CL, but will follow
2023-08-02 12:08:41 -07:00
Sunny Goyal
e274d97fe5 Removing support for lagacy shortcuts
> Addition/removal of  shortcus is already removed. This just
  cleans up the unused code path

Bug: 275875209
Test: Updated tests
Flag: N/A
Change-Id: I8ab7f57b693f996920e50e8beecafcffab5167e9
2023-05-17 09:20:45 -07:00
Brian Isganitis
aa9bef2f31 Cleanup WIDGETS_IN_LAUNCHER_PREVIEW.
Test: Manual
Fix: 270393268
Change-Id: I2d90f92c6bc85d59d56f5e6c2d6005554f932895
2023-05-15 13:29:05 -04:00
Sunny Goyal
6c304b157d Always insetting the widget by a minimum of 6dp
Removing default widget padding logic. Also widget padding it applied
at ShortcutAndWidgetContainer so that the widgetView always has the
correct size.

Bug: 274826296
Bug: 257589413
Test: Verified using screenshots
Flags: N/A
Change-Id: Id4b5e94db6ec7b2aa3dca87b1e9ccc831b608cac
2023-05-03 12:18:33 -07:00
George Lin
f469c4c006 [Launcher] Hide preview bottom components when overlay tabs are shown
For deciding show/hide of the bottom components, we need to take care of 2 cases
1. When on color update, we need to set the QSB flag and re-render the
   surface
2. When show/hide the wallpaper control, we specifically send a message
   to show/hide the workspace bottom components

Test: https://drive.google.com/file/d/1z1EG6KsLKFxAlS8GBLV16GoGvwI72IHc/view?usp=sharing&resourcekey=0-OGzB0RmiK5qvV2rwMYvUHQ
Test: https://drive.google.com/file/d/1gK54Y5MuHTt2tAuFDxY7z8RIL22J5c9f/view?usp=sharing&resourcekey=0-jPPC1pl1VkCS_tib2-pVxA
Test: https://drive.google.com/file/d/1ntUSgD7KbHPDGNpomQ5zE0D2fsYVeuNA/view?usp=sharing&resourcekey=0-TCuuvL4p022ATzKYuF-Q1A
Test: https://drive.google.com/file/d/1yA1K52N-orajamnrxWD17Qg7bCclmq53/view?usp=sharing&resourcekey=0-6LHnZGM5JpFQISNJ6X7jEg
Bug: 266618769
Change-Id: I428e6f50dc71369aa8fcdee31629023709e6503f
2023-03-23 18:36:18 +00:00
Sunny Goyal
669b71f5b3 Introducing CellPosMapper which allows mapping between UI position
and model position

Test: atest CellPosMapperTest
Bug: 188081026
Change-Id: If5c6b3df5ad240317bb535c675f6ead94084238e
2023-01-30 12:17:09 -08:00
Stefan Andonian
dbff8cda6c Fix crash in LauncherPreviewRenderer.
The LauncherPrefs INSTANCE variable needs to be registered with the
sandbox context used by the LauncherPreview. This will stop the crash
from occuring.

Bug: 266164372
Test: Verified that crash no longer occurs.
Change-Id: I12ef12d082b7afdb08b38321527d13c637e84f2f
2023-01-23 18:11:49 +00:00
Sunny Goyal
54fa110bba Removing some unnecessary interfaces and merging them to ActivityContext
Bug: 259733681
Test: Everything compiles
Change-Id: If6b530f6e589a851cf8554f5de0849843bd66dd4
2022-12-08 10:15:55 -08:00
Sebastian Franco
2ceb3b5088 Adding screen ID parameter in CellLayoutLayoutParams
Bug: 188081026
Test: launcher compiles, this test doesn't change existing logic only the model
Change-Id: I7bcf6452d5ecb9b50914defc311ad06839220c92
2022-12-02 13:40:34 -08:00
Sihua Ma
8bbfcb6581 Move LauncherWidgetHolder to widget package
Making LauncherAppWidgetHost package-private as well

Bug: 235358918
Test: N/A
Change-Id: If022ec8d429579a972991872b2dc11db76719341
2022-11-16 14:31:14 -08:00
Sihua Ma
aa2b872d1c Move most of the functions in LauncherAppWidgetHost to LauncherWidgetHolder
Test: N/A
Bug: 235358918
Change-Id: I343419376491203a195154f2766b12e5def38879
2022-11-16 14:30:08 -08:00
Sebastian Franco
d468299c0f Moving the class LayoutParams to a file outside CellLayout
I'm moving the LayoutParams to another file to start the decoupling
of the Reorder outside of the CellLayout.

Also, I change the name from LayoutParams to LauncherLayoutParams to prevent confusion with ViewGroup.LayoutParams making it explicit that this are different LayoutParams.

Bug: 188081026
Test: atest ReorderWidget
Change-Id: I92251c5540ffcf5ece7b933e6f6c836eb825c997
2022-10-12 16:14:42 +00:00
Sihua Ma
e04aa207f2 Resize preview for correct clipping
Before, the remote view for the widget in launcher is reused to generate a new preview. However, measuring the view without changing the scale would cause strange clippings. This CL sets the scale of the widget views by manually computing the size ratio.

Change ag/19572297 is necessary before a complete clean-up.

Test: Create a weather widget on first screen -> go to Wallpaper & style -> App grid -> tap on a different grid and verify that the clipping is correct
Fix: 228328759
Change-Id: I8242d3bcfcf30ec924552c1320e22f8a3592f1c1
2022-08-09 23:57:41 +00:00
Sihua Ma
dfd8bfc7e0 Added functions to pass launcher widget span info to preview
To calculate the widget scales correctly for the launcher preview in different grids, the span info of the widgets in the launcher is necessary. Querying the launcher widget info in the database and passing it to the preview render.

Test: Verified that no exceptions were happening when changing preview grid layouts
Bug: 228328759
Change-Id: I681d21b176c8fe5208431a79009d9ba8279cda6a
2022-07-14 20:17:19 +00:00
Alex Chau
1145722685 Add DisplayController in PreviewContext's allowed objects
Fix: 231526132
Test: switch grids
Change-Id: Ie43c54c5fbbea51ee3b795be6baa9c2eaf5e15e4
2022-05-06 20:17:57 +01:00
Shikha Malhotra
e957b600d3 Refactor code to be used in LauncherLily features
Refactor add to workspace code to be used in Lily Launcher.
Also utilising code swap feature to swap out functionality of sorting
items on workspaces and finding next vacant space.

Bug: b/218186705
Test: Manually tested Launcher3 works.
Change-Id: I42a44eabeb307e1d23ef333e0a169437f9062bb6
2022-04-20 07:22:20 +00:00
Pat Manning
08610ca583 Adjust workspace grid and cellLayout paddings.
This is a partial revert of ag/17540098

Bug: 202971709
Test: manual
Change-Id: Ia49e48f336bcca906aae6b014d88f10421b83d0c
2022-04-06 13:10:50 +01:00
Pat Manning
e372366bb3 Revert "Adjust edit state drop targets, workspace scaling, and m..."
Test: manual

Revert submission 17004675-edit-state

Reason for revert: b/226274309
Reverted Changes:
Ib50509b6f:Adjust edit state drop targets per device type and...
Id1817cd3c:Adjust edit state drop targets, workspace scaling,...

Change-Id: I22863d7735f49f6a040a17cf56cc66f20a3e0986
2022-03-28 08:24:54 -04:00
Pat Manning
1acf2b18af Adjust edit state drop targets, workspace scaling, and margins per device type and orientation.
Bug: 202971709
Test: manual
Change-Id: Id1817cd3c7e7bfa5b0aa8aa20565b791ad871f64
2022-03-18 17:43:28 +00:00
Sunny Goyal
187b16cb91 Updating window manager estimation logic:
> Moving the code from ApiWrapper to Resource overlays for better maintainability
> Accounting for display cutouts in insets estimation
> Using same logic in display controller and view inset dispatching

Test: Verified on device
Bug: 221961069
Change-Id: I78466353563692ce3f7512b0146ef8b61ef14bc0
2022-03-09 11:15:58 -08:00
Thales Lima
83b345338b Stop using bottom inset in preview
We are not using the bottom inset (navbar) in Launcher anymore, so we should not use it in preview as well.

Fixes 205284107
Test: manual

Change-Id: Iefd71b3cbe8e738c4559716af8c85015ba7c3c41
2022-02-17 13:35:41 +00:00
Sunny Goyal
68af549a45 Adding icon theming API support in Launcher
Bug: 200082620
Test: manual
Change-Id: If986b9cfc3db79d627d2a6f1304e1b6f58491470
2022-01-08 00:05:47 +05:30