From 5f7eb1f2ee6f2abbcd4f782bdd8d818516857726 Mon Sep 17 00:00:00 2001 From: Shamali P Date: Fri, 12 Apr 2024 21:28:33 +0000 Subject: [PATCH] Keep rounded corners while scrolling in right pane & fix scrollbar size. [demo](http://screencast/api/gif/NDU4MTQ5ODE3Mzc4NDA2NHxhYmUzMDcxNy04MA/image) Bug: 333734241 Test: screencast Flag: N/A Change-Id: Ifb522ca2c0a1092bf41c630e336b19c81d504c26 --- ...idget_picker_preview_pane_scroll_thumb.xml | 31 ++++++++++ res/layout/widgets_two_pane_sheet.xml | 61 +++++++++++-------- res/values/dimens.xml | 1 + .../widget/picker/WidgetsTwoPaneSheet.java | 20 ------ 4 files changed, 66 insertions(+), 47 deletions(-) create mode 100644 res/drawable/widget_picker_preview_pane_scroll_thumb.xml diff --git a/res/drawable/widget_picker_preview_pane_scroll_thumb.xml b/res/drawable/widget_picker_preview_pane_scroll_thumb.xml new file mode 100644 index 0000000000..24f90b0aab --- /dev/null +++ b/res/drawable/widget_picker_preview_pane_scroll_thumb.xml @@ -0,0 +1,31 @@ + + + + + + + + + \ No newline at end of file diff --git a/res/layout/widgets_two_pane_sheet.xml b/res/layout/widgets_two_pane_sheet.xml index 6c4810cad1..bb2b7bd744 100644 --- a/res/layout/widgets_two_pane_sheet.xml +++ b/res/layout/widgets_two_pane_sheet.xml @@ -94,42 +94,49 @@ - + - + - + android:scrollbarThumbVertical="@drawable/widget_picker_preview_pane_scroll_thumb" + android:clipToOutline="true" + android:fillViewport="true"> - + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center_vertical" + android:clipToOutline="true" + android:paddingBottom="36dp" + android:background="@drawable/widgets_surface_background" + android:importantForAccessibility="yes" + android:id="@+id/right_pane"> + + + + - - + + diff --git a/res/values/dimens.xml b/res/values/dimens.xml index a056e81506..78308e9ad2 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -205,6 +205,7 @@ 0dp 24dp + 24dp 0.5dp 1dp diff --git a/src/com/android/launcher3/widget/picker/WidgetsTwoPaneSheet.java b/src/com/android/launcher3/widget/picker/WidgetsTwoPaneSheet.java index 14985bf148..3d7deda031 100644 --- a/src/com/android/launcher3/widget/picker/WidgetsTwoPaneSheet.java +++ b/src/com/android/launcher3/widget/picker/WidgetsTwoPaneSheet.java @@ -23,14 +23,12 @@ import static com.android.launcher3.UtilitiesKt.modifyAttributesOnViewTree; import static com.android.launcher3.UtilitiesKt.restoreAttributesOnViewTree; import android.content.Context; -import android.graphics.Outline; import android.graphics.Rect; import android.os.Process; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; -import android.view.ViewOutlineProvider; import android.view.ViewParent; import android.widget.FrameLayout; import android.widget.LinearLayout; @@ -78,21 +76,6 @@ public class WidgetsTwoPaneSheet extends WidgetsFullSheet { private int mActivePage = -1; private PackageUserKey mSelectedHeader; - private final ViewOutlineProvider mViewOutlineProviderRightPane = new ViewOutlineProvider() { - @Override - public void getOutline(View view, Outline outline) { - outline.setRoundRect( - 0, - 0, - view.getMeasuredWidth(), - view.getMeasuredHeight() - getResources().getDimensionPixelSize( - R.dimen.widget_list_horizontal_margin_two_pane), - view.getResources().getDimensionPixelSize( - R.dimen.widget_list_top_bottom_corner_radius) - ); - } - }; - public WidgetsTwoPaneSheet(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @@ -136,11 +119,8 @@ public class WidgetsTwoPaneSheet extends WidgetsFullSheet { mHeaderTitle = mContent.findViewById(R.id.title); mRightPane = mContent.findViewById(R.id.right_pane); - mRightPane.setOutlineProvider(mViewOutlineProviderRightPane); mRightPaneScrollView = mContent.findViewById(R.id.right_pane_scroll_view); mRightPaneScrollView.setOverScrollMode(View.OVER_SCROLL_NEVER); - mRightPaneScrollView.setOutlineProvider(mViewOutlineProvider); - mRightPaneScrollView.setClipToOutline(true); mPrimaryWidgetListView = findViewById(R.id.primary_widgets_list_view); mPrimaryWidgetListView.setOutlineProvider(mViewOutlineProvider);