Commit Graph

20 Commits

Author SHA1 Message Date
Shamali Patwa
7de040acac Update widget picker component to define dependencies and provide full catalog for clients to use.
Bug: 408283627
Flag: EXEMPT independent module
Test: Not applicable.
Change-Id: I573036882472c44de7024322a6ed2aa037eab277
2025-05-23 12:12:36 -07:00
Shamali Patwa
df07059bd4 Add widget picker search screen.
This adds the search screen and view model logic. 

It uses the same composable structure as the landing screen.

Bug: 408283627
Flag: EXEMPT independent module
Test: Unit tests
Change-Id: Ic83090be21b31a4f1b416284f78d5a05d5cd2cdc
2025-05-23 12:12:27 -07:00
Shamali Patwa
e7e3a14e95 Adds widget picker landing screens
This CL includes following:

*   ViewModel base class for reuse across widget picker.
*   Landing screens implemented in both compact and expanded mode.
*   Test cases for the same.

Bug: 408283627
Flag: EXEMPT independent module
Test: Unit tests
Change-Id: Ia4a7f0b972ca0d3863f041aac276cb3c5096a258
2025-05-23 11:52:46 -07:00
Shamali Patwa
cd2104334c Add WidgetsInteractor that enables view layer to interact with widgets
- This is responsible for looking up data from repositories and applying
business rules using use cases.

Bug: 408283627
Flag: EXEMPT independent module
Test: Unit tests
Change-Id: I767186a38b3105085637c75d9aec8ca21788f49f
2025-05-22 16:37:46 -07:00
Shamali Patwa
d3c07f8e9c Add use cases in widget picker domain layer that apply business rules.
These will be used by the interactor classes to provide data to the
ui layer.

- FilterWidgetsForHostUseCase filters widgets that don't match the
 constraints specified by the host
- GroupWidgetAppsByProfileUseCase groups widgets based on their user
profile; and ensures that if work profile is paused, its widgets are
 treated as empty list.

Bug: 408283627
Flag: EXEMPT independent module
Test: Unit tests
Change-Id: I676715daf5e400ba12acf50f867a5aa352d7bdf1
2025-05-22 16:03:27 -07:00
Shamali Patwa
a4ffc73d92 Updates to repository interfaces & data types for widget picker
- I think the previews / featured / search all could be part of widgets
 repository. Internally, it will use separate datasource to prepare the
  respective data - but as a repository, they all are probably just
  a widgets repo.
- Includes minor changes to data types as well to prepare for upcoming
changes.

Bug: 408283627
Flag: EXEMPT independent module
Test: Not applicable - interface changes
Change-Id: I765c11318a655603becdf2cab081f0fcf777da1a
2025-05-22 16:03:16 -07:00
Shamali Patwa
0b3a0df76a Add test for widget previews using remote views.
Bug: 408283627
Flag: EXEMPT independent module
Test: WidgetsGridScreenshotTest:widgetsGrid_remoteViews
Change-Id: I4ce8eb92269af13207180e50793e65e23958cd00
2025-05-19 13:12:10 -07:00
Shamali P
4d7992617b Add preview for widgets using layout / remote views.
Bug: 408283627
Flag: EXEMPT independent module
Test: WidgetsGridScreenshotTest:widgetsGrid_remoteViews
Change-Id: I70dd1438d12729fb85bead5ffdacb4fbc26fb29c
2025-05-19 13:12:02 -07:00
Shamali Patwa
6cea97c382 Disable the flaky compose screenshot test
There seems to be some flakiness with fonts; while I figure it out,
disabling the tests.

Bug: 418064758
Flag: EXEMPT test
Test: Not applicable.
Change-Id: I4ff19db8a18c76814a9af0d0589f1a2aa90d68d1
2025-05-19 07:06:25 -07:00
Shamali P
0725160c04 Add a widget apps list and the header composable for widget picker.
Can either be selectable on click or expandable.

Bug: 408283627
Flag: EXEMPT independent module
Test: will be part of larger screenshot test
Change-Id: I991164c54d52cd64effff4987ff6c55107acb149
2025-05-13 17:13:56 -07:00
Shamali P
ef8d996924 Add screenshot tests for the widgets grid in picker
Covers entire grid area with test samples of varying sizes for testing
 the grid placement logic.

Bug: 408283627
Flag: EXEMPT independent module
Test: Screenshot test
Change-Id: I5a4ab0d000e33b71de3760b729922f26445b0e8c
2025-05-13 17:12:57 -07:00
Shamali P
aa6159b111 Implement a grid of widgets for displaying in widget picker
BYPASS_LARGE_CHANGE_WARNING
Bug: 408283627
Flag: EXEMPT independent module
Test: Screenshot test

Change-Id: I0139faa9e522dc8f1fcf3b5fbf3362b5ec07047d
2025-05-13 23:13:59 +00:00
Shamali P
ce557540d7 Add widget preview composable for widget previews in picker
This cl contains just the image previews, the remote view ones in
 follow up

Bug: 408283627
Flag: EXEMPT independent module
Test: See grid screenshot test
Change-Id: Icf5e7eb98f6714b4a2954dcb9fcf75c0249a4d35
2025-05-13 23:12:11 +00:00
Shamali P
4f730ad128 Add details composable for details shown below widget previews in picker
Bug: 408283627
Flag: EXEMPT independent module
Test: See grid screenshot test
Change-Id: I08dfb5fcca9aaf3b630ab1c6ec56fad613127a17
2025-05-13 23:12:11 +00:00
Shamali P
ceab4fe654 Add a temporary component to display app icon for widgets list
This would be replaced with dependency on icon library (whenever that's
available).

Bug: 408283627
Flag: EXEMPT independent module
Test: will be part of larger screenshot test
Change-Id: Ifeff459fd679308a8f8a33d51f99db19898eedd5
2025-05-13 19:10:05 +00:00
Shamali P
851cbe3253 Make title optional on the widget picker bottom sheet & update insets
- Optional title will allow us to skip it in landscape and make more
 space
- Applies display cutout inset to the content instead of sheet, to make
 it appear edge to edge -- this isn't case today, but its a new request
  from UX

Bug: 408283627
Flag: EXEMPT independent module
Test: will be part of larger screenshot test
Change-Id: I035bbde1dcca990179c69a3bc1f2175d85a212ea
2025-05-13 17:14:51 +00:00
Shamali P
901b069a1c Add a search bar for widget picker in compose
Bug: 408283627
Flag: EXEMPT independent module
Test: will be part of larger screenshot test
Change-Id: I933357a98b014f19f5ee8a9e81f02a221a3731e2
2025-05-13 17:14:51 +00:00
Shamali P
e244e93c6a Add an option to show shadow on the floating toolbar.
In case of two pane layout, the toolbar appears over the list, so, shows
a shadow.

Bug: 408283627
Flag: EXEMPT independent module
Test: Screenshot test
Change-Id: Ifd126adc7dcbd81907809c961577f958c0f9c06b
2025-05-13 17:14:51 +00:00
Shamali P
dc587e5601 Add top level reusable layouts for widget picker
Bug: 408283627
Flag: EXEMPT independent module
Test: See demo; will be part of larger screenshot test
Change-Id: I10ebc3982b9c64b4b475a3d2201bf1afb1ad654a
2025-05-13 17:14:51 +00:00
Shamali P
22ed792253 Move widget picker directory to be under launcher3
Bug: 408283627
Flag: EXEMPT independent module
Test: Unit tests
Change-Id: Ife6bfb3579f4a9923c6c657b1dcca33c94aada4a
2025-05-09 21:27:36 +00:00