Merge "Fix translucent in smart linking" into tm-qpr-dev am: 5e30c56337
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22239470 Change-Id: I4128d8f2587a24eabf249c8c646617ecc398ceb8 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -125,7 +125,8 @@ import java.util.function.Predicate;
|
|||||||
final class LetterboxUiController {
|
final class LetterboxUiController {
|
||||||
|
|
||||||
private static final Predicate<ActivityRecord> FIRST_OPAQUE_NOT_FINISHING_ACTIVITY_PREDICATE =
|
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;
|
private static final String TAG = TAG_WITH_CLASS_NAME ? "LetterboxUiController" : TAG_ATM;
|
||||||
|
|
||||||
|
|||||||
@@ -174,6 +174,44 @@ public class SizeCompatTests extends WindowTestsBase {
|
|||||||
setUpApp(builder.build());
|
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
|
@Test
|
||||||
public void testCleanLetterboxConfigListenerWhenTranslucentIsDestroyed() {
|
public void testCleanLetterboxConfigListenerWhenTranslucentIsDestroyed() {
|
||||||
mWm.mLetterboxConfiguration.setTranslucentLetterboxingOverrideEnabled(true);
|
mWm.mLetterboxConfiguration.setTranslucentLetterboxingOverrideEnabled(true);
|
||||||
@@ -198,6 +236,7 @@ public class SizeCompatTests extends WindowTestsBase {
|
|||||||
public void testHorizontalReachabilityEnabledForTranslucentActivities() {
|
public void testHorizontalReachabilityEnabledForTranslucentActivities() {
|
||||||
setUpDisplaySizeWithApp(2500, 1000);
|
setUpDisplaySizeWithApp(2500, 1000);
|
||||||
mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
|
mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
|
||||||
|
mActivity.nowVisible = true;
|
||||||
final LetterboxConfiguration config = mWm.mLetterboxConfiguration;
|
final LetterboxConfiguration config = mWm.mLetterboxConfiguration;
|
||||||
config.setTranslucentLetterboxingOverrideEnabled(true);
|
config.setTranslucentLetterboxingOverrideEnabled(true);
|
||||||
config.setLetterboxHorizontalPositionMultiplier(0.5f);
|
config.setLetterboxHorizontalPositionMultiplier(0.5f);
|
||||||
@@ -273,6 +312,7 @@ public class SizeCompatTests extends WindowTestsBase {
|
|||||||
public void testVerticalReachabilityEnabledForTranslucentActivities() {
|
public void testVerticalReachabilityEnabledForTranslucentActivities() {
|
||||||
setUpDisplaySizeWithApp(1000, 2500);
|
setUpDisplaySizeWithApp(1000, 2500);
|
||||||
mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
|
mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
|
||||||
|
mActivity.nowVisible = true;
|
||||||
final LetterboxConfiguration config = mWm.mLetterboxConfiguration;
|
final LetterboxConfiguration config = mWm.mLetterboxConfiguration;
|
||||||
config.setTranslucentLetterboxingOverrideEnabled(true);
|
config.setTranslucentLetterboxingOverrideEnabled(true);
|
||||||
config.setLetterboxVerticalPositionMultiplier(0.5f);
|
config.setLetterboxVerticalPositionMultiplier(0.5f);
|
||||||
@@ -351,6 +391,7 @@ public class SizeCompatTests extends WindowTestsBase {
|
|||||||
prepareUnresizable(mActivity, 1.5f /* maxAspect */, SCREEN_ORIENTATION_PORTRAIT);
|
prepareUnresizable(mActivity, 1.5f /* maxAspect */, SCREEN_ORIENTATION_PORTRAIT);
|
||||||
mActivity.info.setMinAspectRatio(1.2f);
|
mActivity.info.setMinAspectRatio(1.2f);
|
||||||
mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
|
mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
|
||||||
|
mActivity.nowVisible = true;
|
||||||
// Translucent Activity
|
// Translucent Activity
|
||||||
final ActivityRecord translucentActivity = new ActivityBuilder(mAtm)
|
final ActivityRecord translucentActivity = new ActivityBuilder(mAtm)
|
||||||
.setLaunchedFromUid(mActivity.getUid())
|
.setLaunchedFromUid(mActivity.getUid())
|
||||||
@@ -407,6 +448,7 @@ public class SizeCompatTests extends WindowTestsBase {
|
|||||||
prepareUnresizable(mActivity, 1.5f /* maxAspect */, SCREEN_ORIENTATION_PORTRAIT);
|
prepareUnresizable(mActivity, 1.5f /* maxAspect */, SCREEN_ORIENTATION_PORTRAIT);
|
||||||
mActivity.info.setMinAspectRatio(1.2f);
|
mActivity.info.setMinAspectRatio(1.2f);
|
||||||
mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
|
mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
|
||||||
|
mActivity.nowVisible = true;
|
||||||
// Translucent Activity
|
// Translucent Activity
|
||||||
final ActivityRecord translucentActivity = new ActivityBuilder(mAtm)
|
final ActivityRecord translucentActivity = new ActivityBuilder(mAtm)
|
||||||
.setLaunchedFromUid(mActivity.getUid())
|
.setLaunchedFromUid(mActivity.getUid())
|
||||||
@@ -482,6 +524,7 @@ public class SizeCompatTests extends WindowTestsBase {
|
|||||||
true /* ignoreOrientationRequest */);
|
true /* ignoreOrientationRequest */);
|
||||||
mActivity.mWmService.mLetterboxConfiguration.setLetterboxHorizontalPositionMultiplier(
|
mActivity.mWmService.mLetterboxConfiguration.setLetterboxHorizontalPositionMultiplier(
|
||||||
1.0f /*letterboxVerticalPositionMultiplier*/);
|
1.0f /*letterboxVerticalPositionMultiplier*/);
|
||||||
|
mActivity.nowVisible = true;
|
||||||
prepareUnresizable(mActivity, SCREEN_ORIENTATION_PORTRAIT);
|
prepareUnresizable(mActivity, SCREEN_ORIENTATION_PORTRAIT);
|
||||||
// We launch a transparent activity
|
// We launch a transparent activity
|
||||||
final ActivityRecord translucentActivity = new ActivityBuilder(mAtm)
|
final ActivityRecord translucentActivity = new ActivityBuilder(mAtm)
|
||||||
@@ -514,6 +557,7 @@ public class SizeCompatTests extends WindowTestsBase {
|
|||||||
mWm.mLetterboxConfiguration.setTranslucentLetterboxingOverrideEnabled(true);
|
mWm.mLetterboxConfiguration.setTranslucentLetterboxingOverrideEnabled(true);
|
||||||
setUpDisplaySizeWithApp(2800, 1400);
|
setUpDisplaySizeWithApp(2800, 1400);
|
||||||
mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
|
mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
|
||||||
|
mActivity.nowVisible = true;
|
||||||
prepareUnresizable(mActivity, -1f /* maxAspect */, SCREEN_ORIENTATION_PORTRAIT);
|
prepareUnresizable(mActivity, -1f /* maxAspect */, SCREEN_ORIENTATION_PORTRAIT);
|
||||||
// Rotate to put activity in size compat mode.
|
// Rotate to put activity in size compat mode.
|
||||||
rotateDisplay(mActivity.mDisplayContent, ROTATION_90);
|
rotateDisplay(mActivity.mDisplayContent, ROTATION_90);
|
||||||
|
|||||||
Reference in New Issue
Block a user