Merge "Fix translucent in smart linking" into tm-qpr-dev am: 5e30c56337 am: 5fbfb74c0f am: 50e3d920d0
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22239470 Change-Id: I56630cade738707ba7da046ca2526c8792f0697c Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -126,7 +126,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;
|
||||
|
||||
|
||||
@@ -177,6 +177,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);
|
||||
@@ -201,6 +239,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);
|
||||
@@ -276,6 +315,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);
|
||||
@@ -354,6 +394,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())
|
||||
@@ -410,6 +451,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())
|
||||
@@ -503,6 +545,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)
|
||||
@@ -535,6 +578,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