From 77acf1290502010bd6c025e592916abdb4ea2798 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Thu, 12 Aug 2021 17:19:16 -0700 Subject: [PATCH] Fixing header jump Linking header position to an empty entry in the recyclerView, instead of calculating the vertical scroll position. This allows the header to be in sync with the recyclerView scroll and item animations Other simplifications: > Moving top collapse handle out of header view (it doesn't scroll) > Removing background clipping logic from full-sheet > Moving tab bar inside the header view Bug: 196464142 Test: Verified on device Change-Id: Iae5a0ae9af7ce258e1b391b8e85c5c270fe56197 --- .../bg_widgets_full_sheet.xml} | 15 +- res/drawable/bg_widgets_picker_handle.xml | 29 -- .../widgets_bottom_sheet_background.xml | 26 -- res/layout/widgets_bottom_sheet_content.xml | 2 +- res/layout/widgets_full_sheet.xml | 18 +- res/layout/widgets_full_sheet_paged_view.xml | 83 +++- .../widgets_full_sheet_recyclerview.xml | 58 ++- ..._full_sheet_search_and_recommendations.xml | 61 --- res/layout/widgets_personal_work_tabs.xml | 53 --- res/values/dimens.xml | 5 +- res/values/id.xml | 1 + .../widget/picker/WidgetsListAdapterTest.java | 2 +- ...WidgetsListHeaderViewHolderBinderTest.java | 13 +- ...sListSearchHeaderViewHolderBinderTest.java | 13 +- .../WidgetsListTableViewHolderBinderTest.java | 9 +- .../recyclerview/ViewHolderBinder.java | 15 +- .../launcher3/views/AbstractSlideInView.java | 3 +- .../views/RecyclerViewFastScroller.java | 23 - .../launcher3/views/TopRoundedCornerView.java | 61 --- .../widget/model/WidgetListSpaceEntry.java | 37 ++ .../widget/model/WidgetsListBaseEntry.java | 10 +- ...rchAndRecommendationsScrollController.java | 426 ++++++------------ .../widget/picker/WidgetsFullSheet.java | 139 ++---- .../widget/picker/WidgetsListAdapter.java | 46 +- .../WidgetsListHeaderViewHolderBinder.java | 11 +- .../picker/WidgetsListLayoutManager.java | 51 --- ...dgetsListSearchHeaderViewHolderBinder.java | 11 +- .../WidgetsListTableViewHolderBinder.java | 11 +- .../WidgetsRecommendationTableLayout.java | 7 - .../widget/picker/WidgetsRecyclerView.java | 27 +- .../picker/WidgetsSpaceViewHolderBinder.java | 113 +++++ 31 files changed, 570 insertions(+), 809 deletions(-) rename res/{drawable-v28/widgets_bottom_sheet_background.xml => drawable/bg_widgets_full_sheet.xml} (65%) delete mode 100644 res/drawable/bg_widgets_picker_handle.xml delete mode 100644 res/drawable/widgets_bottom_sheet_background.xml delete mode 100644 res/layout/widgets_full_sheet_search_and_recommendations.xml delete mode 100644 res/layout/widgets_personal_work_tabs.xml delete mode 100644 src/com/android/launcher3/views/TopRoundedCornerView.java create mode 100644 src/com/android/launcher3/widget/model/WidgetListSpaceEntry.java delete mode 100644 src/com/android/launcher3/widget/picker/WidgetsListLayoutManager.java create mode 100644 src/com/android/launcher3/widget/picker/WidgetsSpaceViewHolderBinder.java diff --git a/res/drawable-v28/widgets_bottom_sheet_background.xml b/res/drawable/bg_widgets_full_sheet.xml similarity index 65% rename from res/drawable-v28/widgets_bottom_sheet_background.xml rename to res/drawable/bg_widgets_full_sheet.xml index 7fb8681301..dfcd354ce7 100644 --- a/res/drawable-v28/widgets_bottom_sheet_background.xml +++ b/res/drawable/bg_widgets_full_sheet.xml @@ -1,6 +1,5 @@ - + - + android:shape="rectangle" > + + android:topLeftRadius="@dimen/dialogCornerRadius" + android:topRightRadius="@dimen/dialogCornerRadius" /> \ No newline at end of file diff --git a/res/drawable/bg_widgets_picker_handle.xml b/res/drawable/bg_widgets_picker_handle.xml deleted file mode 100644 index 68681a684d..0000000000 --- a/res/drawable/bg_widgets_picker_handle.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/res/drawable/widgets_bottom_sheet_background.xml b/res/drawable/widgets_bottom_sheet_background.xml deleted file mode 100644 index b877546656..0000000000 --- a/res/drawable/widgets_bottom_sheet_background.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/res/layout/widgets_bottom_sheet_content.xml b/res/layout/widgets_bottom_sheet_content.xml index 3d330dce85..1a2cfc6f93 100644 --- a/res/layout/widgets_bottom_sheet_content.xml +++ b/res/layout/widgets_bottom_sheet_content.xml @@ -18,7 +18,7 @@ android:id="@+id/widgets_bottom_sheet" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@drawable/widgets_bottom_sheet_background" + android:background="@drawable/bg_rounded_corner_bottom_sheet" android:paddingTop="16dp" android:orientation="vertical"> + android:theme="?attr/widgetsTheme"> - + android:background="@drawable/bg_widgets_full_sheet"> + + @@ -57,9 +66,10 @@ android:id="@+id/search_widgets_list_view" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_below="@id/collapse_handle" android:layout_marginHorizontal="@dimen/widget_list_horizontal_margin" android:visibility="gone" android:clipToPadding="false" /> - + \ No newline at end of file diff --git a/res/layout/widgets_full_sheet_paged_view.xml b/res/layout/widgets_full_sheet_paged_view.xml index fefad19ae3..85f14cda4f 100644 --- a/res/layout/widgets_full_sheet_paged_view.xml +++ b/res/layout/widgets_full_sheet_paged_view.xml @@ -22,7 +22,7 @@ android:layout_height="match_parent" android:layout_marginHorizontal="@dimen/widget_list_horizontal_margin" android:clipToPadding="false" - android:paddingTop="@dimen/widget_picker_view_pager_top_padding" + android:layout_below="@id/collapse_handle" android:descendantFocusability="afterDescendants" launcher:pageIndicator="@+id/tabs"> @@ -40,5 +40,84 @@ - + + + + + + + + + + + + + +