App chip refactor
- Adds background outline replacing 2 circles + rect approach. This
enables easier shadow drawing code.
- Simplify structure of AppChipView.
- Adds an anchor View to simplify laying out of menu around app chip
Bug: 313644427
Bug: 317007147
Fix: 322760765
Flag: ACONFIG com.android.launcher3.enable_grid_only_overview TEAMFOOD
Flag: ACONFIG com.android.launcher3.enable_overview_icon_menu TEAMFOOD
Test: OverviewImageTest
Change-Id: I56c2644779863c083ae475a740a84321b1d0c396
diff --git a/quickstep/res/layout/icon_app_chip_view.xml b/quickstep/res/layout/icon_app_chip_view.xml
index b7acb70..fb9bf99 100644
--- a/quickstep/res/layout/icon_app_chip_view.xml
+++ b/quickstep/res/layout/icon_app_chip_view.xml
@@ -17,45 +17,41 @@
<com.android.quickstep.views.IconAppChipView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/icon"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
+ android:layout_width="@dimen/task_thumbnail_icon_menu_expanded_width"
+ android:layout_height="@dimen/task_thumbnail_icon_menu_expanded_height"
+ android:clipToOutline="true"
android:focusable="false"
android:importantForAccessibility="no"
android:autoMirrored="true"
- android:background="@drawable/icon_menu_elevation_background"
- android:elevation="@dimen/task_thumbnail_icon_menu_elevation" >
+ android:elevation="@dimen/task_thumbnail_icon_menu_elevation"
+ android:background="?androidprv:attr/materialColorSurfaceBright">
- <ImageView
- android:id="@+id/icon_view_background_corners_start"
- android:layout_width="@dimen/task_thumbnail_icon_menu_corner_width"
- android:layout_height="@dimen/task_thumbnail_icon_menu_min_height"
- android:src="@drawable/icon_menu_background_corners"
- android:importantForAccessibility="no" />
- <ImageView
- android:id="@+id/icon_view_background"
- android:layout_width="@dimen/task_thumbnail_icon_menu_background_min_width"
- android:layout_height="@dimen/task_thumbnail_icon_menu_min_height"
- android:src="@drawable/icon_menu_background"
- android:importantForAccessibility="no" />
- <ImageView
- android:id="@+id/icon_view_background_corners_end"
- android:layout_width="@dimen/task_thumbnail_icon_menu_corner_width"
- android:layout_height="@dimen/task_thumbnail_icon_menu_min_height"
- android:src="@drawable/icon_menu_background_corners"
- android:importantForAccessibility="no" />
+ <!-- ignoring warning because the user of the anchor is a Rect where RTL is not needed -->
+ <!-- This anchor's bounds is in the expected location after rotations and translations are
+ applied to the parent. The same is not true of the parent so an anchor is used. -->
+ <!-- marginTop is applied in java to get the gap between chip and menu -->
+ <View
+ android:id="@+id/icon_view_menu_anchor"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:layout_gravity="left|top"
+ android:focusable="false"
+ android:importantForAccessibility="no"
+ tools:ignore="RtlHardcoded" />
<com.android.quickstep.views.IconView
android:id="@+id/icon_view"
- android:layout_width="@dimen/task_thumbnail_icon_size"
- android:layout_height="@dimen/task_thumbnail_icon_size"
+ android:layout_width="@dimen/task_thumbnail_icon_menu_app_icon_collapsed_size"
+ android:layout_height="@dimen/task_thumbnail_icon_menu_app_icon_collapsed_size"
android:focusable="false"
android:importantForAccessibility="no" />
<TextView
android:id="@+id/icon_text_collapsed"
- android:layout_width="@dimen/task_thumbnail_icon_menu_text_width"
- android:layout_height="@dimen/task_thumbnail_icon_menu_drawable_size"
+ android:layout_width="@dimen/task_thumbnail_icon_menu_text_collapsed_max_width"
+ android:layout_height="@dimen/task_thumbnail_icon_menu_app_icon_collapsed_size"
android:gravity="start|center_vertical"
android:maxLines="1"
android:ellipsize="end"
@@ -65,8 +61,8 @@
<TextView
android:id="@+id/icon_text_expanded"
- android:layout_width="@dimen/task_thumbnail_icon_menu_text_max_width"
- android:layout_height="@dimen/task_thumbnail_icon_menu_drawable_size"
+ android:layout_width="@dimen/task_thumbnail_icon_menu_text_expanded_max_width"
+ android:layout_height="@dimen/task_thumbnail_icon_menu_app_icon_collapsed_size"
android:gravity="start|center_vertical"
android:maxLines="1"
android:ellipsize="end"
diff --git a/quickstep/res/values/dimens.xml b/quickstep/res/values/dimens.xml
index a985cd8..68bad5c 100644
--- a/quickstep/res/values/dimens.xml
+++ b/quickstep/res/values/dimens.xml
@@ -44,48 +44,38 @@
<dimen name="overview_task_margin">16dp</dimen>
<!-- The horizontal space between tasks -->
<dimen name="overview_page_spacing">16dp</dimen>
- <!-- The min width of the thumbnail icon menu for non-split tasks -->
- <dimen name="task_thumbnail_icon_menu_min_width">156dp</dimen>
- <!-- The max width of the thumbnail icon menu -->
- <dimen name="task_thumbnail_icon_menu_max_width">216dp</dimen>
- <!-- The width of the thumbnail icon menu background -->
- <dimen name="task_thumbnail_icon_menu_background_min_width">120dp</dimen>
- <!-- The width of the icon menu text -->
- <dimen name="task_thumbnail_icon_menu_text_width">86dp</dimen>
- <!-- The max width of the icon menu text -->
- <dimen name="task_thumbnail_icon_menu_text_max_width">118dp</dimen>
+ <!-- The collapsed max width of the icon menu text -->
+ <dimen name="task_thumbnail_icon_menu_text_collapsed_max_width">86dp</dimen>
+ <!-- The expanded max width of the icon menu text -->
+ <dimen name="task_thumbnail_icon_menu_text_expanded_max_width">118dp</dimen>
<!-- The size of the icon menu text -->
<dimen name="task_thumbnail_icon_menu_text_size">14sp</dimen>
- <!-- The max width of the thumbnail icon menu background -->
- <dimen name="task_thumbnail_icon_menu_background_max_width">164dp</dimen>
- <!-- The height of the thumbnail icon menu -->
- <dimen name="task_thumbnail_icon_menu_min_height">36dp</dimen>
- <!-- The corner radius of the thumbnail icon menu -->
- <dimen name="task_thumbnail_icon_menu_corner_radius">28dp</dimen>
- <!-- The width of the thumbnail icon menu backgorund's corners when collapsed -->
- <dimen name="task_thumbnail_icon_menu_corner_width">36dp</dimen>
- <!-- The max height of the thumbnail icon menu -->
- <dimen name="task_thumbnail_icon_menu_max_height">52dp</dimen>
- <!-- The size of the icon menu arrow -->
- <dimen name="task_thumbnail_icon_menu_arrow_size">24dp</dimen>
- <!-- The size of the icon menu arrow drawable -->
- <dimen name="task_thumbnail_icon_menu_arrow_drawable_size">16dp</dimen>
- <!-- The margin at the start of the task icon menu -->
- <dimen name="task_thumbnail_icon_menu_start_margin">12dp</dimen>
- <!-- The margin at the top of the task icon menu -->
- <dimen name="task_thumbnail_icon_menu_top_margin">12dp</dimen>
+ <!-- The width of the thumbnail icon menu when collapsed (for non-split tasks) -->
+ <dimen name="task_thumbnail_icon_menu_collapsed_width">156dp</dimen>
+ <!-- The width of the thumbnail icon menu when expanded -->
+ <dimen name="task_thumbnail_icon_menu_expanded_width">216dp</dimen>
+ <!-- The height of the thumbnail icon menu when collapsed -->
+ <dimen name="task_thumbnail_icon_menu_collapsed_height">36dp</dimen>
+ <!-- The height of the thumbnail icon menu when expanded -->
+ <dimen name="task_thumbnail_icon_menu_expanded_height">52dp</dimen>
+ <!-- The margin at the top/start of the task icon menu when expanded -->
+ <dimen name="task_thumbnail_icon_menu_expanded_top_start_margin">4dp</dimen>
+ <!-- The margin at the start of the background when collapsed -->
+ <dimen name="task_thumbnail_icon_menu_background_margin_top_start">8dp</dimen>
+ <!-- The margin between the app name + app icon and app name + arrow icon when collapsed -->
+ <dimen name="task_thumbnail_icon_menu_app_name_margin_horizontal_collapsed">8dp</dimen>
<!-- The gap at the top of the task icon menu when expanded -->
- <dimen name="task_thumbnail_icon_menu_expanded_gap">6dp</dimen>
+ <dimen name="task_thumbnail_icon_menu_expanded_gap">2dp</dimen>
<!-- The margin at the start of the task icon view in the icon menu -->
<dimen name="task_thumbnail_icon_view_start_margin">6dp</dimen>
<!-- The space around the task icon arrow within the icon menu -->
<dimen name="task_thumbnail_icon_menu_arrow_margin">8dp</dimen>
- <!-- The max space around the task icon within the icon menu -->
- <dimen name="task_thumbnail_icon_menu_touch_max_margin">8dp</dimen>
- <!-- The icon size for the icon menu -->
- <dimen name="task_thumbnail_icon_menu_drawable_size">24dp</dimen>
- <!-- The icon size for the icon menu -->
- <dimen name="task_thumbnail_icon_menu_drawable_max_size">32dp</dimen>
+ <!-- The size for the icon menu arrow -->
+ <dimen name="task_thumbnail_icon_menu_arrow_size">24dp</dimen>
+ <!-- The collapsed size for the icon menu icon -->
+ <dimen name="task_thumbnail_icon_menu_app_icon_collapsed_size">24dp</dimen>
+ <!-- The expanded icon size for the icon menu -->
+ <dimen name="task_thumbnail_icon_menu_app_icon_expanded_size">32dp</dimen>
<!-- The size of the icon menu's icon touch target -->
<dimen name="task_thumbnail_icon_menu_drawable_touch_size">44dp</dimen>
<dimen name="task_thumbnail_icon_menu_elevation">4dp</dimen>
diff --git a/quickstep/src/com/android/quickstep/orientation/LandscapePagedViewHandler.java b/quickstep/src/com/android/quickstep/orientation/LandscapePagedViewHandler.java
index a7ca515..24b48db 100644
--- a/quickstep/src/com/android/quickstep/orientation/LandscapePagedViewHandler.java
+++ b/quickstep/src/com/android/quickstep/orientation/LandscapePagedViewHandler.java
@@ -274,21 +274,12 @@
@Override
public float getTaskMenuX(float x, View thumbnailView,
DeviceProfile deviceProfile, float taskInsetMargin, View taskViewIcon) {
- if (enableOverviewIconMenu()) {
- return x + (taskInsetMargin / 2f);
- }
return thumbnailView.getMeasuredWidth() + x - taskInsetMargin;
}
@Override
public float getTaskMenuY(float y, View thumbnailView, int stagePosition,
View taskMenuView, float taskInsetMargin, View taskViewIcon) {
- if (enableOverviewIconMenu()) {
- return y - (thumbnailView.getLayoutDirection() == LAYOUT_DIRECTION_RTL
- ? taskMenuView.getMeasuredHeight() * 2 - (taskInsetMargin / 2f)
- : taskMenuView.getMeasuredHeight());
-
- }
BaseDragLayer.LayoutParams lp = (BaseDragLayer.LayoutParams) taskMenuView.getLayoutParams();
int taskMenuWidth = lp.width;
if (stagePosition == STAGE_POSITION_UNDEFINED) {
@@ -304,7 +295,7 @@
@StagePosition int stagePosition) {
if (enableOverviewIconMenu()) {
return thumbnailView.getResources().getDimensionPixelSize(
- R.dimen.task_thumbnail_icon_menu_max_width);
+ R.dimen.task_thumbnail_icon_menu_expanded_width);
}
if (stagePosition == SplitConfigurationOptions.STAGE_POSITION_UNDEFINED) {
return thumbnailView.getMeasuredWidth();
@@ -582,11 +573,6 @@
@Override
public void setTaskIconParams(FrameLayout.LayoutParams iconParams, int taskIconMargin,
int taskIconHeight, int thumbnailTopMargin, boolean isRtl) {
- if (enableOverviewIconMenu()) {
- iconParams.gravity = Gravity.START | Gravity.CENTER_VERTICAL;
- iconParams.topMargin = 0;
- return;
- }
iconParams.gravity = (isRtl ? START : END) | CENTER_VERTICAL;
iconParams.rightMargin = -taskIconHeight - taskIconMargin / 2;
iconParams.leftMargin = 0;
@@ -595,6 +581,14 @@
}
@Override
+ public void setIconAppChipChildrenParams(FrameLayout.LayoutParams iconParams,
+ int chipChildMarginStart) {
+ iconParams.gravity = Gravity.START | Gravity.CENTER_VERTICAL;
+ iconParams.setMarginStart(chipChildMarginStart);
+ iconParams.topMargin = 0;
+ }
+
+ @Override
public void setIconAppChipMenuParams(IconAppChipView iconAppChipView,
FrameLayout.LayoutParams iconMenuParams, int iconMenuMargin, int thumbnailTopMargin) {
boolean isRtl = iconAppChipView.getLayoutDirection() == LAYOUT_DIRECTION_RTL;
diff --git a/quickstep/src/com/android/quickstep/orientation/PortraitPagedViewHandler.java b/quickstep/src/com/android/quickstep/orientation/PortraitPagedViewHandler.java
index 5d9a668..2f996e1 100644
--- a/quickstep/src/com/android/quickstep/orientation/PortraitPagedViewHandler.java
+++ b/quickstep/src/com/android/quickstep/orientation/PortraitPagedViewHandler.java
@@ -21,7 +21,6 @@
import static android.view.Gravity.END;
import static android.view.Gravity.START;
import static android.view.Gravity.TOP;
-import static android.view.View.LAYOUT_DIRECTION_RTL;
import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
@@ -182,12 +181,7 @@
@Override
public float getTaskMenuX(float x, View thumbnailView,
DeviceProfile deviceProfile, float taskInsetMargin, View taskViewIcon) {
- if (enableOverviewIconMenu()) {
- if (thumbnailView.getLayoutDirection() == LAYOUT_DIRECTION_RTL) {
- return x + taskInsetMargin - taskViewIcon.getHeight() - (taskInsetMargin / 2f);
- }
- return x + taskInsetMargin;
- } else if (deviceProfile.isLandscape) {
+ if (deviceProfile.isLandscape) {
return x + taskInsetMargin
+ (thumbnailView.getMeasuredWidth() - thumbnailView.getMeasuredHeight()) / 2f;
} else {
@@ -198,9 +192,6 @@
@Override
public float getTaskMenuY(float y, View thumbnailView, int stagePosition,
View taskMenuView, float taskInsetMargin, View taskViewIcon) {
- if (enableOverviewIconMenu()) {
- return y;
- }
return y + taskInsetMargin;
}
@@ -209,7 +200,7 @@
@StagePosition int stagePosition) {
if (enableOverviewIconMenu()) {
return thumbnailView.getResources().getDimensionPixelSize(
- R.dimen.task_thumbnail_icon_menu_max_width);
+ R.dimen.task_thumbnail_icon_menu_expanded_width);
}
int padding = thumbnailView.getResources()
.getDimensionPixelSize(R.dimen.task_menu_edge_padding);
@@ -623,12 +614,6 @@
@Override
public void setTaskIconParams(FrameLayout.LayoutParams iconParams, int taskIconMargin,
int taskIconHeight, int thumbnailTopMargin, boolean isRtl) {
- if (enableOverviewIconMenu()) {
- iconParams.setMarginStart(taskIconMargin);
- iconParams.gravity = Gravity.START | Gravity.CENTER_VERTICAL;
- iconParams.topMargin = 0;
- return;
- }
iconParams.gravity = TOP | CENTER_HORIZONTAL;
// Reset margins, since they may have been set on rotation
iconParams.leftMargin = iconParams.rightMargin = 0;
@@ -636,6 +621,14 @@
}
@Override
+ public void setIconAppChipChildrenParams(FrameLayout.LayoutParams iconParams,
+ int chipChildMarginStart) {
+ iconParams.setMarginStart(chipChildMarginStart);
+ iconParams.gravity = Gravity.START | Gravity.CENTER_VERTICAL;
+ iconParams.topMargin = 0;
+ }
+
+ @Override
public void setIconAppChipMenuParams(IconAppChipView iconAppChipView,
FrameLayout.LayoutParams iconMenuParams, int iconMenuMargin, int thumbnailTopMargin) {
iconMenuParams.gravity = TOP | START;
diff --git a/quickstep/src/com/android/quickstep/orientation/RecentsPagedOrientationHandler.java b/quickstep/src/com/android/quickstep/orientation/RecentsPagedOrientationHandler.java
index 9084297..01c1225 100644
--- a/quickstep/src/com/android/quickstep/orientation/RecentsPagedOrientationHandler.java
+++ b/quickstep/src/com/android/quickstep/orientation/RecentsPagedOrientationHandler.java
@@ -146,9 +146,16 @@
int parentWidth, int parentHeight);
// Overview TaskMenuView methods
+ /** Sets layout params on a task's app icon. Only use this when app chip is disabled. */
void setTaskIconParams(FrameLayout.LayoutParams iconParams,
int taskIconMargin, int taskIconHeight, int thumbnailTopMargin, boolean isRtl);
+ /**
+ * Sets layout params on the children of an app chip. Only use this when app chip is enabled.
+ */
+ void setIconAppChipChildrenParams(
+ FrameLayout.LayoutParams iconParams, int chipChildMarginStart);
+
void setIconAppChipMenuParams(IconAppChipView iconAppChipView,
FrameLayout.LayoutParams iconMenuParams,
int iconMenuMargin, int thumbnailTopMargin);
diff --git a/quickstep/src/com/android/quickstep/orientation/SeascapePagedViewHandler.java b/quickstep/src/com/android/quickstep/orientation/SeascapePagedViewHandler.java
index f3001fc..9090d14 100644
--- a/quickstep/src/com/android/quickstep/orientation/SeascapePagedViewHandler.java
+++ b/quickstep/src/com/android/quickstep/orientation/SeascapePagedViewHandler.java
@@ -94,9 +94,6 @@
@Override
public float getTaskMenuX(float x, View thumbnailView,
DeviceProfile deviceProfile, float taskInsetMargin, View taskViewIcon) {
- if (enableOverviewIconMenu()) {
- return x + (taskViewIcon.getHeight() * 2);
- }
return x + taskInsetMargin;
}
@@ -104,9 +101,7 @@
public float getTaskMenuY(float y, View thumbnailView, int stagePosition,
View taskMenuView, float taskInsetMargin, View taskViewIcon) {
if (enableOverviewIconMenu()) {
- return y + taskViewIcon.getWidth() + (
- thumbnailView.getLayoutDirection() == LAYOUT_DIRECTION_RTL ? taskInsetMargin
- / 2f : -taskViewIcon.getHeight());
+ return y;
}
BaseDragLayer.LayoutParams lp = (BaseDragLayer.LayoutParams) taskMenuView.getLayoutParams();
int taskMenuWidth = lp.width;
@@ -222,18 +217,16 @@
@Override
public void setTaskIconParams(FrameLayout.LayoutParams iconParams,
int taskIconMargin, int taskIconHeight, int thumbnailTopMargin, boolean isRtl) {
- iconParams.rightMargin = 0;
- iconParams.bottomMargin = 0;
- if (enableOverviewIconMenu()) {
- iconParams.setMarginStart(taskIconMargin);
- iconParams.gravity = Gravity.START | Gravity.CENTER_VERTICAL;
- iconParams.leftMargin = 0;
- iconParams.topMargin = 0;
- } else {
- iconParams.gravity = (isRtl ? END : START) | CENTER_VERTICAL;
- iconParams.leftMargin = -taskIconHeight - taskIconMargin / 2;
- iconParams.topMargin = thumbnailTopMargin / 2;
- }
+ iconParams.gravity = (isRtl ? END : START) | CENTER_VERTICAL;
+ iconParams.setMargins(-taskIconHeight - taskIconMargin / 2, thumbnailTopMargin / 2, 0, 0);
+ }
+
+ @Override
+ public void setIconAppChipChildrenParams(FrameLayout.LayoutParams iconParams,
+ int chipChildMarginStart) {
+ iconParams.setMargins(0, 0, 0, 0);
+ iconParams.setMarginStart(chipChildMarginStart);
+ iconParams.gravity = Gravity.START | Gravity.CENTER_VERTICAL;
}
@Override
diff --git a/quickstep/src/com/android/quickstep/views/GroupedTaskView.java b/quickstep/src/com/android/quickstep/views/GroupedTaskView.java
index 66c67e7..ad4b292 100644
--- a/quickstep/src/com/android/quickstep/views/GroupedTaskView.java
+++ b/quickstep/src/com/android/quickstep/views/GroupedTaskView.java
@@ -398,8 +398,11 @@
layoutParams.width,
layoutParams.height
);
- int iconMargins = getResources().getDimensionPixelSize(
- R.dimen.task_thumbnail_icon_menu_start_margin) * 2;
+ int iconViewMarginStart = getResources().getDimensionPixelSize(
+ R.dimen.task_thumbnail_icon_menu_expanded_top_start_margin);
+ int iconViewBackgroundMarginStart = getResources().getDimensionPixelSize(
+ R.dimen.task_thumbnail_icon_menu_background_margin_top_start);
+ int iconMargins = (iconViewMarginStart + iconViewBackgroundMarginStart) * 2;
((IconAppChipView) mIconView).setMaxWidth(groupedTaskViewSizes.first.x - iconMargins);
((IconAppChipView) mIconView2).setMaxWidth(groupedTaskViewSizes.second.x - iconMargins);
}
diff --git a/quickstep/src/com/android/quickstep/views/IconAppChipView.java b/quickstep/src/com/android/quickstep/views/IconAppChipView.java
index 3347665..958c28a 100644
--- a/quickstep/src/com/android/quickstep/views/IconAppChipView.java
+++ b/quickstep/src/com/android/quickstep/views/IconAppChipView.java
@@ -17,30 +17,32 @@
import static com.android.app.animation.Interpolators.EMPHASIZED;
import static com.android.app.animation.Interpolators.LINEAR;
+import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY;
import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
+import android.animation.RectEvaluator;
+import android.animation.ValueAnimator;
import android.content.Context;
import android.content.res.Resources;
+import android.graphics.Outline;
+import android.graphics.Rect;
import android.graphics.drawable.AnimatedVectorDrawable;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
-import android.view.Gravity;
import android.view.View;
import android.view.ViewAnimationUtils;
+import android.view.ViewOutlineProvider;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.Nullable;
-import com.android.launcher3.DeviceProfile;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.util.MultiValueAlpha;
-import com.android.launcher3.views.ActivityContext;
import com.android.quickstep.orientation.RecentsPagedOrientationHandler;
import com.android.quickstep.util.RecentsOrientedState;
@@ -59,34 +61,28 @@
private final MultiValueAlpha mMultiValueAlpha;
+ private View mMenuAnchorView;
private IconView mIconView;
// Two textview so we can ellipsize the collapsed view and crossfade on expand to the full name.
private TextView mIconTextCollapsedView;
private TextView mIconTextExpandedView;
private ImageView mIconArrowView;
- private ImageView mIconViewBackground;
- // Use separate views for the rounded corners so we can scale the background view without
- // warping the corners.
- private ImageView mIconViewBackgroundCornersStart;
- private ImageView mIconViewBackgroundCornersEnd;
-
- private final int mMinimumMenuSize;
- private final int mMaxMenuWidth;
- private final int mIconMenuMarginTop;
- private final int mIconMenuMarginStart;
+ private final Rect mBackgroundRelativeLtrLocation = new Rect();
+ final RectEvaluator mBackgroundAnimationRectEvaluator =
+ new RectEvaluator(mBackgroundRelativeLtrLocation);
+ private final int mCollapsedMenuDefaultWidth;
+ private final int mExpandedMenuDefaultWidth;
+ private final int mCollapsedMenuDefaultHeight;
+ private final int mExpandedMenuDefaultHeight;
+ private final int mIconMenuMarginTopStart;
+ private final int mMenuToChipGap;
+ private final int mBackgroundMarginTopStart;
+ private final int mAppNameHorizontalMargin;
private final int mIconViewMarginStart;
- private final int mIconViewDrawableSize;
- private final int mIconViewDrawableMaxSize;
- private final int mIconTextMinWidth;
- private final int mIconTextMaxWidth;
- private final int mTextMaxTranslationX;
- private final int mInnerMargin;
- private final float mArrowMaxTranslationX;
- private final int mMinIconBackgroundWidth;
- private final int mMaxIconBackgroundHeight;
- private final int mMinIconBackgroundHeight;
- private final int mMaxIconBackgroundCornerRadius;
- private final float mMinIconBackgroundCornerRadius;
+ private final int mAppIconSize;
+ private final int mArrowSize;
+ private final int mIconViewDrawableExpandedSize;
+ private final int mArrowMarginEnd;
private AnimatorSet mAnimator;
private int mMaxWidth = Integer.MAX_VALUE;
@@ -111,51 +107,35 @@
mMultiValueAlpha.setUpdateVisibility(/* updateVisibility= */ true);
// Menu dimensions
- mMaxMenuWidth = res.getDimensionPixelSize(R.dimen.task_thumbnail_icon_menu_max_width);
- mIconMenuMarginTop = res.getDimensionPixelSize(R.dimen.task_thumbnail_icon_menu_top_margin);
- mIconMenuMarginStart = res.getDimensionPixelSize(
- R.dimen.task_thumbnail_icon_menu_start_margin);
+ mCollapsedMenuDefaultWidth =
+ res.getDimensionPixelSize(R.dimen.task_thumbnail_icon_menu_collapsed_width);
+ mExpandedMenuDefaultWidth =
+ res.getDimensionPixelSize(R.dimen.task_thumbnail_icon_menu_expanded_width);
+ mCollapsedMenuDefaultHeight =
+ res.getDimensionPixelSize(R.dimen.task_thumbnail_icon_menu_collapsed_height);
+ mExpandedMenuDefaultHeight =
+ res.getDimensionPixelSize(R.dimen.task_thumbnail_icon_menu_expanded_height);
+ mIconMenuMarginTopStart = res.getDimensionPixelSize(
+ R.dimen.task_thumbnail_icon_menu_expanded_top_start_margin);
+ mMenuToChipGap = res.getDimensionPixelSize(
+ R.dimen.task_thumbnail_icon_menu_expanded_gap);
// Background dimensions
- mMinIconBackgroundWidth = res.getDimensionPixelSize(
- R.dimen.task_thumbnail_icon_menu_background_min_width);
- mMaxIconBackgroundHeight = res.getDimensionPixelSize(
- R.dimen.task_thumbnail_icon_menu_max_height);
- mMinIconBackgroundHeight = res.getDimensionPixelSize(
- R.dimen.task_thumbnail_icon_menu_min_height);
- mMaxIconBackgroundCornerRadius = res.getDimensionPixelSize(
- R.dimen.task_thumbnail_icon_menu_corner_radius);
+ mBackgroundMarginTopStart = res.getDimensionPixelSize(
+ R.dimen.task_thumbnail_icon_menu_background_margin_top_start);
- // TextView dimensions
- mInnerMargin = (int) res.getDimension(R.dimen.task_thumbnail_icon_menu_arrow_margin);
- mIconTextMinWidth = res.getDimensionPixelSize(R.dimen.task_thumbnail_icon_menu_text_width);
- mIconTextMaxWidth = res.getDimensionPixelSize(
- R.dimen.task_thumbnail_icon_menu_text_max_width);
-
- // IconView dimensions
+ // Contents dimensions
+ mAppNameHorizontalMargin = res.getDimensionPixelSize(
+ R.dimen.task_thumbnail_icon_menu_app_name_margin_horizontal_collapsed);
+ mArrowMarginEnd = res.getDimensionPixelSize(R.dimen.task_thumbnail_icon_menu_arrow_margin);
mIconViewMarginStart = res.getDimensionPixelSize(
R.dimen.task_thumbnail_icon_view_start_margin);
- mIconViewDrawableSize = res.getDimensionPixelSize(
- R.dimen.task_thumbnail_icon_menu_drawable_size);
- mIconViewDrawableMaxSize = res.getDimensionPixelSize(
- R.dimen.task_thumbnail_icon_menu_drawable_max_size);
- mTextMaxTranslationX =
- (mIconViewDrawableMaxSize - mIconViewDrawableSize - mIconViewMarginStart)
- + (mInnerMargin / 2);
-
- // ArrowView dimensions
- int iconArrowViewWidth = res.getDimensionPixelSize(
+ mAppIconSize = res.getDimensionPixelSize(
+ R.dimen.task_thumbnail_icon_menu_app_icon_collapsed_size);
+ mArrowSize = res.getDimensionPixelSize(
R.dimen.task_thumbnail_icon_menu_arrow_size);
- mMinIconBackgroundCornerRadius = mMinIconBackgroundHeight / 2f;
- float maxCornerSize = Math.min(mMaxIconBackgroundHeight / 2f,
- mMaxIconBackgroundCornerRadius);
- mArrowMaxTranslationX = (mMaxMenuWidth - maxCornerSize) - (Math.min(mMaxWidth,
- mMinIconBackgroundWidth + (2 * mMinIconBackgroundCornerRadius)
- - mMinIconBackgroundCornerRadius)) - mInnerMargin;
-
- // Menu dimensions
- mMinimumMenuSize =
- mIconViewMarginStart + mIconViewDrawableSize + mInnerMargin + iconArrowViewWidth;
+ mIconViewDrawableExpandedSize = res.getDimensionPixelSize(
+ R.dimen.task_thumbnail_icon_menu_app_icon_expanded_size);
}
@Override
@@ -165,9 +145,7 @@
mIconTextCollapsedView = findViewById(R.id.icon_text_collapsed);
mIconTextExpandedView = findViewById(R.id.icon_text_expanded);
mIconArrowView = findViewById(R.id.icon_arrow);
- mIconViewBackground = findViewById(R.id.icon_view_background);
- mIconViewBackgroundCornersStart = findViewById(R.id.icon_view_background_corners_start);
- mIconViewBackgroundCornersEnd = findViewById(R.id.icon_view_background_corners_end);
+ mMenuAnchorView = findViewById(R.id.icon_view_menu_anchor);
}
protected IconView getIconView() {
@@ -204,88 +182,85 @@
}
/**
- * Sets the maximum width of this Icon Menu.
+ * Sets the maximum width of this Icon Menu. This is usually used when space is limited for
+ * split screen.
*/
public void setMaxWidth(int maxWidth) {
- // Only the app icon and caret are visible at its minimum width.
- mMaxWidth = Math.max(maxWidth, mMinimumMenuSize);
+ // Width showing only the app icon and arrow. Max width should not be set to less than this.
+ int minimumMaxWidth = mIconViewMarginStart + mAppIconSize + mArrowSize + mArrowMarginEnd;
+ mMaxWidth = Math.max(maxWidth, minimumMaxWidth);
}
@Override
public void setIconOrientation(RecentsOrientedState orientationState, boolean isGridTask) {
RecentsPagedOrientationHandler orientationHandler =
orientationState.getOrientationHandler();
- boolean isRtl = isLayoutRtl();
- DeviceProfile deviceProfile =
- ActivityContext.lookupContext(getContext()).getDeviceProfile();
+ // Layout params for anchor view
+ LayoutParams anchorLayoutParams = (LayoutParams) mMenuAnchorView.getLayoutParams();
+ anchorLayoutParams.topMargin = mExpandedMenuDefaultHeight + mMenuToChipGap;
+ mMenuAnchorView.setLayoutParams(anchorLayoutParams);
- // Layout Params for the Menu View
- int thumbnailTopMargin =
- deviceProfile.overviewTaskThumbnailTopMarginPx + mIconMenuMarginTop;
+ // Layout Params for the Menu View (this)
LayoutParams iconMenuParams = (LayoutParams) getLayoutParams();
- orientationHandler.setIconAppChipMenuParams(this, iconMenuParams, mIconMenuMarginStart,
- thumbnailTopMargin);
- iconMenuParams.width = Math.min(mMaxWidth,
- mMinIconBackgroundWidth + (int) (2 * mMinIconBackgroundCornerRadius));
- iconMenuParams.height = mMinIconBackgroundHeight;
+ iconMenuParams.width = mExpandedMenuDefaultWidth;
+ iconMenuParams.height = mExpandedMenuDefaultHeight;
+ orientationHandler.setIconAppChipMenuParams(this, iconMenuParams, mIconMenuMarginTopStart,
+ mIconMenuMarginTopStart);
setLayoutParams(iconMenuParams);
+ // Layout params for the background
+ Rect collapsedBackgroundBounds = getCollapsedBackgroundLtrBounds();
+ mBackgroundRelativeLtrLocation.set(collapsedBackgroundBounds);
+ setOutlineProvider(new ViewOutlineProvider() {
+ final Rect mRtlAppliedOutlineBounds = new Rect();
+ @Override
+ public void getOutline(View view, Outline outline) {
+ mRtlAppliedOutlineBounds.set(mBackgroundRelativeLtrLocation);
+ if (isLayoutRtl()) {
+ int width = getWidth();
+ mRtlAppliedOutlineBounds.left = width - mBackgroundRelativeLtrLocation.right;
+ mRtlAppliedOutlineBounds.right = width - mBackgroundRelativeLtrLocation.left;
+ }
+ outline.setRoundRect(
+ mRtlAppliedOutlineBounds, mRtlAppliedOutlineBounds.height() / 2f);
+ }
+ });
+
// Layout Params for the Icon View
LayoutParams iconParams = (LayoutParams) mIconView.getLayoutParams();
- orientationHandler.setTaskIconParams(iconParams, mIconViewMarginStart,
- mIconViewDrawableSize, thumbnailTopMargin, isRtl);
- iconParams.width = iconParams.height = mIconViewDrawableSize;
+ int iconMarginStartRelativeToParent = mIconViewMarginStart + mBackgroundMarginTopStart;
+ orientationHandler.setIconAppChipChildrenParams(
+ iconParams, iconMarginStartRelativeToParent);
+
mIconView.setLayoutParams(iconParams);
- mIconView.setDrawableSize(mIconViewDrawableSize, mIconViewDrawableSize);
+ mIconView.setDrawableSize(mAppIconSize, mAppIconSize);
// Layout Params for the collapsed Icon Text View
+ int textMarginStart =
+ iconMarginStartRelativeToParent + mAppIconSize + mAppNameHorizontalMargin;
LayoutParams iconTextCollapsedParams =
(LayoutParams) mIconTextCollapsedView.getLayoutParams();
- orientationHandler.setTaskIconParams(iconTextCollapsedParams, 0, mIconViewDrawableSize,
- thumbnailTopMargin, isRtl);
- iconTextCollapsedParams.setMarginStart(
- mIconViewDrawableSize + mIconViewMarginStart + mInnerMargin);
- iconTextCollapsedParams.topMargin = (mMinIconBackgroundHeight - mIconViewDrawableSize) / 2;
- iconTextCollapsedParams.gravity = Gravity.TOP | Gravity.START;
- iconTextCollapsedParams.width = Math.min(
- Math.max(mMaxWidth - mMinimumMenuSize - (2 * mInnerMargin), 0), mIconTextMinWidth);
+ orientationHandler.setIconAppChipChildrenParams(iconTextCollapsedParams, textMarginStart);
+ int collapsedTextWidth = collapsedBackgroundBounds.width() - mIconViewMarginStart
+ - mAppIconSize - mArrowSize - mAppNameHorizontalMargin - mArrowMarginEnd;
+ iconTextCollapsedParams.width = collapsedTextWidth;
mIconTextCollapsedView.setLayoutParams(iconTextCollapsedParams);
mIconTextCollapsedView.setAlpha(1f);
// Layout Params for the expanded Icon Text View
LayoutParams iconTextExpandedParams =
(LayoutParams) mIconTextExpandedView.getLayoutParams();
- orientationHandler.setTaskIconParams(iconTextExpandedParams, 0, mIconViewDrawableSize,
- thumbnailTopMargin, isRtl);
- iconTextExpandedParams.setMarginStart(
- mIconViewDrawableSize + mIconViewMarginStart + mInnerMargin);
- iconTextExpandedParams.topMargin = (mMinIconBackgroundHeight - mIconViewDrawableSize) / 2;
- iconTextExpandedParams.gravity = Gravity.TOP | Gravity.START;
+ orientationHandler.setIconAppChipChildrenParams(iconTextExpandedParams, textMarginStart);
mIconTextExpandedView.setLayoutParams(iconTextExpandedParams);
mIconTextExpandedView.setAlpha(0f);
- mIconTextExpandedView.setRevealClip(true, 0, mIconViewDrawableSize / 2f, mIconTextMinWidth);
+ mIconTextExpandedView.setRevealClip(true, 0, mAppIconSize / 2f, collapsedTextWidth);
// Layout Params for the Icon Arrow View
LayoutParams iconArrowParams = (LayoutParams) mIconArrowView.getLayoutParams();
- iconArrowParams.gravity = Gravity.CENTER_VERTICAL | Gravity.END;
- iconArrowParams.setMarginEnd(mInnerMargin);
+ int arrowMarginStart = collapsedBackgroundBounds.right - mArrowMarginEnd - mArrowSize;
+ orientationHandler.setIconAppChipChildrenParams(iconArrowParams, arrowMarginStart);
mIconArrowView.setLayoutParams(iconArrowParams);
- // Layout Params for the Icon View Background and its corners
- int cornerlessBackgroundWidth = (int) Math.min(
- mMaxWidth - (2 * mMinIconBackgroundCornerRadius), mMinIconBackgroundWidth);
- LayoutParams backgroundCornerEndParams =
- (LayoutParams) mIconViewBackgroundCornersEnd.getLayoutParams();
- backgroundCornerEndParams.setMarginStart(cornerlessBackgroundWidth);
- mIconViewBackgroundCornersEnd.setLayoutParams(backgroundCornerEndParams);
- LayoutParams backgroundParams = (LayoutParams) mIconViewBackground.getLayoutParams();
- backgroundParams.width = cornerlessBackgroundWidth;
- backgroundParams.height = mMinIconBackgroundHeight;
- backgroundParams.setMarginStart((int) mMinIconBackgroundCornerRadius);
- mIconViewBackground.setLayoutParams(backgroundParams);
- mIconViewBackground.setPivotX(isRtl ? cornerlessBackgroundWidth : 0);
- mIconViewBackground.setPivotY(mMinIconBackgroundCornerRadius);
-
// This method is called twice sometimes (like when rotating split tasks). It is called
// once before onMeasure and onLayout, and again after onMeasure but before onLayout with
// a new width. This happens because we update widths on rotation and on measure of
@@ -324,108 +299,96 @@
protected void revealAnim(boolean isRevealing) {
cancelInProgressAnimations();
+ final Rect collapsedBackgroundBounds = getCollapsedBackgroundLtrBounds();
+ final Rect expandedBackgroundBounds = getExpandedBackgroundLtrBounds();
+ final Rect initialBackground = new Rect(mBackgroundRelativeLtrLocation);
+ mAnimator = new AnimatorSet();
if (isRevealing) {
boolean isRtl = isLayoutRtl();
bringToFront();
((AnimatedVectorDrawable) mIconArrowView.getDrawable()).start();
- mAnimator = new AnimatorSet();
- float backgroundScaleY = mMaxIconBackgroundHeight / (float) mMinIconBackgroundHeight;
- float maxCornerSize = Math.min(mMaxIconBackgroundHeight / 2f,
- mMaxIconBackgroundCornerRadius);
- float backgroundScaleX = (mMaxMenuWidth - (2 * maxCornerSize)) / Math.min(
- mMaxWidth - (2 * mMinIconBackgroundCornerRadius), mMinIconBackgroundWidth);
- float arrowTranslationX = mArrowMaxTranslationX + (mMinIconBackgroundWidth - Math.min(
- mMaxWidth - (2 * mMinIconBackgroundCornerRadius), mMinIconBackgroundWidth));
// Clip expanded text with reveal animation so it doesn't go beyond the edge of the menu
Animator expandedTextRevealAnim = ViewAnimationUtils.createCircularReveal(
- mIconTextExpandedView, 0, mIconTextExpandedView.getHeight() / 2, 0,
- mIconTextMaxWidth + maxCornerSize);
- expandedTextRevealAnim.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- // createCircularReveal removes clip on finish, restore it here to clip text.
- mIconTextExpandedView.setRevealClip(true, 0,
- mIconTextExpandedView.getHeight() / 2f,
- mIconTextMaxWidth + maxCornerSize);
- }
- });
+ mIconTextExpandedView, 0, mIconTextExpandedView.getHeight() / 2,
+ mIconTextCollapsedView.getWidth(), mIconTextExpandedView.getWidth());
+ // Animate background clipping
+ ValueAnimator backgroundAnimator = ValueAnimator.ofObject(
+ mBackgroundAnimationRectEvaluator,
+ initialBackground,
+ expandedBackgroundBounds);
+ backgroundAnimator.addUpdateListener(valueAnimator -> invalidateOutline());
+
+ float iconViewScaling = mIconViewDrawableExpandedSize / (float) mAppIconSize;
+ float arrowTranslationX =
+ expandedBackgroundBounds.right - collapsedBackgroundBounds.right;
+ float iconCenterToTextCollapsed = mAppIconSize / 2f + mAppNameHorizontalMargin;
+ float iconCenterToTextExpanded =
+ mIconViewDrawableExpandedSize / 2f + mAppNameHorizontalMargin;
+ float textTranslationX = iconCenterToTextExpanded - iconCenterToTextCollapsed;
+
+ float textTranslationXWithRtl = isRtl ? -textTranslationX : textTranslationX;
+ float arrowTranslationWithRtl = isRtl ? -arrowTranslationX : arrowTranslationX;
+
mAnimator.playTogether(
expandedTextRevealAnim,
- ObjectAnimator.ofFloat(mIconViewBackgroundCornersStart, SCALE_Y,
- backgroundScaleY),
- ObjectAnimator.ofFloat(mIconViewBackgroundCornersStart, SCALE_X,
- backgroundScaleY),
- ObjectAnimator.ofFloat(mIconViewBackgroundCornersEnd, SCALE_Y,
- backgroundScaleY),
- ObjectAnimator.ofFloat(mIconViewBackgroundCornersEnd, SCALE_X,
- backgroundScaleY),
- ObjectAnimator.ofFloat(mIconViewBackgroundCornersEnd, TRANSLATION_X,
- isRtl ? -arrowTranslationX : arrowTranslationX),
- ObjectAnimator.ofFloat(mIconViewBackground, SCALE_X, backgroundScaleX),
- ObjectAnimator.ofFloat(mIconViewBackground, SCALE_Y, backgroundScaleY),
- ObjectAnimator.ofFloat(mIconView, SCALE_X,
- mIconViewDrawableMaxSize / (float) mIconViewDrawableSize),
- ObjectAnimator.ofFloat(mIconView, SCALE_Y,
- mIconViewDrawableMaxSize / (float) mIconViewDrawableSize),
+ backgroundAnimator,
+ ObjectAnimator.ofFloat(mIconView, SCALE_X, iconViewScaling),
+ ObjectAnimator.ofFloat(mIconView, SCALE_Y, iconViewScaling),
ObjectAnimator.ofFloat(mIconTextCollapsedView, TRANSLATION_X,
- isLayoutRtl() ? -mTextMaxTranslationX : mTextMaxTranslationX),
+ textTranslationXWithRtl),
ObjectAnimator.ofFloat(mIconTextExpandedView, TRANSLATION_X,
- isLayoutRtl() ? -mTextMaxTranslationX : mTextMaxTranslationX),
+ textTranslationXWithRtl),
ObjectAnimator.ofFloat(mIconTextCollapsedView, ALPHA, 0),
ObjectAnimator.ofFloat(mIconTextExpandedView, ALPHA, 1),
- ObjectAnimator.ofFloat(mIconArrowView, TRANSLATION_X,
- isRtl ? -arrowTranslationX : arrowTranslationX));
+ ObjectAnimator.ofFloat(mIconArrowView, TRANSLATION_X, arrowTranslationWithRtl));
mAnimator.setDuration(MENU_BACKGROUND_REVEAL_DURATION);
- mAnimator.setInterpolator(EMPHASIZED);
- mAnimator.start();
} else {
((AnimatedVectorDrawable) mIconArrowView.getDrawable()).reverse();
- float maxCornerSize = Math.min(mMaxIconBackgroundHeight / 2f,
- mMaxIconBackgroundCornerRadius);
// Clip expanded text with reveal animation so it doesn't go beyond the edge of the menu
Animator expandedTextClipAnim = ViewAnimationUtils.createCircularReveal(
mIconTextExpandedView, 0, mIconTextExpandedView.getHeight() / 2,
- mIconTextMaxWidth + maxCornerSize, 0);
- expandedTextClipAnim.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- // createCircularReveal removes clip on finish, restore it here to clip text.
- mIconTextExpandedView.setRevealClip(true, 0,
- mIconTextExpandedView.getHeight() / 2f, 0);
- }
- });
- mAnimator = new AnimatorSet();
+ mIconTextExpandedView.getWidth(), mIconTextCollapsedView.getWidth());
+
+ // Animate background clipping
+ ValueAnimator backgroundAnimator = ValueAnimator.ofObject(
+ mBackgroundAnimationRectEvaluator,
+ initialBackground,
+ collapsedBackgroundBounds);
+ backgroundAnimator.addUpdateListener(valueAnimator -> invalidateOutline());
+
mAnimator.playTogether(
expandedTextClipAnim,
- ObjectAnimator.ofFloat(mIconViewBackgroundCornersStart, SCALE_X, 1),
- ObjectAnimator.ofFloat(mIconViewBackgroundCornersStart, SCALE_Y, 1),
- ObjectAnimator.ofFloat(mIconViewBackgroundCornersEnd, SCALE_X, 1),
- ObjectAnimator.ofFloat(mIconViewBackgroundCornersEnd, SCALE_Y, 1),
- ObjectAnimator.ofFloat(mIconViewBackgroundCornersEnd, TRANSLATION_X, 0),
- ObjectAnimator.ofFloat(mIconViewBackground, SCALE_X, 1),
- ObjectAnimator.ofFloat(mIconViewBackground, SCALE_Y, 1),
- ObjectAnimator.ofFloat(mIconView, SCALE_X, 1),
- ObjectAnimator.ofFloat(mIconView, SCALE_Y, 1),
+ backgroundAnimator,
+ ObjectAnimator.ofFloat(mIconView, SCALE_PROPERTY, 1),
ObjectAnimator.ofFloat(mIconTextCollapsedView, TRANSLATION_X, 0),
ObjectAnimator.ofFloat(mIconTextExpandedView, TRANSLATION_X, 0),
ObjectAnimator.ofFloat(mIconTextCollapsedView, ALPHA, 1),
ObjectAnimator.ofFloat(mIconTextExpandedView, ALPHA, 0),
ObjectAnimator.ofFloat(mIconArrowView, TRANSLATION_X, 0));
mAnimator.setDuration(MENU_BACKGROUND_HIDE_DURATION);
- mAnimator.setInterpolator(EMPHASIZED);
- mAnimator.start();
}
+
+ mAnimator.setInterpolator(EMPHASIZED);
+ mAnimator.start();
+ }
+
+ private Rect getCollapsedBackgroundLtrBounds() {
+ Rect bounds = new Rect(
+ 0,
+ 0,
+ Math.min(mMaxWidth, mCollapsedMenuDefaultWidth),
+ mCollapsedMenuDefaultHeight);
+ bounds.offset(mBackgroundMarginTopStart, mBackgroundMarginTopStart);
+ return bounds;
+ }
+
+ private Rect getExpandedBackgroundLtrBounds() {
+ return new Rect(0, 0, mExpandedMenuDefaultWidth, mExpandedMenuDefaultHeight);
}
protected void reset() {
- mIconViewBackgroundCornersStart.setScaleX(1);
- mIconViewBackgroundCornersStart.setScaleY(1);
- mIconViewBackgroundCornersEnd.setScaleX(1);
- mIconViewBackgroundCornersEnd.setScaleY(1);
- mIconViewBackgroundCornersEnd.setTranslationX(0);
- mIconViewBackground.setScaleX(1);
- mIconViewBackground.setScaleY(1);
+ mBackgroundRelativeLtrLocation.set(getCollapsedBackgroundLtrBounds());
mIconView.setScaleX(1);
mIconView.setScaleY(1);
mIconTextCollapsedView.setTranslationX(0);
diff --git a/quickstep/src/com/android/quickstep/views/IconView.java b/quickstep/src/com/android/quickstep/views/IconView.java
index 4d33fda..1312ec3 100644
--- a/quickstep/src/com/android/quickstep/views/IconView.java
+++ b/quickstep/src/com/android/quickstep/views/IconView.java
@@ -15,8 +15,6 @@
*/
package com.android.quickstep.views;
-import static com.android.launcher3.Flags.enableOverviewIconMenu;
-
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Rect;
@@ -196,10 +194,8 @@
setLayoutParams(iconParams);
setRotation(orientationHandler.getDegreesRotated());
- int iconDrawableSize = enableOverviewIconMenu()
- ? deviceProfile.overviewTaskIconAppChipMenuDrawableSizePx
- : isGridTask ? deviceProfile.overviewTaskIconDrawableSizeGridPx
- : deviceProfile.overviewTaskIconDrawableSizePx;
+ int iconDrawableSize = isGridTask ? deviceProfile.overviewTaskIconDrawableSizeGridPx
+ : deviceProfile.overviewTaskIconDrawableSizePx;
setDrawableSize(iconDrawableSize, iconDrawableSize);
}
diff --git a/quickstep/src/com/android/quickstep/views/TaskMenuView.java b/quickstep/src/com/android/quickstep/views/TaskMenuView.java
index cf50835..6404383 100644
--- a/quickstep/src/com/android/quickstep/views/TaskMenuView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskMenuView.java
@@ -225,8 +225,10 @@
// Get Position
DeviceProfile deviceProfile = mActivity.getDeviceProfile();
mActivity.getDragLayer().getDescendantRectRelativeToSelf(
- enableOverviewIconMenu() ? taskContainer.getIconView().asView()
- : taskContainer.getThumbnailView(), sTempRect);
+ enableOverviewIconMenu()
+ ? getIconView().findViewById(R.id.icon_view_menu_anchor)
+ : taskContainer.getThumbnailView(),
+ sTempRect);
Rect insets = mActivity.getDragLayer().getInsets();
BaseDragLayer.LayoutParams params = (BaseDragLayer.LayoutParams) getLayoutParams();
params.width = orientationHandler.getTaskMenuWidth(taskContainer.getThumbnailView(),
@@ -246,15 +248,9 @@
orientationHandler.setTaskOptionsMenuLayoutOrientation(
deviceProfile, mOptionLayout, dividerSpacing, divider);
- float thumbnailAlignedX = sTempRect.left - insets.left + (enableOverviewIconMenu()
- ? -getResources().getDimensionPixelSize(
- R.dimen.task_thumbnail_icon_menu_touch_max_margin)
- - getResources().getDimension(R.dimen.task_thumbnail_icon_menu_start_margin)
- : 0);
- float thumbnailAlignedY = sTempRect.top - insets.top + (enableOverviewIconMenu()
- ? getResources().getDimensionPixelSize(R.dimen.task_thumbnail_icon_menu_max_height)
- - getResources().getDimensionPixelSize(
- R.dimen.task_thumbnail_icon_menu_top_margin) : 0);
+ float thumbnailAlignedX = sTempRect.left - insets.left;
+ float thumbnailAlignedY = sTempRect.top - insets.top;
+
// Changing pivot to make computations easier
// NOTE: Changing the pivots means the rotated view gets rotated about the new pivots set,
// which would render the X and Y position set here incorrect
@@ -262,31 +258,35 @@
setPivotY(0);
setRotation(orientationHandler.getDegreesRotated());
- // Margin that insets the menuView inside the taskView
- float taskInsetMarginX = enableOverviewIconMenu() ? getResources().getDimension(
- R.dimen.task_thumbnail_icon_menu_start_margin) : getResources().getDimension(
- R.dimen.task_card_margin);
- float taskInsetMarginY = enableOverviewIconMenu() ? getResources().getDimension(
- R.dimen.task_thumbnail_icon_menu_start_margin) : getResources().getDimension(
- R.dimen.task_card_margin);
- setTranslationX(orientationHandler.getTaskMenuX(thumbnailAlignedX,
- mTaskContainer.getThumbnailView(), deviceProfile, taskInsetMarginX,
- mTaskContainer.getIconView().asView()));
- setTranslationY(orientationHandler.getTaskMenuY(
- thumbnailAlignedY, mTaskContainer.getThumbnailView(),
- mTaskContainer.getStagePosition(), this, taskInsetMarginY,
- mTaskContainer.getIconView().asView()));
+ if (enableOverviewIconMenu()) {
+ setTranslationX(thumbnailAlignedX);
+ setTranslationY(thumbnailAlignedY);
+ } else {
+ // Margin that insets the menuView inside the taskView
+ float taskInsetMargin = getResources().getDimension(R.dimen.task_card_margin);
+ setTranslationX(orientationHandler.getTaskMenuX(thumbnailAlignedX,
+ mTaskContainer.getThumbnailView(), deviceProfile, taskInsetMargin,
+ getIconView()));
+ setTranslationY(orientationHandler.getTaskMenuY(
+ thumbnailAlignedY, mTaskContainer.getThumbnailView(),
+ mTaskContainer.getStagePosition(), this, taskInsetMargin,
+ getIconView()));
+ }
}
private void animateOpen() {
mMenuTranslationYBeforeOpen = getTranslationY();
mMenuTranslationXBeforeOpen = getTranslationX();
- mIconViewTranslationYBeforeOpen = mTaskContainer.getIconView().asView().getTranslationY();
- mIconViewTranslationXBeforeOpen = mTaskContainer.getIconView().asView().getTranslationX();
+ mIconViewTranslationYBeforeOpen = getIconView().getTranslationY();
+ mIconViewTranslationXBeforeOpen = getIconView().getTranslationX();
animateOpenOrClosed(false);
mIsOpen = true;
}
+ private View getIconView() {
+ return mTaskContainer.getIconView().asView();
+ }
+
private void animateClose() {
animateOpenOrClosed(true);
}
@@ -318,17 +318,13 @@
float midpoint = (taskBottom + taskbarTop) / 2f;
additionalTranslationY = -Math.max(menuBottom - midpoint, 0);
}
- // Translate the menu to account for the expansion of the app chip menu as well.
- float expandOffsetTranslationY = getResources().getDimensionPixelSize(
- R.dimen.task_thumbnail_icon_menu_expanded_gap);
ObjectAnimator translationYAnim = ObjectAnimator.ofFloat(this, TRANSLATION_Y,
closing ? mMenuTranslationYBeforeOpen
- : mMenuTranslationYBeforeOpen + additionalTranslationY
- + expandOffsetTranslationY);
+ : mMenuTranslationYBeforeOpen + additionalTranslationY);
translationYAnim.setInterpolator(EMPHASIZED);
ObjectAnimator menuTranslationYAnim = ObjectAnimator.ofFloat(
- mTaskContainer.getIconView().asView(), TRANSLATION_Y,
+ getIconView(), TRANSLATION_Y,
closing ? mIconViewTranslationYBeforeOpen
: mIconViewTranslationYBeforeOpen + additionalTranslationY);
menuTranslationYAnim.setInterpolator(EMPHASIZED);
@@ -349,7 +345,7 @@
translationXAnim.setInterpolator(EMPHASIZED);
ObjectAnimator menuTranslationXAnim = ObjectAnimator.ofFloat(
- mTaskContainer.getIconView().asView(), TRANSLATION_X,
+ getIconView(), TRANSLATION_X,
closing ? mIconViewTranslationXBeforeOpen
: mIconViewTranslationXBeforeOpen - additionalTranslationX);
menuTranslationXAnim.setInterpolator(EMPHASIZED);
@@ -393,7 +389,7 @@
if (enableOverviewIconMenu()) {
((IconAppChipView) mTaskContainer.getIconView()).reset();
setTranslationY(mMenuTranslationYBeforeOpen);
- mTaskContainer.getIconView().asView().setTranslationY(mIconViewTranslationYBeforeOpen);
+ getIconView().setTranslationY(mIconViewTranslationYBeforeOpen);
}
}
diff --git a/res/drawable/icon_menu_background.xml b/res/drawable/icon_menu_background.xml
deleted file mode 100644
index 8a95c3e..0000000
--- a/res/drawable/icon_menu_background.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
- android:shape="rectangle">
- <solid android:color="?androidprv:attr/materialColorSurfaceBright" />
-</shape>
\ No newline at end of file
diff --git a/res/drawable/icon_menu_background_corners.xml b/res/drawable/icon_menu_background_corners.xml
deleted file mode 100644
index 16e3fe2..0000000
--- a/res/drawable/icon_menu_background_corners.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
- android:shape="rectangle">
- <solid android:color="?androidprv:attr/materialColorSurfaceBright" />
- <corners android:radius="@dimen/task_thumbnail_icon_menu_corner_radius" />
-</shape>
\ No newline at end of file
diff --git a/res/drawable/icon_menu_elevation_background.xml b/res/drawable/icon_menu_elevation_background.xml
deleted file mode 100644
index 16e3fe2..0000000
--- a/res/drawable/icon_menu_elevation_background.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
- android:shape="rectangle">
- <solid android:color="?androidprv:attr/materialColorSurfaceBright" />
- <corners android:radius="@dimen/task_thumbnail_icon_menu_corner_radius" />
-</shape>
\ No newline at end of file
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 3aa4a77..00082ae 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -414,11 +414,6 @@
<dimen name="task_thumbnail_icon_size">0dp</dimen>
<dimen name="task_thumbnail_icon_drawable_size">0dp</dimen>
<dimen name="task_thumbnail_icon_drawable_size_grid">0dp</dimen>
- <dimen name="task_thumbnail_icon_menu_max_width">0dp</dimen>
- <dimen name="task_thumbnail_icon_menu_start_margin">0dp</dimen>
- <dimen name="task_thumbnail_icon_menu_background_max_width">0dp</dimen>
- <dimen name="task_thumbnail_icon_menu_corner_radius">0dp</dimen>
- <dimen name="task_thumbnail_icon_menu_drawable_size">0dp</dimen>
<dimen name="task_thumbnail_icon_menu_drawable_touch_size">0dp</dimen>
<dimen name="task_menu_edge_padding">0dp</dimen>
<dimen name="overview_task_margin">0dp</dimen>
diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java
index e9545c8..8593883 100644
--- a/src/com/android/launcher3/DeviceProfile.java
+++ b/src/com/android/launcher3/DeviceProfile.java
@@ -260,7 +260,6 @@
public int overviewTaskIconSizePx;
public int overviewTaskIconDrawableSizePx;
public int overviewTaskIconDrawableSizeGridPx;
- public int overviewTaskIconAppChipMenuDrawableSizePx;
public int overviewTaskThumbnailTopMarginPx;
public final int overviewActionsHeight;
public final int overviewActionsTopMarginPx;
@@ -686,8 +685,6 @@
res.getDimensionPixelSize(R.dimen.task_thumbnail_icon_drawable_size);
overviewTaskIconDrawableSizeGridPx =
res.getDimensionPixelSize(R.dimen.task_thumbnail_icon_drawable_size_grid);
- overviewTaskIconAppChipMenuDrawableSizePx = res.getDimensionPixelSize(
- R.dimen.task_thumbnail_icon_menu_drawable_size);
overviewTaskThumbnailTopMarginPx =
enableOverviewIconMenu() ? 0 : overviewTaskIconSizePx + overviewTaskMarginPx;
// Don't add margin with floating search bar to minimize risk of overlapping.
@@ -2163,8 +2160,6 @@
overviewTaskIconDrawableSizePx));
writer.println(prefix + pxToDpStr("overviewTaskIconDrawableSizeGridPx",
overviewTaskIconDrawableSizeGridPx));
- writer.println(prefix + pxToDpStr("overviewTaskIconAppChipMenuDrawableSizePx",
- overviewTaskIconAppChipMenuDrawableSizePx));
writer.println(prefix + pxToDpStr("overviewTaskThumbnailTopMarginPx",
overviewTaskThumbnailTopMarginPx));
writer.println(prefix + pxToDpStr("overviewActionsTopMarginPx",
diff --git a/tests/assets/dumpTests/DeviceProfileDumpTest/phonePortrait.txt b/tests/assets/dumpTests/DeviceProfileDumpTest/phonePortrait.txt
index 18752e9..af8f67f 100644
--- a/tests/assets/dumpTests/DeviceProfileDumpTest/phonePortrait.txt
+++ b/tests/assets/dumpTests/DeviceProfileDumpTest/phonePortrait.txt
@@ -110,7 +110,6 @@
overviewTaskIconSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizeGridPx: 0.0px (0.0dp)
- overviewTaskIconAppChipMenuDrawableSizePx: 0.0px (0.0dp)
overviewTaskThumbnailTopMarginPx: 0.0px (0.0dp)
overviewActionsTopMarginPx: 0.0px (0.0dp)
overviewActionsHeight: 0.0px (0.0dp)
diff --git a/tests/assets/dumpTests/DeviceProfileDumpTest/phonePortrait3Button.txt b/tests/assets/dumpTests/DeviceProfileDumpTest/phonePortrait3Button.txt
index c0de8d8..5b83dd7 100644
--- a/tests/assets/dumpTests/DeviceProfileDumpTest/phonePortrait3Button.txt
+++ b/tests/assets/dumpTests/DeviceProfileDumpTest/phonePortrait3Button.txt
@@ -110,7 +110,6 @@
overviewTaskIconSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizeGridPx: 0.0px (0.0dp)
- overviewTaskIconAppChipMenuDrawableSizePx: 0.0px (0.0dp)
overviewTaskThumbnailTopMarginPx: 0.0px (0.0dp)
overviewActionsTopMarginPx: 0.0px (0.0dp)
overviewActionsHeight: 0.0px (0.0dp)
diff --git a/tests/assets/dumpTests/DeviceProfileDumpTest/phoneVerticalBar.txt b/tests/assets/dumpTests/DeviceProfileDumpTest/phoneVerticalBar.txt
index 920ba6f..256f5cd 100644
--- a/tests/assets/dumpTests/DeviceProfileDumpTest/phoneVerticalBar.txt
+++ b/tests/assets/dumpTests/DeviceProfileDumpTest/phoneVerticalBar.txt
@@ -110,7 +110,6 @@
overviewTaskIconSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizeGridPx: 0.0px (0.0dp)
- overviewTaskIconAppChipMenuDrawableSizePx: 0.0px (0.0dp)
overviewTaskThumbnailTopMarginPx: 0.0px (0.0dp)
overviewActionsTopMarginPx: 0.0px (0.0dp)
overviewActionsHeight: 0.0px (0.0dp)
diff --git a/tests/assets/dumpTests/DeviceProfileDumpTest/phoneVerticalBar3Button.txt b/tests/assets/dumpTests/DeviceProfileDumpTest/phoneVerticalBar3Button.txt
index 65460ec..f41b0a5 100644
--- a/tests/assets/dumpTests/DeviceProfileDumpTest/phoneVerticalBar3Button.txt
+++ b/tests/assets/dumpTests/DeviceProfileDumpTest/phoneVerticalBar3Button.txt
@@ -110,7 +110,6 @@
overviewTaskIconSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizeGridPx: 0.0px (0.0dp)
- overviewTaskIconAppChipMenuDrawableSizePx: 0.0px (0.0dp)
overviewTaskThumbnailTopMarginPx: 0.0px (0.0dp)
overviewActionsTopMarginPx: 0.0px (0.0dp)
overviewActionsHeight: 0.0px (0.0dp)
diff --git a/tests/assets/dumpTests/DeviceProfileDumpTest/tabletLandscape.txt b/tests/assets/dumpTests/DeviceProfileDumpTest/tabletLandscape.txt
index 92caf23..87a9700 100644
--- a/tests/assets/dumpTests/DeviceProfileDumpTest/tabletLandscape.txt
+++ b/tests/assets/dumpTests/DeviceProfileDumpTest/tabletLandscape.txt
@@ -110,7 +110,6 @@
overviewTaskIconSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizeGridPx: 0.0px (0.0dp)
- overviewTaskIconAppChipMenuDrawableSizePx: 0.0px (0.0dp)
overviewTaskThumbnailTopMarginPx: 0.0px (0.0dp)
overviewActionsTopMarginPx: 0.0px (0.0dp)
overviewActionsHeight: 0.0px (0.0dp)
diff --git a/tests/assets/dumpTests/DeviceProfileDumpTest/tabletLandscape3Button.txt b/tests/assets/dumpTests/DeviceProfileDumpTest/tabletLandscape3Button.txt
index 3815fa9..169256d 100644
--- a/tests/assets/dumpTests/DeviceProfileDumpTest/tabletLandscape3Button.txt
+++ b/tests/assets/dumpTests/DeviceProfileDumpTest/tabletLandscape3Button.txt
@@ -110,7 +110,6 @@
overviewTaskIconSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizeGridPx: 0.0px (0.0dp)
- overviewTaskIconAppChipMenuDrawableSizePx: 0.0px (0.0dp)
overviewTaskThumbnailTopMarginPx: 0.0px (0.0dp)
overviewActionsTopMarginPx: 0.0px (0.0dp)
overviewActionsHeight: 0.0px (0.0dp)
diff --git a/tests/assets/dumpTests/DeviceProfileDumpTest/tabletPortrait.txt b/tests/assets/dumpTests/DeviceProfileDumpTest/tabletPortrait.txt
index 7e0f316..6ed6879 100644
--- a/tests/assets/dumpTests/DeviceProfileDumpTest/tabletPortrait.txt
+++ b/tests/assets/dumpTests/DeviceProfileDumpTest/tabletPortrait.txt
@@ -110,7 +110,6 @@
overviewTaskIconSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizeGridPx: 0.0px (0.0dp)
- overviewTaskIconAppChipMenuDrawableSizePx: 0.0px (0.0dp)
overviewTaskThumbnailTopMarginPx: 0.0px (0.0dp)
overviewActionsTopMarginPx: 0.0px (0.0dp)
overviewActionsHeight: 0.0px (0.0dp)
diff --git a/tests/assets/dumpTests/DeviceProfileDumpTest/tabletPortrait3Button.txt b/tests/assets/dumpTests/DeviceProfileDumpTest/tabletPortrait3Button.txt
index 58c3890..a51669b 100644
--- a/tests/assets/dumpTests/DeviceProfileDumpTest/tabletPortrait3Button.txt
+++ b/tests/assets/dumpTests/DeviceProfileDumpTest/tabletPortrait3Button.txt
@@ -110,7 +110,6 @@
overviewTaskIconSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizeGridPx: 0.0px (0.0dp)
- overviewTaskIconAppChipMenuDrawableSizePx: 0.0px (0.0dp)
overviewTaskThumbnailTopMarginPx: 0.0px (0.0dp)
overviewActionsTopMarginPx: 0.0px (0.0dp)
overviewActionsHeight: 0.0px (0.0dp)
diff --git a/tests/assets/dumpTests/DeviceProfileDumpTest/twoPanelLandscape.txt b/tests/assets/dumpTests/DeviceProfileDumpTest/twoPanelLandscape.txt
index 1e363a2..61d5ee6 100644
--- a/tests/assets/dumpTests/DeviceProfileDumpTest/twoPanelLandscape.txt
+++ b/tests/assets/dumpTests/DeviceProfileDumpTest/twoPanelLandscape.txt
@@ -110,7 +110,6 @@
overviewTaskIconSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizeGridPx: 0.0px (0.0dp)
- overviewTaskIconAppChipMenuDrawableSizePx: 0.0px (0.0dp)
overviewTaskThumbnailTopMarginPx: 0.0px (0.0dp)
overviewActionsTopMarginPx: 0.0px (0.0dp)
overviewActionsHeight: 0.0px (0.0dp)
diff --git a/tests/assets/dumpTests/DeviceProfileDumpTest/twoPanelLandscape3Button.txt b/tests/assets/dumpTests/DeviceProfileDumpTest/twoPanelLandscape3Button.txt
index 617b54b..ac73e2f 100644
--- a/tests/assets/dumpTests/DeviceProfileDumpTest/twoPanelLandscape3Button.txt
+++ b/tests/assets/dumpTests/DeviceProfileDumpTest/twoPanelLandscape3Button.txt
@@ -110,7 +110,6 @@
overviewTaskIconSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizeGridPx: 0.0px (0.0dp)
- overviewTaskIconAppChipMenuDrawableSizePx: 0.0px (0.0dp)
overviewTaskThumbnailTopMarginPx: 0.0px (0.0dp)
overviewActionsTopMarginPx: 0.0px (0.0dp)
overviewActionsHeight: 0.0px (0.0dp)
diff --git a/tests/assets/dumpTests/DeviceProfileDumpTest/twoPanelPortrait.txt b/tests/assets/dumpTests/DeviceProfileDumpTest/twoPanelPortrait.txt
index 483b5e7..93ab6f2 100644
--- a/tests/assets/dumpTests/DeviceProfileDumpTest/twoPanelPortrait.txt
+++ b/tests/assets/dumpTests/DeviceProfileDumpTest/twoPanelPortrait.txt
@@ -110,7 +110,6 @@
overviewTaskIconSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizeGridPx: 0.0px (0.0dp)
- overviewTaskIconAppChipMenuDrawableSizePx: 0.0px (0.0dp)
overviewTaskThumbnailTopMarginPx: 0.0px (0.0dp)
overviewActionsTopMarginPx: 0.0px (0.0dp)
overviewActionsHeight: 0.0px (0.0dp)
diff --git a/tests/assets/dumpTests/DeviceProfileDumpTest/twoPanelPortrait3Button.txt b/tests/assets/dumpTests/DeviceProfileDumpTest/twoPanelPortrait3Button.txt
index 8d0640c..ec9a10e 100644
--- a/tests/assets/dumpTests/DeviceProfileDumpTest/twoPanelPortrait3Button.txt
+++ b/tests/assets/dumpTests/DeviceProfileDumpTest/twoPanelPortrait3Button.txt
@@ -110,7 +110,6 @@
overviewTaskIconSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizePx: 0.0px (0.0dp)
overviewTaskIconDrawableSizeGridPx: 0.0px (0.0dp)
- overviewTaskIconAppChipMenuDrawableSizePx: 0.0px (0.0dp)
overviewTaskThumbnailTopMarginPx: 0.0px (0.0dp)
overviewActionsTopMarginPx: 0.0px (0.0dp)
overviewActionsHeight: 0.0px (0.0dp)