Merge "Set correct divider dimension for task menu options" into sc-dev

This commit is contained in:
Vinit Nayak
2021-07-07 19:56:56 +00:00
committed by Android (Google) Code Review
6 changed files with 27 additions and 5 deletions

View File

@@ -40,7 +40,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:divider="@drawable/all_apps_divider"
android:showDividers="middle" />
</com.android.quickstep.views.TaskMenuView>

View File

@@ -25,6 +25,7 @@
<!-- Task Menu View -->
<dimen name="task_menu_corner_radius">22dp</dimen>
<dimen name="task_menu_item_corner_radius">4dp</dimen>
<dimen name="task_menu_spacing">2dp</dimen>
<dimen name="overview_proactive_row_height">48dp</dimen>
<dimen name="overview_proactive_row_bottom_margin">16dp</dimen>

View File

@@ -26,6 +26,8 @@ import android.content.Context;
import android.graphics.Outline;
import android.graphics.PointF;
import android.graphics.Rect;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.shapes.RectShape;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.MotionEvent;
@@ -237,6 +239,8 @@ public class TaskMenuView extends AbstractFloatingView implements OnScrollChange
PagedOrientationHandler orientationHandler = taskView.getPagedOrientationHandler();
measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
orientationHandler.setTaskMenuAroundTaskView(this, mTaskInsetMargin);
// Get Position
mActivity.getDragLayer().getDescendantRectRelativeToSelf(taskView, sTempRect);
Rect insets = mActivity.getDragLayer().getInsets();
BaseDragLayer.LayoutParams params = (BaseDragLayer.LayoutParams) getLayoutParams();
@@ -248,8 +252,15 @@ public class TaskMenuView extends AbstractFloatingView implements OnScrollChange
setLayoutParams(params);
setScaleX(taskView.getScaleX());
setScaleY(taskView.getScaleY());
// Set divider spacing
ShapeDrawable divider = new ShapeDrawable(new RectShape());
divider.getPaint().setColor(getResources().getColor(android.R.color.transparent));
int dividerSpacing = (int) getResources().getDimension(R.dimen.task_menu_spacing);
mOptionLayout.setShowDividers(SHOW_DIVIDER_MIDDLE);
orientationHandler.setTaskOptionsMenuLayoutOrientation(
mActivity.getDeviceProfile(), mOptionLayout);
mActivity.getDeviceProfile(), mOptionLayout, dividerSpacing, divider);
setPosition(sTempRect.left - insets.left, sTempRect.top - insets.top, 0);
}

View File

@@ -29,6 +29,7 @@ import android.content.res.Resources;
import android.graphics.PointF;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.ShapeDrawable;
import android.util.FloatProperty;
import android.view.MotionEvent;
import android.view.Surface;
@@ -269,8 +270,11 @@ public class LandscapePagedViewHandler implements PagedOrientationHandler {
@Override
public void setTaskOptionsMenuLayoutOrientation(DeviceProfile deviceProfile,
LinearLayout taskMenuLayout) {
LinearLayout taskMenuLayout, int dividerSpacing,
ShapeDrawable dividerDrawable) {
taskMenuLayout.setOrientation(LinearLayout.HORIZONTAL);
dividerDrawable.setIntrinsicWidth(dividerSpacing);
taskMenuLayout.setDividerDrawable(dividerDrawable);
}
@Override

View File

@@ -22,6 +22,7 @@ import android.graphics.Matrix;
import android.graphics.PointF;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.ShapeDrawable;
import android.util.FloatProperty;
import android.view.MotionEvent;
import android.view.VelocityTracker;
@@ -123,7 +124,8 @@ public interface PagedOrientationHandler {
* inside task menu view.
*/
void setTaskOptionsMenuLayoutOrientation(DeviceProfile deviceProfile,
LinearLayout taskMenuLayout);
LinearLayout taskMenuLayout, int dividerSpacing,
ShapeDrawable dividerDrawable);
/**
* Sets layout param attributes for {@link com.android.launcher3.popup.SystemShortcut} child
* views inside task menu view.

View File

@@ -27,6 +27,7 @@ import android.content.res.Resources;
import android.graphics.PointF;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.ShapeDrawable;
import android.util.FloatProperty;
import android.view.MotionEvent;
import android.view.Surface;
@@ -274,14 +275,18 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler {
@Override
public void setTaskOptionsMenuLayoutOrientation(DeviceProfile deviceProfile,
LinearLayout taskMenuLayout) {
LinearLayout taskMenuLayout, int dividerSpacing,
ShapeDrawable dividerDrawable) {
if (deviceProfile.isLandscape && !deviceProfile.isTablet) {
// Phone landscape
taskMenuLayout.setOrientation(LinearLayout.HORIZONTAL);
dividerDrawable.setIntrinsicWidth(dividerSpacing);
} else {
// Phone Portrait, LargeScreen Landscape/Portrait
taskMenuLayout.setOrientation(LinearLayout.VERTICAL);
dividerDrawable.setIntrinsicHeight(dividerSpacing);
}
taskMenuLayout.setDividerDrawable(dividerDrawable);
}
@Override