Merge "Show Letterbox background without rounded corners for transparent activities" into sc-v2-dev am: 44cd0e4664

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16599307

Change-Id: I9dccf14cdbfe595497fd1519482898b3830d8f4e
This commit is contained in:
Tom Natan
2022-01-13 10:30:07 +00:00
committed by Automerger Merge Worker
2 changed files with 9 additions and 4 deletions

View File

@@ -174,7 +174,7 @@ final class LetterboxConfiguration {
* Overrides corners raidus for activities presented in the letterbox mode. If given value < 0,
* both it and a value of {@link
* com.android.internal.R.integer.config_letterboxActivityCornersRadius} will be ignored and
* and corners of the activity won't be rounded.
* corners of the activity won't be rounded.
*/
void setLetterboxActivityCornersRadius(int cornersRadius) {
mLetterboxActivityCornersRadius = cornersRadius;

View File

@@ -150,7 +150,7 @@ final class LetterboxUiController {
if (mLetterbox == null) {
mLetterbox = new Letterbox(() -> mActivityRecord.makeChildSurface(null),
mActivityRecord.mWmService.mTransactionFactory,
mLetterboxConfiguration::isLetterboxActivityCornersRounded,
this::shouldLetterboxHaveRoundedCorners,
this::getLetterboxBackgroundColor,
this::hasWallpaperBackgroudForLetterbox,
this::getLetterboxWallpaperBlurRadius,
@@ -175,6 +175,13 @@ final class LetterboxUiController {
}
}
private boolean shouldLetterboxHaveRoundedCorners() {
// TODO(b/214030873): remove once background is drawn for transparent activities
// Letterbox shouldn't have rounded corners if the activity is transparent
return mLetterboxConfiguration.isLetterboxActivityCornersRounded()
&& mActivityRecord.fillsParent();
}
float getHorizontalPositionMultiplier(Configuration parentConfiguration) {
// Don't check resolved configuration because it may not be updated yet during
// configuration change.
@@ -257,8 +264,6 @@ final class LetterboxUiController {
@VisibleForTesting
boolean shouldShowLetterboxUi(WindowState mainWindow) {
return isSurfaceReadyAndVisible(mainWindow) && mainWindow.areAppWindowBoundsLetterboxed()
// Check that an activity isn't transparent.
&& mActivityRecord.fillsParent()
// Check for FLAG_SHOW_WALLPAPER explicitly instead of using
// WindowContainer#showWallpaper because the later will return true when this
// activity is using blurred wallpaper for letterbox backgroud.