Commit Graph
9 Commits
Author SHA1 Message Date
Shamali Patwa afa97055fa Update various tests to prepare for the new picker UI
- Switched the tests that probe old picker to use disabled flag
- Added some more tests for new code
  - A test to use the tap to add listener to add widget to homescreen
  - Updated compose unit test to cover for expanding an item

Bug: 408283627
Flag: EXEMPT independent module
Test: Test changes
Change-Id: I238896ec6e24596db93953a22bb43f6c7abbb9d1
2025-06-03 17:37:40 -07:00
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 6710f2faf2 Pass down the widget interaction callback and flag on whether to support drag shadow
Bug: 408283627
Flag: com.android.launcher3.enable_widget_picker_refactor
Test: N/A
Change-Id: I8d04cb3b0e52c202bf6223e0b0e2e10a4ca6fdb8
2025-06-02 18:46:54 -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 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