Skip letterboxing if the activity below is embedded
Embedded activities are resize-able and won't be letterboxed Bug: 270681405 Test: SizeCompatTests Change-Id: Ic7b1c4b40960fd04de9efbf4f6d7abee45c93025
This commit is contained in:
@@ -1395,9 +1395,9 @@ final class LetterboxUiController {
|
||||
FIRST_OPAQUE_NOT_FINISHING_ACTIVITY_PREDICATE /* callback */,
|
||||
mActivityRecord /* boundary */, false /* includeBoundary */,
|
||||
true /* traverseTopToBottom */);
|
||||
if (firstOpaqueActivityBeneath == null) {
|
||||
if (firstOpaqueActivityBeneath == null || firstOpaqueActivityBeneath.isEmbedded()) {
|
||||
// We skip letterboxing if the translucent activity doesn't have any opaque
|
||||
// activities beneath
|
||||
// activities beneath or the activity below is embedded which never has letterbox.
|
||||
return;
|
||||
}
|
||||
inheritConfiguration(firstOpaqueActivityBeneath);
|
||||
|
||||
@@ -384,6 +384,24 @@ public class SizeCompatTests extends WindowTestsBase {
|
||||
assertEquals(opaqueBounds, translucent2RequestedBounds);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNotApplyStrategyToTranslucentActivitiesOverEmbeddedActivities() {
|
||||
mWm.mLetterboxConfiguration.setTranslucentLetterboxingOverrideEnabled(true);
|
||||
setUpDisplaySizeWithApp(2000, 1000);
|
||||
mActivity.info.screenOrientation = SCREEN_ORIENTATION_PORTRAIT;
|
||||
mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
|
||||
// Mock the activity as embedded without additional TaskFragment layer in the task for
|
||||
// simplicity.
|
||||
doReturn(true).when(mActivity).isEmbedded();
|
||||
// Translucent Activity
|
||||
final ActivityRecord translucentActivity = new ActivityBuilder(mAtm).build();
|
||||
doReturn(false).when(translucentActivity).matchParentBounds();
|
||||
doReturn(false).when(translucentActivity).fillsParent();
|
||||
mTask.addChild(translucentActivity);
|
||||
// Check the strategy has not being applied
|
||||
assertFalse(translucentActivity.mLetterboxUiController.hasInheritedLetterboxBehavior());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTranslucentActivitiesDontGoInSizeCompactMode() {
|
||||
mWm.mLetterboxConfiguration.setTranslucentLetterboxingOverrideEnabled(true);
|
||||
|
||||
Reference in New Issue
Block a user