Merge "Use 32dp as the content margin for widgets pickers in large screen devices" into sc-v2-dev

This commit is contained in:
TreeHugger Robot
2021-07-27 12:47:45 +00:00
committed by Android (Google) Code Review
14 changed files with 88 additions and 14 deletions

View File

@@ -37,7 +37,7 @@
android:id="@+id/add_item_bottom_sheet_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="24dp"
android:paddingVertical="24dp"
android:background="@drawable/add_item_dialog_background"
android:orientation="vertical" >
@@ -46,6 +46,7 @@
android:id="@+id/widget_appName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/widget_list_horizontal_margin"
android:gravity="center_horizontal"
android:textColor="?android:attr/textColorPrimary"
android:textSize="24sp"
@@ -55,8 +56,10 @@
android:maxLines="1" />
<TextView
android:id="@+id/widget_drag_instruction"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/widget_list_horizontal_margin"
android:gravity="center_horizontal"
android:paddingTop="8dp"
android:text="@string/add_item_request_drag_hint"
@@ -75,12 +78,15 @@
android:id="@+id/widget_cell"
layout="@layout/widget_cell"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/widget_list_horizontal_margin" />
</ScrollView>
<LinearLayout
android:id="@+id/actions_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/widget_list_horizontal_margin"
android:gravity="center_vertical|end"
android:paddingVertical="8dp"
android:orientation="horizontal">

View File

@@ -47,6 +47,7 @@
<include layout="@layout/widgets_table_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/widget_list_horizontal_margin"
android:layout_gravity="center_horizontal" />
</ScrollView>
</LinearLayout>

View File

@@ -57,6 +57,7 @@
android:id="@+id/search_widgets_list_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/widget_list_horizontal_margin"
android:visibility="gone"
android:clipToPadding="false" />

View File

@@ -20,6 +20,7 @@
android:id="@+id/widgets_view_pager"
android:layout_width="match_parent"
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:descendantFocusability="afterDescendants"

View File

@@ -18,4 +18,5 @@
android:id="@+id/primary_widgets_list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginHorizontal="@dimen/widget_list_horizontal_margin"
android:clipToPadding="false" />

View File

@@ -18,6 +18,7 @@
android:id="@+id/search_and_recommendations_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/widget_list_horizontal_margin"
android:layout_marginBottom="16dp"
android:orientation="vertical">
@@ -53,7 +54,6 @@
android:id="@+id/recommended_widget_table"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/widget_list_horizontal_margin"
android:layout_marginTop="8dp"
android:background="@drawable/widgets_recommendation_background"
android:paddingVertical="@dimen/recommended_widgets_table_vertical_padding"

View File

@@ -19,7 +19,6 @@
android:id="@+id/widgets_list_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/widget_list_horizontal_margin"
android:paddingVertical="@dimen/widget_list_header_view_vertical_padding"
android:orientation="horizontal"
launcher:appIconSize="48dp">

View File

@@ -6,7 +6,6 @@
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="24dp"
android:layout_marginHorizontal="@dimen/widget_list_horizontal_margin"
android:background="@drawable/bg_widgets_searchbox">
<com.android.launcher3.ExtendedEditText

View File

@@ -17,5 +17,4 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widgets_table"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/widget_list_horizontal_margin" />
android:layout_height="wrap_content" />

View File

@@ -17,4 +17,7 @@
<resources>
<!-- DragController -->
<dimen name="drag_flingToDeleteMinVelocity">-1000dp</dimen>
<!-- Widgets pickers -->
<dimen name="widget_list_horizontal_margin">32dp</dimen>
</resources>

View File

