diff --git a/quickstep/src/com/android/quickstep/orientation/LandscapePagedViewHandler.java b/quickstep/src/com/android/quickstep/orientation/LandscapePagedViewHandler.java index 8648b56072..f345aebb0c 100644 --- a/quickstep/src/com/android/quickstep/orientation/LandscapePagedViewHandler.java +++ b/quickstep/src/com/android/quickstep/orientation/LandscapePagedViewHandler.java @@ -304,6 +304,12 @@ public class LandscapePagedViewHandler implements RecentsPagedOrientationHandler } } + @Override + public int getTaskMenuHeight(float taskInsetMargin, DeviceProfile deviceProfile, + float taskMenuX, float taskMenuY) { + return (int) (taskMenuX - taskInsetMargin); + } + @Override public void setTaskOptionsMenuLayoutOrientation(DeviceProfile deviceProfile, LinearLayout taskMenuLayout, int dividerSpacing, diff --git a/quickstep/src/com/android/quickstep/orientation/PortraitPagedViewHandler.java b/quickstep/src/com/android/quickstep/orientation/PortraitPagedViewHandler.java index 60e6a255cb..5cd97763d1 100644 --- a/quickstep/src/com/android/quickstep/orientation/PortraitPagedViewHandler.java +++ b/quickstep/src/com/android/quickstep/orientation/PortraitPagedViewHandler.java @@ -209,6 +209,12 @@ public class PortraitPagedViewHandler extends DefaultPagedViewHandler implements : thumbnailView.getMeasuredWidth()) - (2 * padding); } + @Override + public int getTaskMenuHeight(float taskInsetMargin, DeviceProfile deviceProfile, + float taskMenuX, float taskMenuY) { + return (int) (deviceProfile.availableHeightPx - taskInsetMargin - taskMenuY); + } + @Override public void setTaskOptionsMenuLayoutOrientation(DeviceProfile deviceProfile, LinearLayout taskMenuLayout, int dividerSpacing, diff --git a/quickstep/src/com/android/quickstep/orientation/RecentsPagedOrientationHandler.java b/quickstep/src/com/android/quickstep/orientation/RecentsPagedOrientationHandler.java index 01c1225c40..4b65d53172 100644 --- a/quickstep/src/com/android/quickstep/orientation/RecentsPagedOrientationHandler.java +++ b/quickstep/src/com/android/quickstep/orientation/RecentsPagedOrientationHandler.java @@ -176,6 +176,9 @@ public interface RecentsPagedOrientationHandler extends PagedOrientationHandler View taskMenuView, float taskInsetMargin, View taskViewIcon); int getTaskMenuWidth(View thumbnailView, DeviceProfile deviceProfile, @StagePosition int stagePosition); + + int getTaskMenuHeight(float taskInsetMargin, DeviceProfile deviceProfile, float taskMenuX, + float taskMenuY); /** * Sets linear layout orientation for {@link com.android.launcher3.popup.SystemShortcut} items * inside task menu view. diff --git a/quickstep/src/com/android/quickstep/orientation/SeascapePagedViewHandler.java b/quickstep/src/com/android/quickstep/orientation/SeascapePagedViewHandler.java index a964639e41..89c678c114 100644 --- a/quickstep/src/com/android/quickstep/orientation/SeascapePagedViewHandler.java +++ b/quickstep/src/com/android/quickstep/orientation/SeascapePagedViewHandler.java @@ -113,6 +113,12 @@ public class SeascapePagedViewHandler extends LandscapePagedViewHandler { } } + @Override + public int getTaskMenuHeight(float taskInsetMargin, DeviceProfile deviceProfile, + float taskMenuX, float taskMenuY) { + return (int) (deviceProfile.availableWidthPx - taskInsetMargin - taskMenuX); + } + @Override public void setSplitTaskSwipeRect(DeviceProfile dp, Rect outRect, SplitBounds splitInfo, int desiredStagePosition) { diff --git a/quickstep/src/com/android/quickstep/views/TaskMenuView.java b/quickstep/src/com/android/quickstep/views/TaskMenuView.java index 137455e23a..c9aad1a4d6 100644 --- a/quickstep/src/com/android/quickstep/views/TaskMenuView.java +++ b/quickstep/src/com/android/quickstep/views/TaskMenuView.java @@ -140,11 +140,9 @@ public class TaskMenuView extends AbstractFloatingView { @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - if (!enableOverviewIconMenu()) { - int maxMenuHeight = calculateMaxHeight(); - if (MeasureSpec.getSize(heightMeasureSpec) > maxMenuHeight) { - heightMeasureSpec = MeasureSpec.makeMeasureSpec(maxMenuHeight, MeasureSpec.AT_MOST); - } + int maxMenuHeight = calculateMaxHeight(); + if (MeasureSpec.getSize(heightMeasureSpec) > maxMenuHeight) { + heightMeasureSpec = MeasureSpec.makeMeasureSpec(maxMenuHeight, MeasureSpec.AT_MOST); } super.onMeasure(widthMeasureSpec, heightMeasureSpec); } @@ -416,10 +414,9 @@ public class TaskMenuView extends AbstractFloatingView { * with a margin on the top and bottom. */ private int calculateMaxHeight() { - float taskBottom = mTaskView.getHeight() + mTaskView.getPersistentTranslationY(); float taskInsetMargin = getResources().getDimension(R.dimen.task_card_margin); - - return (int) (taskBottom - taskInsetMargin - getTranslationY()); + return mTaskView.getPagedOrientationHandler().getTaskMenuHeight(taskInsetMargin, + mActivity.getDeviceProfile(), getTranslationX(), getTranslationY()); } private void setOnClosingStartCallback(Runnable onClosingStartCallback) {