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

This commit is contained in:
Tom Natan
2022-01-13 10:14:47 +00:00
committed by Android (Google) Code Review
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, * Overrides corners raidus for activities presented in the letterbox mode. If given value < 0,
* both it and a value of {@link * both it and a value of {@link
* com.android.internal.R.integer.config_letterboxActivityCornersRadius} will be ignored and * 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) { void setLetterboxActivityCornersRadius(int cornersRadius) {
mLetterboxActivityCornersRadius = cornersRadius; mLetterboxActivityCornersRadius = cornersRadius;

View File

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