@@ -49,6 +49,8 @@ public class AddItemWidgetsBottomSheet extends AbstractSlideInView<AddItemActivi
private final Rect mInsets;
private ScrollView mWidgetPreviewScrollView;
private int mContentHorizontalMarginInPx;
public AddItemWidgetsBottomSheet(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
@@ -56,6 +58,8 @@ public class AddItemWidgetsBottomSheet extends AbstractSlideInView<AddItemActivi
public AddItemWidgetsBottomSheet(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
mInsets = new Rect();
mContentHorizontalMarginInPx = getResources().getDimensionPixelSize(
R.dimen.widget_list_horizontal_margin);
}
/**
@@ -173,6 +177,26 @@ public class AddItemWidgetsBottomSheet extends AbstractSlideInView<AddItemActivi
}
mContent.setPadding(mContent.getPaddingStart(),
mContent.getPaddingTop(), mContent.getPaddingEnd(), mInsets.bottom);
int contentHorizontalMarginInPx = getResources().getDimensionPixelSize(
R.dimen.widget_list_horizontal_margin);
if (contentHorizontalMarginInPx != mContentHorizontalMarginInPx) {
setContentHorizontalMargin(findViewById(R.id.widget_appName),
contentHorizontalMarginInPx);
setContentHorizontalMargin(findViewById(R.id.widget_drag_instruction),
contentHorizontalMarginInPx);
setContentHorizontalMargin(findViewById(R.id.widget_cell), contentHorizontalMarginInPx);
setContentHorizontalMargin(findViewById(R.id.actions_container),
contentHorizontalMarginInPx);
mContentHorizontalMarginInPx = contentHorizontalMarginInPx;
}
return windowInsets;
}
private static void setContentHorizontalMargin(View view, int contentHorizontalMargin) {
ViewGroup.MarginLayoutParams layoutParams =
((ViewGroup.MarginLayoutParams) view.getLayoutParams());
layoutParams.setMarginStart(contentHorizontalMargin);
layoutParams.setMarginEnd(contentHorizontalMargin);
}
}

View File

@@ -66,8 +66,12 @@ public abstract class BaseWidgetSheet extends AbstractSlideInView<Launcher>
/* Touch handling related member variables. */
private Toast mWidgetInstructionToast;
private int mContentHorizontalMarginInPx;
public BaseWidgetSheet(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
mContentHorizontalMarginInPx = getResources().getDimensionPixelSize(
R.dimen.widget_list_horizontal_margin);
}
protected int getScrimColor(Context context) {
@@ -119,8 +123,16 @@ public abstract class BaseWidgetSheet extends AbstractSlideInView<Launcher>
@Override
public void setInsets(Rect insets) {
mInsets.set(insets);
int contentHorizontalMarginInPx = getResources().getDimensionPixelSize(
R.dimen.widget_list_horizontal_margin);
if (contentHorizontalMarginInPx != mContentHorizontalMarginInPx) {
onContentHorizontalMarginChanged(contentHorizontalMarginInPx);
mContentHorizontalMarginInPx = contentHorizontalMarginInPx;
}
}
/** Called when the horizontal margin of the content view has changed. */
protected abstract void onContentHorizontalMarginChanged(int contentHorizontalMarginInPx);
/**
* Measures the dimension of this view and its children by taking system insets, navigation bar,

View File

@@ -70,11 +70,10 @@ public class WidgetsBottomSheet extends BaseWidgetSheet {
private static final int DEFAULT_CLOSE_DURATION = 200;
private static final long EDUCATION_TIP_DELAY_MS = 300;
private final int mWidgetSheetContentHorizontalPadding;
private ItemInfo mOriginalItemInfo;
private final int mMaxTableHeight;
private int mMaxHorizontalSpan = DEFAULT_MAX_HORIZONTAL_SPANS;
private final int mWidgetCellHorizontalPadding;
private final OnLayoutChangeListener mLayoutChangeListenerToShowTips =
new OnLayoutChangeListener() {
@@ -119,9 +118,8 @@ public class WidgetsBottomSheet extends BaseWidgetSheet {
if (!hasSeenEducationTip()) {
addOnLayoutChangeListener(mLayoutChangeListenerToShowTips);
}
mWidgetSheetContentHorizontalPadding = getResources().getDimensionPixelSize(
R.dimen.widget_list_horizontal_margin);
mWidgetCellHorizontalPadding = getResources().getDimensionPixelSize(
R.dimen.widget_cell_horizontal_padding);
}
@Override
@@ -142,8 +140,7 @@ public class WidgetsBottomSheet extends BaseWidgetSheet {
private boolean updateMaxSpansPerRow() {
if (getMeasuredWidth() == 0) return false;
int maxHorizontalSpan = computeMaxHorizontalSpans(mContent,
mWidgetSheetContentHorizontalPadding);
int maxHorizontalSpan = computeMaxHorizontalSpans(mContent, mWidgetCellHorizontalPadding);
if (mMaxHorizontalSpan != maxHorizontalSpan) {
// Ensure the table layout is showing widgets in the right column after measure.
mMaxHorizontalSpan = maxHorizontalSpan;
@@ -274,6 +271,14 @@ public class WidgetsBottomSheet extends BaseWidgetSheet {
}
}
@Override
protected void onContentHorizontalMarginChanged(int contentHorizontalMarginInPx) {
ViewGroup.MarginLayoutParams layoutParams =
((ViewGroup.MarginLayoutParams) findViewById(R.id.widgets_table).getLayoutParams());
layoutParams.setMarginStart(contentHorizontalMarginInPx);
layoutParams.setMarginEnd(contentHorizontalMarginInPx);
}
@Override
protected Pair<View, String> getAccessibilityTarget() {
return Pair.create(findViewById(R.id.title), getContext().getString(

View File

@@ -358,6 +358,29 @@ public class WidgetsFullSheet extends BaseWidgetSheet
bottomPadding);
}
@Override
protected void onContentHorizontalMarginChanged(int contentHorizontalMarginInPx) {
setContentViewChildHorizontalMargin(mSearchAndRecommendationViewHolder.mContainer,
contentHorizontalMarginInPx);
if (mViewPager == null) {
setContentViewChildHorizontalMargin(
mAdapters.get(AdapterHolder.PRIMARY).mWidgetsRecyclerView,
contentHorizontalMarginInPx);
} else {
setContentViewChildHorizontalMargin(mViewPager, contentHorizontalMarginInPx);
}
setContentViewChildHorizontalMargin(
mAdapters.get(AdapterHolder.SEARCH).mWidgetsRecyclerView,
contentHorizontalMarginInPx);
}
private static void setContentViewChildHorizontalMargin(View view, int horizontalMarginInPx) {
ViewGroup.MarginLayoutParams layoutParams =
(ViewGroup.MarginLayoutParams) view.getLayoutParams();
layoutParams.setMarginStart(horizontalMarginInPx);
layoutParams.setMarginEnd(horizontalMarginInPx);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
doMeasure(widthMeasureSpec, heightMeasureSpec);