Merge "Fix translucent in smart linking" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
5e30c56337
@@ -125,7 +125,8 @@ import java.util.function.Predicate;
|
||||
final class LetterboxUiController {
|
||||
|
||||
private static final Predicate<ActivityRecord> FIRST_OPAQUE_NOT_FINISHING_ACTIVITY_PREDICATE =
|
||||
activityRecord -> activityRecord.fillsParent() && !activityRecord.isFinishing();
|
||||
activityRecord -> activityRecord.fillsParent() && !activityRecord.isFinishing()
|
||||
&& activityRecord.nowVisible;
|
||||
|
||||
private static final String TAG = TAG_WITH_CLASS_NAME ? "LetterboxUiController" : TAG_ATM;
|
||||
|
||||
|
||||
@@ -174,6 +174,44 @@ public class SizeCompatTests extends WindowTestsBase {
|
||||
setUpApp(builder.build());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testActivityInHistoryAndNotVisibleIsNotUsedAsOpaqueForTranslucentActivities() {
|
||||
mWm.mLetterboxConfiguration.setTranslucentLetterboxingOverrideEnabled(true);
|
||||
setUpDisplaySizeWithApp(2000, 1000);
|
||||
prepareUnresizable(mActivity, SCREEN_ORIENTATION_PORTRAIT);
|
||||
mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
|
||||
mActivity.nowVisible = false;
|
||||
// Translucent Activity
|
||||
final ActivityRecord translucentActivity = new ActivityBuilder(mAtm)
|
||||
.setLaunchedFromUid(mActivity.getUid())
|
||||
.setScreenOrientation(SCREEN_ORIENTATION_PORTRAIT)
|
||||
.build();
|
||||
doReturn(false).when(translucentActivity).fillsParent();
|
||||
|
||||
mTask.addChild(translucentActivity);
|
||||
|
||||
assertFalse(translucentActivity.mLetterboxUiController.hasInheritedLetterboxBehavior());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testActivityInHistoryAndVisibleIsUsedAsOpaqueForTranslucentActivities() {
|
||||
mWm.mLetterboxConfiguration.setTranslucentLetterboxingOverrideEnabled(true);
|
||||
setUpDisplaySizeWithApp(2000, 1000);
|
||||
prepareUnresizable(mActivity, SCREEN_ORIENTATION_PORTRAIT);
|
||||
mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
|
||||
mActivity.nowVisible = true;
|
||||
// Translucent Activity
|
||||
final ActivityRecord translucentActivity = new ActivityBuilder(mAtm)
|
||||
.setLaunchedFromUid(mActivity.getUid())
|
||||
.setScreenOrientation(SCREEN_ORIENTATION_PORTRAIT)
|
||||
.build();
|
||||
doReturn(false).when(translucentActivity).fillsParent();
|
||||
|
||||
mTask.addChild(translucentActivity);
|
||||
|
||||
assertTrue(translucentActivity.mLetterboxUiController.hasInheritedLetterboxBehavior());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCleanLetterboxConfigListenerWhenTranslucentIsDestroyed() {
|
||||
mWm.mLetterboxConfiguration.setTranslucentLetterboxingOverrideEnabled(true);
|
||||
@@ -198,6 +236,7 @@ public class SizeCompatTests extends WindowTestsBase {
|
||||
public void testHorizontalReachabilityEnabledForTranslucentActivities() {
|
||||
setUpDisplaySizeWithApp(2500, 1000);
|
||||
mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
|
||||
mActivity.nowVisible = true;
|
||||
final LetterboxConfiguration config = mWm.mLetterboxConfiguration;
|
||||
config.setTranslucentLetterboxingOverrideEnabled(true);
|
||||
config.setLetterboxHorizontalPositionMultiplier(0.5f);
|
||||
@@ -273,6 +312,7 @@ public class SizeCompatTests extends WindowTestsBase {
|
||||
public void testVerticalReachabilityEnabledForTranslucentActivities() {
|
||||
setUpDisplaySizeWithApp(1000, 2500);
|
||||
mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
|
||||
mActivity.nowVisible = true;
|
||||
final LetterboxConfiguration config = mWm.mLetterboxConfiguration;
|
||||
config.setTranslucentLetterboxingOverrideEnabled(true);
|
||||
config.setLetterboxVerticalPositionMultiplier(0.5f);
|
||||
@@ -351,6 +391,7 @@ public class SizeCompatTests extends WindowTestsBase {
|
||||
prepareUnresizable(mActivity, 1.5f /* maxAspect */, SCREEN_ORIENTATION_PORTRAIT);
|
||||
mActivity.info.setMinAspectRatio(1.2f);
|
||||
mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
|
||||
mActivity.nowVisible = true;
|
||||
// Translucent Activity
|
||||
final ActivityRecord translucentActivity = new ActivityBuilder(mAtm)
|
||||
.setLaunchedFromUid(mActivity.getUid())
|
||||
@@ -407,6 +448,7 @@ public class SizeCompatTests extends WindowTestsBase {
|
||||
prepareUnresizable(mActivity, 1.5f /* maxAspect */, SCREEN_ORIENTATION_PORTRAIT);
|
||||
mActivity.info.setMinAspectRatio(1.2f);
|
||||
mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
|
||||
mActivity.nowVisible = true;
|
||||
// Translucent Activity
|
||||
final ActivityRecord translucentActivity = new ActivityBuilder(mAtm)
|
||||
.setLaunchedFromUid(mActivity.getUid())
|
||||
@@ -482,6 +524,7 @@ public class SizeCompatTests extends WindowTestsBase {
|
||||
true /* ignoreOrientationRequest */);
|
||||
mActivity.mWmService.mLetterboxConfiguration.setLetterboxHorizontalPositionMultiplier(
|
||||
1.0f /*letterboxVerticalPositionMultiplier*/);
|
||||
mActivity.nowVisible = true;
|
||||
prepareUnresizable(mActivity, SCREEN_ORIENTATION_PORTRAIT);
|
||||
// We launch a transparent activity
|
||||
final ActivityRecord translucentActivity = new ActivityBuilder(mAtm)
|
||||
@@ -514,6 +557,7 @@ public class SizeCompatTests extends WindowTestsBase {
|
||||
mWm.mLetterboxConfiguration.setTranslucentLetterboxingOverrideEnabled(true);
|
||||
setUpDisplaySizeWithApp(2800, 1400);
|
||||
mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
|
||||
mActivity.nowVisible = true;
|
||||
prepareUnresizable(mActivity, -1f /* maxAspect */, SCREEN_ORIENTATION_PORTRAIT);
|
||||
// Rotate to put activity in size compat mode.
|
||||
rotateDisplay(mActivity.mDisplayContent, ROTATION_90);
|
||||
|
||||
Reference in New Issue
Block a user