Merge "Inherit smallest width if TF is not multi-window without bounds override" into tm-qpr-dev am: c7237c1b0e am: 3b1cd4771a
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20729658 Change-Id: Ic866d58972c9fe3f9f9707787a19332be5aebb3e Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -2221,7 +2221,8 @@ class TaskFragment extends WindowContainer<WindowContainer> {
|
||||
// task, because they should not be affected by insets.
|
||||
inOutConfig.smallestScreenWidthDp = (int) (0.5f
|
||||
+ Math.min(mTmpFullBounds.width(), mTmpFullBounds.height()) / density);
|
||||
} else if (isEmbedded()) {
|
||||
} else if (windowingMode == WINDOWING_MODE_MULTI_WINDOW
|
||||
&& isEmbeddedWithBoundsOverride()) {
|
||||
// For embedded TFs, the smallest width should be updated. Otherwise, inherit
|
||||
// from the parent task would result in applications loaded wrong resource.
|
||||
inOutConfig.smallestScreenWidthDp =
|
||||
|
||||
@@ -38,6 +38,7 @@ import static com.android.server.wm.WindowContainer.POSITION_TOP;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotEquals;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
@@ -98,12 +99,25 @@ public class TaskFragmentTest extends WindowTestsBase {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testOnConfigurationChanged_updateSurface() {
|
||||
final Rect bounds = new Rect(100, 100, 1100, 1100);
|
||||
public void testOnConfigurationChanged() {
|
||||
final Configuration parentConfig = mTaskFragment.getParent().getConfiguration();
|
||||
final Rect parentBounds = parentConfig.windowConfiguration.getBounds();
|
||||
parentConfig.smallestScreenWidthDp += 10;
|
||||
final int parentSw = parentConfig.smallestScreenWidthDp;
|
||||
final Rect bounds = new Rect(parentBounds);
|
||||
bounds.inset(100, 100);
|
||||
mTaskFragment.setBounds(bounds);
|
||||
mTaskFragment.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
|
||||
// Calculate its own sw with smaller bounds in multi-window mode.
|
||||
assertNotEquals(parentSw, mTaskFragment.getConfiguration().smallestScreenWidthDp);
|
||||
|
||||
verify(mTransaction).setPosition(mLeash, 100, 100);
|
||||
verify(mTransaction).setWindowCrop(mLeash, 1000, 1000);
|
||||
verify(mTransaction).setPosition(mLeash, bounds.left, bounds.top);
|
||||
verify(mTransaction).setWindowCrop(mLeash, bounds.width(), bounds.height());
|
||||
|
||||
mTaskFragment.setBounds(parentBounds);
|
||||
mTaskFragment.setWindowingMode(WINDOWING_MODE_FULLSCREEN);
|
||||
// Inherit parent's sw in fullscreen mode.
|
||||
assertEquals(parentSw, mTaskFragment.getConfiguration().smallestScreenWidthDp);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user