diff --git a/go/quickstep/res/values-sw480dp/dimens.xml b/go/quickstep/res/values-sw480dp/dimens.xml
index be27d4bbd9..b48dafbafb 100644
--- a/go/quickstep/res/values-sw480dp/dimens.xml
+++ b/go/quickstep/res/values-sw480dp/dimens.xml
@@ -25,6 +25,6 @@
48dp
28dp
- 28dp
+ 28dp
140dp
\ No newline at end of file
diff --git a/go/quickstep/res/values/dimens.xml b/go/quickstep/res/values/dimens.xml
index 60e997a84e..91040f205f 100644
--- a/go/quickstep/res/values/dimens.xml
+++ b/go/quickstep/res/values/dimens.xml
@@ -25,6 +25,6 @@
36dp
20dp
- 20dp
+ 20dp
106dp
\ No newline at end of file
diff --git a/go/quickstep/src/com/android/quickstep/views/IconRecentsView.java b/go/quickstep/src/com/android/quickstep/views/IconRecentsView.java
index ce22489316..f951304f59 100644
--- a/go/quickstep/src/com/android/quickstep/views/IconRecentsView.java
+++ b/go/quickstep/src/com/android/quickstep/views/IconRecentsView.java
@@ -16,7 +16,6 @@
package com.android.quickstep.views;
import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
-import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
import static androidx.recyclerview.widget.LinearLayoutManager.VERTICAL;
@@ -32,7 +31,6 @@ import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.animation.ValueAnimator;
import android.content.Context;
-import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Rect;
import android.util.ArraySet;
@@ -125,6 +123,7 @@ public final class IconRecentsView extends FrameLayout implements Insettable {
private boolean mTransitionedFromApp;
private AnimatorSet mLayoutAnimation;
private final ArraySet mLayingOutViews = new ArraySet<>();
+ private Rect mInsets;
private final RecentsModel.TaskThumbnailChangeListener listener = (taskId, thumbnailData) -> {
ArrayList itemViews = getTaskViews();
for (int i = 0, size = itemViews.size(); i < size; i++) {
@@ -194,13 +193,25 @@ public final class IconRecentsView extends FrameLayout implements Insettable {
case ITEM_TYPE_CLEAR_ALL:
outRect.top = (int) res.getDimension(
R.dimen.clear_all_item_view_top_margin);
- if (res.getConfiguration().orientation == ORIENTATION_LANDSCAPE) {
- outRect.bottom = (int) res.getDimension(
- R.dimen.clear_all_item_view_landscape_bottom_margin);
+ int desiredBottomMargin = (int) res.getDimension(
+ R.dimen.clear_all_item_view_bottom_margin);
+ // Only add bottom margin if insets aren't enough.
+ if (mInsets.bottom < desiredBottomMargin) {
+ outRect.bottom = desiredBottomMargin - mInsets.bottom;
}
break;
case ITEM_TYPE_TASK:
- outRect.top = (int) res.getDimension(R.dimen.task_item_top_margin);
+ int desiredTopMargin = (int) res.getDimension(
+ R.dimen.task_item_top_margin);
+ if (mTaskRecyclerView.getChildAdapterPosition(view) ==
+ state.getItemCount() - 1) {
+ // Only add top margin to top task view if insets aren't enough.
+ if (mInsets.top < desiredTopMargin) {
+ outRect.top = desiredTopMargin - mInsets.bottom;
+ }
+ return;
+ }
+ outRect.top = desiredTopMargin;
break;
default:
}
@@ -233,11 +244,6 @@ public final class IconRecentsView extends FrameLayout implements Insettable {
}
}
- @Override
- protected void onConfigurationChanged(Configuration newConfig) {
- mTaskRecyclerView.invalidateItemDecorations();
- }
-
/**
* Set activity helper for the view to callback to.
*
@@ -522,6 +528,8 @@ public final class IconRecentsView extends FrameLayout implements Insettable {
@Override
public void setInsets(Rect insets) {
+ mInsets = insets;
mTaskRecyclerView.setPadding(insets.left, insets.top, insets.right, insets.bottom);
+ mTaskRecyclerView.invalidateItemDecorations();
}
}