Prevent setting launcher layer has opaque when there is content behind

- This can prevent the layered content behind to not be visible (and
  since launcher draws a cutout and the wallpaper isn't shown, may
  result in a black rect.  We only specialize for this case while
  Launcher is in Overview.
- Also don't need to defer updating drawsBelowRecents, this can result
  in the state not being reflected since it runs after the last update
  of the transform params

Bug: 205789573
Test: Swipe up from app and ensure behind layers are visible (also
      ensure this doesn't affect blur during the swipe or optimizations
      after you leave overview)
Change-Id: I07689b3d9b65708797576e5fbefe12fb1f544119
This commit is contained in:
Winson Chung
2021-11-23 05:20:56 +00:00
parent 550dc8dc69
commit 6526973952
4 changed files with 23 additions and 10 deletions

View File

@@ -63,6 +63,9 @@ public final class RecentsViewStateController extends
}
setAlphas(PropertySetter.NO_ANIM_PROPERTY_SETTER, new StateAnimationConfig(), state);
mRecentsView.setFullscreenProgress(state.getOverviewFullscreenProgress());
// In Overview, we may be layering app surfaces behind Launcher, so we need to notify
// DepthController to prevent optimizations which might occlude the layers behind
mLauncher.getDepthController().setHasContentBehindLauncher(state.overviewUi);
}
@Override
@@ -78,6 +81,10 @@ public final class RecentsViewStateController extends
builder.addListener(
AnimatorListeners.forSuccessCallback(mRecentsView::resetTaskVisuals));
}
// In Overview, we may be layering app surfaces behind Launcher, so we need to notify
// DepthController to prevent optimizations which might occlude the layers behind
builder.addListener(AnimatorListeners.forSuccessCallback(() ->
mLauncher.getDepthController().setHasContentBehindLauncher(toState.overviewUi)));
// Create or dismiss split screen select animations
LauncherState currentState = mLauncher.getStateManager().getState();