diff --git a/quickstep/src/com/android/quickstep/views/DigitalWellBeingToast.java b/quickstep/src/com/android/quickstep/views/DigitalWellBeingToast.java index 76552a3d50..96504afcd4 100644 --- a/quickstep/src/com/android/quickstep/views/DigitalWellBeingToast.java +++ b/quickstep/src/com/android/quickstep/views/DigitalWellBeingToast.java @@ -385,4 +385,12 @@ public final class DigitalWellBeingToast { mBanner.setLayerType(View.LAYER_TYPE_HARDWARE, layerPaint); mBanner.setLayerPaint(layerPaint); } + + void setBannerVisibility(int visibility) { + if (mBanner == null) { + return; + } + + mBanner.setVisibility(visibility); + } } diff --git a/quickstep/src/com/android/quickstep/views/GroupedTaskView.java b/quickstep/src/com/android/quickstep/views/GroupedTaskView.java index 44ea0a0b5e..5bc7f18d0c 100644 --- a/quickstep/src/com/android/quickstep/views/GroupedTaskView.java +++ b/quickstep/src/com/android/quickstep/views/GroupedTaskView.java @@ -230,11 +230,12 @@ public class GroupedTaskView extends TaskView { } @Override - protected int getChildTaskIndexAtPosition(PointF position) { - if (isCoordInView(mIconView2, position) || isCoordInView(mSnapshotView2, position)) { + protected int getLastSelectedChildTaskIndex() { + if (isCoordInView(mIconView2, mLastTouchDownPosition) + || isCoordInView(mSnapshotView2, mLastTouchDownPosition)) { return 1; } - return super.getChildTaskIndexAtPosition(position); + return super.getLastSelectedChildTaskIndex(); } private boolean isCoordInView(View v, PointF position) { @@ -336,9 +337,26 @@ public class GroupedTaskView extends TaskView { mSnapshotView2.setSplashAlpha(mTaskThumbnailSplashAlpha); } + /** + * Sets visibility for thumbnails and associated elements (DWB banners). + * IconView is unaffected. + * + * When setting INVISIBLE, sets the visibility for the last selected child task. + * When setting VISIBLE (as a reset), sets the visibility for both tasks. + */ @Override void setThumbnailVisibility(int visibility) { - super.setThumbnailVisibility(visibility); - mSnapshotView2.setVisibility(visibility); + if (visibility == VISIBLE) { + mSnapshotView.setVisibility(visibility); + mDigitalWellBeingToast.setBannerVisibility(visibility); + mSnapshotView2.setVisibility(visibility); + mDigitalWellBeingToast2.setBannerVisibility(visibility); + } else if (getLastSelectedChildTaskIndex() == 0) { + mSnapshotView.setVisibility(visibility); + mDigitalWellBeingToast.setBannerVisibility(visibility); + } else { + mSnapshotView2.setVisibility(visibility); + mDigitalWellBeingToast2.setBannerVisibility(visibility); + } } } diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java index 9b1a92a86f..4366b4b3af 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/src/com/android/quickstep/views/RecentsView.java @@ -655,7 +655,7 @@ public abstract class RecentsView RecentsView.this.resetFromSplitSelectionState()); InteractionJankMonitorWrapper.end(InteractionJankMonitorWrapper.CUJ_SPLIT_SCREEN_ENTER); }); - if (containerTaskView.containsMultipleTasks()) { - // If we are launching from a child task, then only hide the thumbnail itself - mSecondSplitHiddenView = thumbnailView; - } else { - mSecondSplitHiddenView = containerTaskView; - } - mSecondSplitHiddenView.setVisibility(INVISIBLE); + + mSecondSplitHiddenView = containerTaskView; + mSecondSplitHiddenView.setThumbnailVisibility(INVISIBLE); + InteractionJankMonitorWrapper.begin(this, InteractionJankMonitorWrapper.CUJ_SPLIT_SCREEN_ENTER, "Second tile selected"); @@ -4238,13 +4235,14 @@ public abstract class RecentsView