Merge "Clear mInheritedCompatDisplayInsets when clearing size compat mode" into tm-qpr-dev am: 451856db69
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22185523 Change-Id: I6454e4d3ddf89bfe89a7327f6fb7cdfcf8d1e0d3 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -8073,6 +8073,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
|||||||
mSizeCompatScale = 1f;
|
mSizeCompatScale = 1f;
|
||||||
mSizeCompatBounds = null;
|
mSizeCompatBounds = null;
|
||||||
mCompatDisplayInsets = null;
|
mCompatDisplayInsets = null;
|
||||||
|
mLetterboxUiController.clearInheritedCompatDisplayInsets();
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
|
|||||||
@@ -1494,6 +1494,10 @@ final class LetterboxUiController {
|
|||||||
return mInheritedCompatDisplayInsets;
|
return mInheritedCompatDisplayInsets;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void clearInheritedCompatDisplayInsets() {
|
||||||
|
mInheritedCompatDisplayInsets = null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* In case of translucent activities, it consumes the {@link ActivityRecord} of the first opaque
|
* In case of translucent activities, it consumes the {@link ActivityRecord} of the first opaque
|
||||||
* activity beneath using the given consumer and returns {@code true}.
|
* activity beneath using the given consumer and returns {@code true}.
|
||||||
|
|||||||
@@ -64,6 +64,8 @@ import static com.google.common.truth.Truth.assertThat;
|
|||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertNotEquals;
|
import static org.junit.Assert.assertNotEquals;
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
import static org.junit.Assert.assertNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.anyBoolean;
|
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||||
@@ -485,6 +487,33 @@ public class SizeCompatTests extends WindowTestsBase {
|
|||||||
assertEquals(translucentActivity.getBounds(), mActivity.getBounds());
|
assertEquals(translucentActivity.getBounds(), mActivity.getBounds());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testTranslucentActivity_clearSizeCompatMode_inheritedCompatDisplayInsetsCleared() {
|
||||||
|
mWm.mLetterboxConfiguration.setTranslucentLetterboxingOverrideEnabled(true);
|
||||||
|
setUpDisplaySizeWithApp(2800, 1400);
|
||||||
|
mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
|
||||||
|
prepareUnresizable(mActivity, -1f /* maxAspect */, SCREEN_ORIENTATION_PORTRAIT);
|
||||||
|
// Rotate to put activity in size compat mode.
|
||||||
|
rotateDisplay(mActivity.mDisplayContent, ROTATION_90);
|
||||||
|
assertTrue(mActivity.inSizeCompatMode());
|
||||||
|
|
||||||
|
// We launch a transparent activity
|
||||||
|
final ActivityRecord translucentActivity = new ActivityBuilder(mAtm)
|
||||||
|
.setLaunchedFromUid(mActivity.getUid())
|
||||||
|
.setScreenOrientation(SCREEN_ORIENTATION_PORTRAIT)
|
||||||
|
.build();
|
||||||
|
doReturn(false).when(translucentActivity).fillsParent();
|
||||||
|
mTask.addChild(translucentActivity);
|
||||||
|
|
||||||
|
// The transparent activity inherits the compat display insets of the opaque activity
|
||||||
|
// beneath it
|
||||||
|
assertNotNull(translucentActivity.getCompatDisplayInsets());
|
||||||
|
|
||||||
|
// Clearing SCM should also clear the inherited compat display insets
|
||||||
|
translucentActivity.clearSizeCompatMode();
|
||||||
|
assertNull(translucentActivity.getCompatDisplayInsets());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testRestartProcessIfVisible() {
|
public void testRestartProcessIfVisible() {
|
||||||
setUpDisplaySizeWithApp(1000, 2500);
|
setUpDisplaySizeWithApp(1000, 2500);
|
||||||
|
|||||||
Reference in New Issue
Block a user