Loading core/java/android/app/AppCompatTaskInfo.java +4 −3 Original line number Diff line number Diff line Loading @@ -167,10 +167,11 @@ public class AppCompatTaskInfo implements Parcelable { } /** * @return {@code true} if top activity is pillarboxed. * @return {@code true} if the top activity bounds are letterboxed with width <= height. */ public boolean isTopActivityPillarboxed() { return topActivityLetterboxWidth < topActivityLetterboxHeight; public boolean isTopActivityPillarboxShaped() { return isTopActivityLetterboxed() && topActivityLetterboxWidth <= topActivityLetterboxHeight; } /** Loading libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIController.java +1 −1 Original line number Diff line number Diff line Loading @@ -286,7 +286,7 @@ public class CompatUIController implements OnDisplaysChangedListener, // we need to ignore all the incoming TaskInfo until the education // completes. If we come from a double tap we follow the normal flow. final boolean topActivityPillarboxed = taskInfo.appCompatTaskInfo.isTopActivityPillarboxed(); taskInfo.appCompatTaskInfo.isTopActivityPillarboxShaped(); final boolean isFirstTimeHorizontalReachabilityEdu = topActivityPillarboxed && !mCompatUIConfiguration.hasSeenHorizontalReachabilityEducation(taskInfo); final boolean isFirstTimeVerticalReachabilityEdu = !topActivityPillarboxed Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeUtils.kt +1 −1 Original line number Diff line number Diff line Loading @@ -275,7 +275,7 @@ private fun TaskInfo.hasPortraitTopActivity(): Boolean { } // Then check if the activity is portrait when letterboxed appCompatTaskInfo.isTopActivityLetterboxed -> appCompatTaskInfo.isTopActivityPillarboxed appCompatTaskInfo.isTopActivityLetterboxed -> appCompatTaskInfo.isTopActivityPillarboxShaped // Then check if the activity is portrait appBounds != null -> appBounds.height() > appBounds.width() Loading services/core/java/com/android/server/wm/AppCompatUtils.java +31 −26 Original line number Diff line number Diff line Loading @@ -164,6 +164,9 @@ final class AppCompatUtils { appCompatTaskInfo.setIsFromLetterboxDoubleTap(reachabilityOverrides.isFromDoubleTap()); final boolean isTopActivityLetterboxed = top.areBoundsLetterboxed(); appCompatTaskInfo.setTopActivityLetterboxed(isTopActivityLetterboxed); if (isTopActivityLetterboxed) { final Rect bounds = top.getBounds(); final Rect appBounds = getAppBounds(top); appCompatTaskInfo.topActivityLetterboxWidth = bounds.width(); Loading @@ -176,11 +179,12 @@ final class AppCompatUtils { appCompatTaskInfo.setLetterboxDoubleTapEnabled(reachabilityOverrides .isLetterboxDoubleTapEducationEnabled()); if (appCompatTaskInfo.isLetterboxDoubleTapEnabled()) { if (appCompatTaskInfo.isTopActivityPillarboxed()) { if (appCompatTaskInfo.isTopActivityPillarboxShaped()) { if (reachabilityOverrides.allowHorizontalReachabilityForThinLetterbox()) { // Pillarboxed. appCompatTaskInfo.topActivityLetterboxHorizontalPosition = reachabilityOverrides.getLetterboxPositionForHorizontalReachability(); reachabilityOverrides .getLetterboxPositionForHorizontalReachability(); } else { appCompatTaskInfo.setLetterboxDoubleTapEnabled(false); } Loading @@ -194,11 +198,12 @@ final class AppCompatUtils { } } } } final boolean eligibleForAspectRatioButton = !info.isTopActivityTransparent && !appCompatTaskInfo.isTopActivityInSizeCompat() && aspectRatioOverrides.shouldEnableUserAspectRatioSettings(); appCompatTaskInfo.setEligibleForUserAspectRatioButton(eligibleForAspectRatioButton); appCompatTaskInfo.setTopActivityLetterboxed(top.areBoundsLetterboxed()); appCompatTaskInfo.cameraCompatTaskInfo.freeformCameraCompatMode = AppCompatCameraPolicy.getCameraCompatFreeformMode(top); appCompatTaskInfo.setHasMinAspectRatioOverride(top.mAppCompatController Loading Loading
core/java/android/app/AppCompatTaskInfo.java +4 −3 Original line number Diff line number Diff line Loading @@ -167,10 +167,11 @@ public class AppCompatTaskInfo implements Parcelable { } /** * @return {@code true} if top activity is pillarboxed. * @return {@code true} if the top activity bounds are letterboxed with width <= height. */ public boolean isTopActivityPillarboxed() { return topActivityLetterboxWidth < topActivityLetterboxHeight; public boolean isTopActivityPillarboxShaped() { return isTopActivityLetterboxed() && topActivityLetterboxWidth <= topActivityLetterboxHeight; } /** Loading
libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIController.java +1 −1 Original line number Diff line number Diff line Loading @@ -286,7 +286,7 @@ public class CompatUIController implements OnDisplaysChangedListener, // we need to ignore all the incoming TaskInfo until the education // completes. If we come from a double tap we follow the normal flow. final boolean topActivityPillarboxed = taskInfo.appCompatTaskInfo.isTopActivityPillarboxed(); taskInfo.appCompatTaskInfo.isTopActivityPillarboxShaped(); final boolean isFirstTimeHorizontalReachabilityEdu = topActivityPillarboxed && !mCompatUIConfiguration.hasSeenHorizontalReachabilityEducation(taskInfo); final boolean isFirstTimeVerticalReachabilityEdu = !topActivityPillarboxed Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeUtils.kt +1 −1 Original line number Diff line number Diff line Loading @@ -275,7 +275,7 @@ private fun TaskInfo.hasPortraitTopActivity(): Boolean { } // Then check if the activity is portrait when letterboxed appCompatTaskInfo.isTopActivityLetterboxed -> appCompatTaskInfo.isTopActivityPillarboxed appCompatTaskInfo.isTopActivityLetterboxed -> appCompatTaskInfo.isTopActivityPillarboxShaped // Then check if the activity is portrait appBounds != null -> appBounds.height() > appBounds.width() Loading
services/core/java/com/android/server/wm/AppCompatUtils.java +31 −26 Original line number Diff line number Diff line Loading @@ -164,6 +164,9 @@ final class AppCompatUtils { appCompatTaskInfo.setIsFromLetterboxDoubleTap(reachabilityOverrides.isFromDoubleTap()); final boolean isTopActivityLetterboxed = top.areBoundsLetterboxed(); appCompatTaskInfo.setTopActivityLetterboxed(isTopActivityLetterboxed); if (isTopActivityLetterboxed) { final Rect bounds = top.getBounds(); final Rect appBounds = getAppBounds(top); appCompatTaskInfo.topActivityLetterboxWidth = bounds.width(); Loading @@ -176,11 +179,12 @@ final class AppCompatUtils { appCompatTaskInfo.setLetterboxDoubleTapEnabled(reachabilityOverrides .isLetterboxDoubleTapEducationEnabled()); if (appCompatTaskInfo.isLetterboxDoubleTapEnabled()) { if (appCompatTaskInfo.isTopActivityPillarboxed()) { if (appCompatTaskInfo.isTopActivityPillarboxShaped()) { if (reachabilityOverrides.allowHorizontalReachabilityForThinLetterbox()) { // Pillarboxed. appCompatTaskInfo.topActivityLetterboxHorizontalPosition = reachabilityOverrides.getLetterboxPositionForHorizontalReachability(); reachabilityOverrides .getLetterboxPositionForHorizontalReachability(); } else { appCompatTaskInfo.setLetterboxDoubleTapEnabled(false); } Loading @@ -194,11 +198,12 @@ final class AppCompatUtils { } } } } final boolean eligibleForAspectRatioButton = !info.isTopActivityTransparent && !appCompatTaskInfo.isTopActivityInSizeCompat() && aspectRatioOverrides.shouldEnableUserAspectRatioSettings(); appCompatTaskInfo.setEligibleForUserAspectRatioButton(eligibleForAspectRatioButton); appCompatTaskInfo.setTopActivityLetterboxed(top.areBoundsLetterboxed()); appCompatTaskInfo.cameraCompatTaskInfo.freeformCameraCompatMode = AppCompatCameraPolicy.getCameraCompatFreeformMode(top); appCompatTaskInfo.setHasMinAspectRatioOverride(top.mAppCompatController Loading