9 Commits

Author SHA1 Message Date
Shamali Patwa
bdc7e215b7 Update picker tests to wrap content with widget picker theme.
Bug: 408283627
Flag: EXEMPT independent module
Test: Not applicable
Change-Id: Ied4f4ddca313262bc125b9fb98e5f2670333375b
2025-06-03 06:00:35 -07:00
Shamali Patwa
acc353194f Implement tap-to-add and drag and drop in the compose widget picker
- adds the logic to toggle add button on tapping preview / details
- adds logic to handle add button click
- adds logic to start drag and drop on long press.

The compose's drag and drop handles drag and drop itself, but in this case we need custom interaction to be able to support calling back listeners / setting result for activity etc. So, we use custom logic with android view.


Bug: 408283627
Flag: EXEMPT independent module
Test: See demo
Change-Id: Ie13c919248f8bdd20f90c4eb4a0bec266aedde27
2025-06-02 18:47:01 -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
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
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
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
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