From 4b1a38bb7da03b7592c8a4ff7723d1dc49ffa8b0 Mon Sep 17 00:00:00 2001 From: Federico Baron Date: Thu, 17 Nov 2022 09:29:51 -0800 Subject: [PATCH] Implement two pane widget picker The widget picker design is currently not optimized for large screen form factor devices. We resolve that by adding a two pane widget picker like that of the design in go/widget-picker-2023. Bug: 256684299 Test: Make sure to be on a tablet in landscape mode. 1.Turn on flag LARGE_SCREEN_WIDGET_PICKER. 2. Press and hold on an empty spot in workspace until the popup menu appears. 3. Click widgets. 4. Notice the new two pane layout Change-Id: Ia3ea17dc320f72f9bc5dea52399ff51d9161602b --- res/drawable/widget_suggestions.xml | 27 +++ res/drawable/widget_suggestions_icon.xml | 30 +++ .../widgets_full_sheet_large_screen.xml | 120 ++++++++++++ ...ets_full_sheet_paged_view_large_screen.xml | 122 +++++++++++++ ...s_full_sheet_recyclerview_large_screen.xml | 67 +++++++ res/values-sw720dp-land/dimens.xml | 1 + res/values-v31/colors.xml | 2 + res/values/dimens.xml | 1 + res/values/strings.xml | 3 + .../launcher3/FastScrollRecyclerView.java | 3 + .../launcher3/popup/PopupDataProvider.java | 9 + .../widget/picker/WidgetsFullSheet.java | 171 +++++++++++++++++- .../widget/picker/WidgetsListAdapter.java | 35 +++- .../widget/picker/WidgetsListHeader.java | 66 +++++-- ...dgetsListSearchHeaderViewHolderBinder.java | 1 + .../WidgetsListTableViewHolderBinder.java | 9 +- .../widget/picker/WidgetsRowViewHolder.java | 18 ++ .../widget/picker/WidgetsListAdapterTest.java | 2 +- 18 files changed, 653 insertions(+), 34 deletions(-) create mode 100644 res/drawable/widget_suggestions.xml create mode 100644 res/drawable/widget_suggestions_icon.xml create mode 100644 res/layout/widgets_full_sheet_large_screen.xml create mode 100644 res/layout/widgets_full_sheet_paged_view_large_screen.xml create mode 100644 res/layout/widgets_full_sheet_recyclerview_large_screen.xml diff --git a/res/drawable/widget_suggestions.xml b/res/drawable/widget_suggestions.xml new file mode 100644 index 0000000000..b090a68a43 --- /dev/null +++ b/res/drawable/widget_suggestions.xml @@ -0,0 +1,27 @@ + + + + diff --git a/res/drawable/widget_suggestions_icon.xml b/res/drawable/widget_suggestions_icon.xml new file mode 100644 index 0000000000..919b5e4452 --- /dev/null +++ b/res/drawable/widget_suggestions_icon.xml @@ -0,0 +1,30 @@ + + + + + + + + + + diff --git a/res/layout/widgets_full_sheet_large_screen.xml b/res/layout/widgets_full_sheet_large_screen.xml new file mode 100644 index 0000000000..3dbe6f5bf8 --- /dev/null +++ b/res/layout/widgets_full_sheet_large_screen.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/layout/widgets_full_sheet_paged_view_large_screen.xml b/res/layout/widgets_full_sheet_paged_view_large_screen.xml new file mode 100644 index 0000000000..6634345158 --- /dev/null +++ b/res/layout/widgets_full_sheet_paged_view_large_screen.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +