Merge "Only check letterbox position in book mode" into tm-qpr-dev am: edc5058b91
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22251403 Change-Id: I3cca4c737e4c8b2d6428d1bba451a283012e1bb4 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -53,6 +53,9 @@ final class LetterboxConfiguration {
|
|||||||
*/
|
*/
|
||||||
static final float MIN_FIXED_ORIENTATION_LETTERBOX_ASPECT_RATIO = 1.0f;
|
static final float MIN_FIXED_ORIENTATION_LETTERBOX_ASPECT_RATIO = 1.0f;
|
||||||
|
|
||||||
|
/** Letterboxed app window position multiplier indicating center position. */
|
||||||
|
static final float LETTERBOX_POSITION_MULTIPLIER_CENTER = 0.5f;
|
||||||
|
|
||||||
/** Enum for Letterbox background type. */
|
/** Enum for Letterbox background type. */
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
@IntDef({LETTERBOX_BACKGROUND_SOLID_COLOR, LETTERBOX_BACKGROUND_APP_COLOR_BACKGROUND,
|
@IntDef({LETTERBOX_BACKGROUND_SOLID_COLOR, LETTERBOX_BACKGROUND_APP_COLOR_BACKGROUND,
|
||||||
|
|||||||
@@ -77,6 +77,7 @@ import static com.android.server.wm.LetterboxConfiguration.LETTERBOX_BACKGROUND_
|
|||||||
import static com.android.server.wm.LetterboxConfiguration.LETTERBOX_HORIZONTAL_REACHABILITY_POSITION_CENTER;
|
import static com.android.server.wm.LetterboxConfiguration.LETTERBOX_HORIZONTAL_REACHABILITY_POSITION_CENTER;
|
||||||
import static com.android.server.wm.LetterboxConfiguration.LETTERBOX_HORIZONTAL_REACHABILITY_POSITION_LEFT;
|
import static com.android.server.wm.LetterboxConfiguration.LETTERBOX_HORIZONTAL_REACHABILITY_POSITION_LEFT;
|
||||||
import static com.android.server.wm.LetterboxConfiguration.LETTERBOX_HORIZONTAL_REACHABILITY_POSITION_RIGHT;
|
import static com.android.server.wm.LetterboxConfiguration.LETTERBOX_HORIZONTAL_REACHABILITY_POSITION_RIGHT;
|
||||||
|
import static com.android.server.wm.LetterboxConfiguration.LETTERBOX_POSITION_MULTIPLIER_CENTER;
|
||||||
import static com.android.server.wm.LetterboxConfiguration.LETTERBOX_VERTICAL_REACHABILITY_POSITION_BOTTOM;
|
import static com.android.server.wm.LetterboxConfiguration.LETTERBOX_VERTICAL_REACHABILITY_POSITION_BOTTOM;
|
||||||
import static com.android.server.wm.LetterboxConfiguration.LETTERBOX_VERTICAL_REACHABILITY_POSITION_CENTER;
|
import static com.android.server.wm.LetterboxConfiguration.LETTERBOX_VERTICAL_REACHABILITY_POSITION_CENTER;
|
||||||
import static com.android.server.wm.LetterboxConfiguration.LETTERBOX_VERTICAL_REACHABILITY_POSITION_TOP;
|
import static com.android.server.wm.LetterboxConfiguration.LETTERBOX_VERTICAL_REACHABILITY_POSITION_TOP;
|
||||||
@@ -932,11 +933,18 @@ final class LetterboxUiController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean shouldUseSplitScreenAspectRatio(@NonNull Configuration parentConfiguration) {
|
private boolean shouldUseSplitScreenAspectRatio(@NonNull Configuration parentConfiguration) {
|
||||||
return isDisplayFullScreenAndSeparatingHinge()
|
final boolean isBookMode = isDisplayFullScreenAndInPosture(
|
||||||
// Don't resize to split screen size when half folded and centered
|
DeviceStateController.DeviceState.HALF_FOLDED,
|
||||||
&& getHorizontalPositionMultiplier(parentConfiguration) != 0.5f
|
/* isTabletop */ false);
|
||||||
|| isCameraCompatSplitScreenAspectRatioAllowed()
|
final boolean isNotCenteredHorizontally = getHorizontalPositionMultiplier(
|
||||||
&& isCameraCompatTreatmentActive();
|
parentConfiguration) != LETTERBOX_POSITION_MULTIPLIER_CENTER;
|
||||||
|
final boolean isTabletopMode = isDisplayFullScreenAndInPosture(
|
||||||
|
DeviceStateController.DeviceState.HALF_FOLDED,
|
||||||
|
/* isTabletop */ true);
|
||||||
|
// Don't resize to split screen size when in book mode if letterbox position is centered
|
||||||
|
return ((isBookMode && isNotCenteredHorizontally) || isTabletopMode)
|
||||||
|
|| isCameraCompatSplitScreenAspectRatioAllowed()
|
||||||
|
&& isCameraCompatTreatmentActive();
|
||||||
}
|
}
|
||||||
|
|
||||||
private float getDefaultMinAspectRatioForUnresizableApps() {
|
private float getDefaultMinAspectRatioForUnresizableApps() {
|
||||||
@@ -996,7 +1004,7 @@ final class LetterboxUiController {
|
|||||||
|
|
||||||
@LetterboxConfiguration.LetterboxHorizontalReachabilityPosition
|
@LetterboxConfiguration.LetterboxHorizontalReachabilityPosition
|
||||||
int getLetterboxPositionForHorizontalReachability() {
|
int getLetterboxPositionForHorizontalReachability() {
|
||||||
final boolean isInFullScreenBookMode = isDisplayFullScreenAndSeparatingHinge();
|
final boolean isInFullScreenBookMode = isFullScreenAndBookModeEnabled();
|
||||||
return mLetterboxConfiguration.getLetterboxPositionForHorizontalReachability(
|
return mLetterboxConfiguration.getLetterboxPositionForHorizontalReachability(
|
||||||
isInFullScreenBookMode);
|
isInFullScreenBookMode);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ import static com.android.server.wm.ActivityRecord.State.RESTARTING_PROCESS;
|
|||||||
import static com.android.server.wm.ActivityRecord.State.RESUMED;
|
import static com.android.server.wm.ActivityRecord.State.RESUMED;
|
||||||
import static com.android.server.wm.ActivityRecord.State.STOPPED;
|
import static com.android.server.wm.ActivityRecord.State.STOPPED;
|
||||||
import static com.android.server.wm.DisplayContent.IME_TARGET_LAYERING;
|
import static com.android.server.wm.DisplayContent.IME_TARGET_LAYERING;
|
||||||
|
import static com.android.server.wm.LetterboxConfiguration.LETTERBOX_POSITION_MULTIPLIER_CENTER;
|
||||||
import static com.android.server.wm.WindowContainer.POSITION_TOP;
|
import static com.android.server.wm.WindowContainer.POSITION_TOP;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
@@ -3770,6 +3771,27 @@ public class SizeCompatTests extends WindowTestsBase {
|
|||||||
assertEquals(letterboxNoFold, mActivity.getBounds());
|
assertEquals(letterboxNoFold, mActivity.getBounds());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGetFixedOrientationLetterboxAspectRatio_tabletop_centered() {
|
||||||
|
// Set up a display in portrait with a fixed-orientation LANDSCAPE app
|
||||||
|
setUpDisplaySizeWithApp(1400, 2800);
|
||||||
|
mWm.mLetterboxConfiguration.setLetterboxHorizontalPositionMultiplier(
|
||||||
|
LETTERBOX_POSITION_MULTIPLIER_CENTER);
|
||||||
|
mActivity.mWmService.mLetterboxConfiguration.setLetterboxVerticalPositionMultiplier(
|
||||||
|
1.0f /*letterboxVerticalPositionMultiplier*/);
|
||||||
|
prepareUnresizable(mActivity, SCREEN_ORIENTATION_LANDSCAPE);
|
||||||
|
|
||||||
|
setFoldablePosture(true /* isHalfFolded */, true /* isTabletop */);
|
||||||
|
|
||||||
|
Configuration parentConfig = mActivity.getParent().getConfiguration();
|
||||||
|
|
||||||
|
float actual = mActivity.mLetterboxUiController
|
||||||
|
.getFixedOrientationLetterboxAspectRatio(parentConfig);
|
||||||
|
float expected = mActivity.mLetterboxUiController.getSplitScreenAspectRatio();
|
||||||
|
|
||||||
|
assertEquals(expected, actual, 0.01);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateResolvedBoundsHorizontalPosition_bookModeEnabled() {
|
public void testUpdateResolvedBoundsHorizontalPosition_bookModeEnabled() {
|
||||||
// Set up a display in landscape with a fixed-orientation PORTRAIT app
|
// Set up a display in landscape with a fixed-orientation PORTRAIT app
|
||||||
|
|||||||
Reference in New Issue
Block a user