Remove more dead tests of legacy insets mode

This CL also removes the assumptions about the new insets mode, because
we are always in the new insets mode now.

Fix: 156311082
Test: atest ViewRootImplTest DisplayPolicyLayoutTests WindowStateTests
Change-Id: I9f6f8824ae364b9cd95f6715dd761026d602c095
This commit is contained in:
Tiger Huang
2020-05-13 16:41:32 +08:00
parent c8d5a68525
commit 1da312dcab
3 changed files with 13 additions and 315 deletions

View File

@@ -28,29 +28,23 @@ import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
import static android.view.WindowManager.LayoutParams.TYPE_TOAST;
import static org.hamcrest.Matchers.equalTo;
import static androidx.test.InstrumentationRegistry.getInstrumentation;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import static org.junit.Assume.assumeTrue;
import static org.junit.Assert.assertTrue;
import android.content.Context;
import android.graphics.Insets;
import android.graphics.Rect;
import android.platform.test.annotations.Presubmit;
import android.view.WindowInsets.Side;
import android.view.WindowInsets.Type;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;
import androidx.test.platform.app.InstrumentationRegistry;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
/**
* Tests for {@link ViewRootImpl}
*
@@ -62,59 +56,18 @@ import java.lang.reflect.Method;
@RunWith(AndroidJUnit4.class)
public class ViewRootImplTest {
private Context mContext;
private ViewRootImplAccessor mViewRootImpl;
private ViewRootImpl mViewRootImpl;
@Before
public void setUp() throws Exception {
mContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
final Context context = getInstrumentation().getTargetContext();
InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
mViewRootImpl = new ViewRootImplAccessor(
new ViewRootImpl(mContext, mContext.getDisplayNoVerify()));
});
}
@Test
public void negativeInsets_areSetToZero() throws Exception {
assumeTrue(ViewRootImpl.sNewInsetsMode != ViewRootImpl.NEW_INSETS_MODE_FULL);
mViewRootImpl.getAttachInfo().getContentInsets().set(-10, -20, -30 , -40);
mViewRootImpl.getAttachInfo().getStableInsets().set(-10, -20, -30 , -40);
final WindowInsets insets = mViewRootImpl.getWindowInsets(true /* forceConstruct */);
assertThat(insets.getSystemWindowInsets(), equalTo(Insets.NONE));
assertThat(insets.getStableInsets(), equalTo(Insets.NONE));
}
@Test
public void negativeInsets_areSetToZero_positiveAreLeftAsIs() throws Exception {
assumeTrue(ViewRootImpl.sNewInsetsMode != ViewRootImpl.NEW_INSETS_MODE_FULL);
mViewRootImpl.getAttachInfo().getContentInsets().set(-10, 20, -30 , 40);
mViewRootImpl.getAttachInfo().getStableInsets().set(10, -20, 30 , -40);
final WindowInsets insets = mViewRootImpl.getWindowInsets(true /* forceConstruct */);
assertThat(insets.getSystemWindowInsets(), equalTo(Insets.of(0, 20, 0, 40)));
assertThat(insets.getStableInsets(), equalTo(Insets.of(10, 0, 30, 0)));
}
@Test
public void positiveInsets_areLeftAsIs() throws Exception {
assumeTrue(ViewRootImpl.sNewInsetsMode != ViewRootImpl.NEW_INSETS_MODE_FULL);
mViewRootImpl.getAttachInfo().getContentInsets().set(10, 20, 30 , 40);
mViewRootImpl.getAttachInfo().getStableInsets().set(10, 20, 30 , 40);
final WindowInsets insets = mViewRootImpl.getWindowInsets(true /* forceConstruct */);
assertThat(insets.getSystemWindowInsets(), equalTo(Insets.of(10, 20, 30, 40)));
assertThat(insets.getStableInsets(), equalTo(Insets.of(10, 20, 30, 40)));
getInstrumentation().runOnMainSync(() ->
mViewRootImpl = new ViewRootImpl(context, context.getDisplayNoVerify()));
}
@Test
public void adjustLayoutParamsForCompatibility_layoutFullscreen() {
assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(TYPE_APPLICATION);
attrs.systemUiVisibility = SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
ViewRootImpl.adjustLayoutParamsForCompatibility(attrs);
@@ -125,8 +78,6 @@ public class ViewRootImplTest {
@Test
public void adjustLayoutParamsForCompatibility_layoutInScreen() {
assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(TYPE_APPLICATION);
attrs.flags = FLAG_LAYOUT_IN_SCREEN;
ViewRootImpl.adjustLayoutParamsForCompatibility(attrs);
@@ -137,8 +88,6 @@ public class ViewRootImplTest {
@Test
public void adjustLayoutParamsForCompatibility_layoutHideNavigation() {
assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(TYPE_APPLICATION);
attrs.systemUiVisibility = SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
ViewRootImpl.adjustLayoutParamsForCompatibility(attrs);
@@ -149,28 +98,22 @@ public class ViewRootImplTest {
@Test
public void adjustLayoutParamsForCompatibility_toast() {
assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(TYPE_TOAST);
ViewRootImpl.adjustLayoutParamsForCompatibility(attrs);
assertEquals(true, attrs.isFitInsetsIgnoringVisibility());
assertTrue(attrs.isFitInsetsIgnoringVisibility());
}
@Test
public void adjustLayoutParamsForCompatibility_systemAlert() {
assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(TYPE_SYSTEM_ALERT);
ViewRootImpl.adjustLayoutParamsForCompatibility(attrs);
assertEquals(true, attrs.isFitInsetsIgnoringVisibility());
assertTrue(attrs.isFitInsetsIgnoringVisibility());
}
@Test
public void adjustLayoutParamsForCompatibility_fitSystemBars() {
assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(TYPE_APPLICATION);
ViewRootImpl.adjustLayoutParamsForCompatibility(attrs);
@@ -180,8 +123,6 @@ public class ViewRootImplTest {
@Test
public void adjustLayoutParamsForCompatibility_noAdjustLayout() {
assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
final WindowManager.LayoutParams attrs = new WindowManager.LayoutParams(TYPE_APPLICATION);
final int types = Type.all();
final int sides = Side.TOP | Side.LEFT;
@@ -201,11 +142,8 @@ public class ViewRootImplTest {
@Test
public void adjustLayoutParamsForCompatibility_noAdjustAppearance() {
assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
final ViewRootImpl viewRoot = mViewRootImpl.get();
final WindowInsetsController controller = viewRoot.getInsetsController();
final WindowManager.LayoutParams attrs = viewRoot.mWindowAttributes;
final WindowInsetsController controller = mViewRootImpl.getInsetsController();
final WindowManager.LayoutParams attrs = mViewRootImpl.mWindowAttributes;
final int appearance = 0;
controller.setSystemBarsAppearance(appearance, 0xffffffff);
attrs.systemUiVisibility = SYSTEM_UI_FLAG_LOW_PROFILE
@@ -220,11 +158,8 @@ public class ViewRootImplTest {
@Test
public void adjustLayoutParamsForCompatibility_noAdjustBehavior() {
assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
final ViewRootImpl viewRoot = mViewRootImpl.get();
final WindowInsetsController controller = viewRoot.getInsetsController();
final WindowManager.LayoutParams attrs = viewRoot.mWindowAttributes;
final WindowInsetsController controller = mViewRootImpl.getInsetsController();
final WindowManager.LayoutParams attrs = mViewRootImpl.mWindowAttributes;
final int behavior = BEHAVIOR_SHOW_BARS_BY_TOUCH;
controller.setSystemBarsBehavior(behavior);
attrs.systemUiVisibility = SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
@@ -234,59 +169,4 @@ public class ViewRootImplTest {
// setSystemBarsBehavior.
assertEquals(behavior, controller.getSystemBarsBehavior());
}
private static class ViewRootImplAccessor {
private final ViewRootImpl mViewRootImpl;
ViewRootImplAccessor(ViewRootImpl viewRootImpl) {
mViewRootImpl = viewRootImpl;
}
public ViewRootImpl get() {
return mViewRootImpl;
}
AttachInfoAccessor getAttachInfo() throws Exception {
return new AttachInfoAccessor(
getField(mViewRootImpl, ViewRootImpl.class.getDeclaredField("mAttachInfo")));
}
WindowInsets getWindowInsets(boolean forceConstruct) throws Exception {
return (WindowInsets) invokeMethod(mViewRootImpl,
ViewRootImpl.class.getDeclaredMethod("getWindowInsets", boolean.class),
forceConstruct);
}
class AttachInfoAccessor {
private final Class<?> mClass;
private final Object mAttachInfo;
AttachInfoAccessor(Object attachInfo) throws Exception {
mAttachInfo = attachInfo;
mClass = ViewRootImpl.class.getClassLoader().loadClass(
"android.view.View$AttachInfo");
}
Rect getContentInsets() throws Exception {
return (Rect) getField(mAttachInfo, mClass.getDeclaredField("mContentInsets"));
}
Rect getStableInsets() throws Exception {
return (Rect) getField(mAttachInfo, mClass.getDeclaredField("mStableInsets"));
}
}
private static Object getField(Object o, Field field) throws Exception {
field.setAccessible(true);
return field.get(o);
}
private static Object invokeMethod(Object o, Method method, Object... args)
throws Exception {
method.setAccessible(true);
return method.invoke(o, args);
}
}
}

View File

@@ -27,9 +27,7 @@ import static android.view.Surface.ROTATION_0;
import static android.view.Surface.ROTATION_270;
import static android.view.Surface.ROTATION_90;
import static android.view.View.SYSTEM_UI_FLAG_FULLSCREEN;
import static android.view.View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import static android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR;
@@ -40,7 +38,6 @@ import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_M
import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_IS_SCREEN_DECOR;
import static android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING;
import static android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE;
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR;
@@ -50,7 +47,6 @@ import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertThat;
import static org.junit.Assume.assumeTrue;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.spy;
import static org.testng.Assert.expectThrows;
@@ -64,18 +60,15 @@ import android.util.Pair;
import android.view.DisplayCutout;
import android.view.DisplayInfo;
import android.view.InsetsState;
import android.view.ViewRootImpl;
import android.view.WindowInsets.Side;
import android.view.WindowInsets.Type;
import android.view.WindowManager;
import androidx.test.filters.FlakyTest;
import androidx.test.filters.SmallTest;
import com.android.server.policy.WindowManagerPolicy;
import com.android.server.wm.utils.WmDisplayCutout;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -116,12 +109,6 @@ public class DisplayPolicyLayoutTests extends DisplayPolicyTestsBase {
updateDisplayFrames();
}
@After
public void tearDown() {
PolicyControl.setFilters("");
mWindow.getDisplayContent().mInputMethodTarget = null;
}
public void setRotation(int rotation) {
mRotation = rotation;
updateDisplayFrames();
@@ -210,8 +197,6 @@ public class DisplayPolicyLayoutTests extends DisplayPolicyTestsBase {
@Test
public void layoutWindowLw_fitStatusBars() {
assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
mWindow.mAttrs.setFitInsetsTypes(Type.statusBars());
addWindow(mWindow);
@@ -228,8 +213,6 @@ public class DisplayPolicyLayoutTests extends DisplayPolicyTestsBase {
@Test
public void layoutWindowLw_fitNavigationBars() {
assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
mWindow.mAttrs.setFitInsetsTypes(Type.navigationBars());
addWindow(mWindow);
@@ -246,8 +229,6 @@ public class DisplayPolicyLayoutTests extends DisplayPolicyTestsBase {
@Test
public void layoutWindowLw_fitAllSides() {
assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
mWindow.mAttrs.setFitInsetsSides(Side.all());
addWindow(mWindow);
@@ -264,8 +245,6 @@ public class DisplayPolicyLayoutTests extends DisplayPolicyTestsBase {
@Test
public void layoutWindowLw_fitTopOnly() {
assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
mWindow.mAttrs.setFitInsetsSides(Side.TOP);
addWindow(mWindow);
@@ -282,8 +261,6 @@ public class DisplayPolicyLayoutTests extends DisplayPolicyTestsBase {
@Test
public void layoutWindowLw_fitInsetsIgnoringVisibility() {
assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
final InsetsState state =
mDisplayContent.getInsetsPolicy().getInsetsForDispatch(mWindow);
state.getSource(InsetsState.ITYPE_STATUS_BAR).setVisible(false);
@@ -304,8 +281,6 @@ public class DisplayPolicyLayoutTests extends DisplayPolicyTestsBase {
@Test
public void layoutWindowLw_fitInsetsNotIgnoringVisibility() {
assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
final InsetsState state =
mDisplayContent.getInsetsPolicy().getInsetsForDispatch(mWindow);
state.getSource(InsetsState.ITYPE_STATUS_BAR).setVisible(false);
@@ -326,7 +301,6 @@ public class DisplayPolicyLayoutTests extends DisplayPolicyTestsBase {
@Test
public void layoutWindowLw_fitDisplayCutout() {
assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_FULL);
addDisplayCutout();
mWindow.mAttrs.setFitInsetsTypes(Type.displayCutout());
@@ -682,31 +656,6 @@ public class DisplayPolicyLayoutTests extends DisplayPolicyTestsBase {
assertInsetBy(mWindow.getDisplayFrameLw(), 0, 0, 0, 0);
}
@Test
public void layoutWindowLw_withForwardInset_SoftInputAdjustResize() {
assumeTrue(ViewRootImpl.sNewInsetsMode == ViewRootImpl.NEW_INSETS_MODE_NONE);
mWindow.mAttrs.flags =
FLAG_LAYOUT_IN_SCREEN | FLAG_LAYOUT_INSET_DECOR | FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
mWindow.mAttrs.setFitInsetsTypes(0 /* types */);
mWindow.mAttrs.softInputMode = SOFT_INPUT_ADJUST_RESIZE;
addWindow(mWindow);
final int forwardedInsetBottom = 50;
mDisplayPolicy.setForwardedInsets(Insets.of(0, 0, 0, forwardedInsetBottom));
mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
mDisplayPolicy.layoutWindowLw(mWindow, null, mFrames);
assertInsetBy(mWindow.getParentFrame(), 0, 0, 0, 0);
assertInsetByTopBottom(mWindow.getStableFrameLw(), STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT);
assertInsetByTopBottom(mWindow.getContentFrameLw(),
STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT + forwardedInsetBottom);
assertInsetByTopBottom(mWindow.getVisibleFrameLw(),
STATUS_BAR_HEIGHT, NAV_BAR_HEIGHT + forwardedInsetBottom);
assertInsetBy(mWindow.getDecorFrame(), 0, 0, 0, 0);
assertInsetBy(mWindow.getDisplayFrameLw(), 0, 0, 0, 0);
}
@Test
public void layoutWindowLw_withForwardInset_SoftInputAdjustNothing() {
mWindow.mAttrs.flags =
@@ -728,117 +677,6 @@ public class DisplayPolicyLayoutTests extends DisplayPolicyTestsBase {
assertInsetBy(mWindow.getDisplayFrameLw(), 0, 0, 0, 0);
}
// TODO(b/118118435): remove after removing PolicyControl
@FlakyTest(bugId = 129711077)
@Test
public void layoutWindowLw_withImmersive_SoftInputAdjustResize() {
assumeTrue(ViewRootImpl.sNewInsetsMode != ViewRootImpl.NEW_INSETS_MODE_FULL);
synchronized (mWm.mGlobalLock) {
mWindow.mAttrs.softInputMode = SOFT_INPUT_ADJUST_RESIZE;
mWindow.mAttrs.flags = 0;
mWindow.mAttrs.systemUiVisibility =
SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| SYSTEM_UI_FLAG_FULLSCREEN | SYSTEM_UI_FLAG_HIDE_NAVIGATION;
addWindow(mWindow);
mWindow.getDisplayContent().mInputMethodTarget = mWindow;
mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
mFrames.mContent.bottom = mFrames.mVoiceContent.bottom = INPUT_METHOD_WINDOW_TOP;
mFrames.mCurrent.bottom = INPUT_METHOD_WINDOW_TOP;
mDisplayPolicy.layoutWindowLw(mWindow, null, mFrames);
int bottomInset = mFrames.mDisplayHeight - INPUT_METHOD_WINDOW_TOP;
assertInsetByTopBottom(mWindow.getParentFrame(), 0, 0);
assertInsetByTopBottom(mWindow.getContentFrameLw(), 0, 0);
assertInsetByTopBottom(mWindow.getVisibleFrameLw(), STATUS_BAR_HEIGHT, bottomInset);
}
}
// TODO(b/118118435): remove after removing PolicyControl
@FlakyTest(bugId = 129711077)
@Test
public void layoutWindowLw_withImmersive_SoftInputAdjustNothing() {
assumeTrue(ViewRootImpl.sNewInsetsMode != ViewRootImpl.NEW_INSETS_MODE_FULL);
synchronized (mWm.mGlobalLock) {
mWindow.mAttrs.softInputMode = SOFT_INPUT_ADJUST_NOTHING;
mWindow.mAttrs.flags = 0;
mWindow.mAttrs.systemUiVisibility =
SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| SYSTEM_UI_FLAG_FULLSCREEN | SYSTEM_UI_FLAG_HIDE_NAVIGATION;
addWindow(mWindow);
mWindow.getDisplayContent().mInputMethodTarget = mWindow;
mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
mFrames.mContent.bottom = mFrames.mVoiceContent.bottom = INPUT_METHOD_WINDOW_TOP;
mFrames.mCurrent.bottom = INPUT_METHOD_WINDOW_TOP;
mDisplayPolicy.layoutWindowLw(mWindow, null, mFrames);
assertInsetByTopBottom(mWindow.getParentFrame(), 0, 0);
assertInsetByTopBottom(mWindow.getContentFrameLw(), 0, 0);
assertInsetByTopBottom(mWindow.getVisibleFrameLw(), 0, 0);
}
}
// TODO(b/118118435): remove after removing PolicyControl
@FlakyTest(bugId = 129711077)
@Test
public void layoutWindowLw_withForceImmersive_fullscreen() {
assumeTrue(ViewRootImpl.sNewInsetsMode != ViewRootImpl.NEW_INSETS_MODE_FULL);
synchronized (mWm.mGlobalLock) {
mWindow.mAttrs.softInputMode = SOFT_INPUT_ADJUST_RESIZE;
mWindow.mAttrs.flags = 0;
mWindow.mAttrs.systemUiVisibility = 0;
PolicyControl.setFilters(PolicyControl.NAME_IMMERSIVE_FULL + "=*");
addWindow(mWindow);
mWindow.getDisplayContent().mInputMethodTarget = mWindow;
mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
mFrames.mContent.bottom = mFrames.mVoiceContent.bottom = INPUT_METHOD_WINDOW_TOP;
mFrames.mCurrent.bottom = INPUT_METHOD_WINDOW_TOP;
mDisplayPolicy.layoutWindowLw(mWindow, null, mFrames);
int bottomInset = mFrames.mDisplayHeight - INPUT_METHOD_WINDOW_TOP;
assertInsetByTopBottom(mWindow.getParentFrame(), 0, 0);
assertInsetByTopBottom(mWindow.getContentFrameLw(), 0, 0);
assertInsetByTopBottom(mWindow.getVisibleFrameLw(), STATUS_BAR_HEIGHT, bottomInset);
}
}
// TODO(b/118118435): remove after removing PolicyControl
@FlakyTest(bugId = 129711077)
@Test
public void layoutWindowLw_withForceImmersive_nonFullscreen() {
assumeTrue(ViewRootImpl.sNewInsetsMode != ViewRootImpl.NEW_INSETS_MODE_FULL);
synchronized (mWm.mGlobalLock) {
mWindow.mAttrs.softInputMode = SOFT_INPUT_ADJUST_RESIZE;
mWindow.mAttrs.flags = 0;
mWindow.mAttrs.systemUiVisibility = 0;
mWindow.mAttrs.width = DISPLAY_WIDTH / 2;
mWindow.mAttrs.height = DISPLAY_HEIGHT / 2;
PolicyControl.setFilters(PolicyControl.NAME_IMMERSIVE_FULL + "=*");
addWindow(mWindow);
mWindow.getDisplayContent().mInputMethodTarget = mWindow;
mDisplayPolicy.beginLayoutLw(mFrames, 0 /* UI mode */);
mFrames.mContent.bottom = mFrames.mVoiceContent.bottom = INPUT_METHOD_WINDOW_TOP;
mFrames.mCurrent.bottom = INPUT_METHOD_WINDOW_TOP;
mDisplayPolicy.layoutWindowLw(mWindow, null, mFrames);
int bottomInset = mFrames.mDisplayHeight - INPUT_METHOD_WINDOW_TOP;
assertInsetByTopBottom(mWindow.getParentFrame(), STATUS_BAR_HEIGHT, bottomInset);
assertInsetByTopBottom(mWindow.getContentFrameLw(), STATUS_BAR_HEIGHT, bottomInset);
assertInsetByTopBottom(mWindow.getVisibleFrameLw(), STATUS_BAR_HEIGHT, bottomInset);
}
}
@Test
public void layoutHint_appWindow() {
mWindow.mAttrs.flags =

View File

@@ -22,7 +22,6 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMAR
import static android.hardware.camera2.params.OutputConfiguration.ROTATION_90;
import static android.view.InsetsState.ITYPE_STATUS_BAR;
import static android.view.Surface.ROTATION_0;
import static android.view.ViewRootImpl.NEW_INSETS_MODE_FULL;
import static android.view.WindowManager.LayoutParams.FIRST_SUB_WINDOW;
import static android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
import static android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
@@ -75,17 +74,13 @@ import android.util.Size;
import android.view.DisplayCutout;
import android.view.InsetsSource;
import android.view.SurfaceControl;
import android.view.ViewRootImpl;
import android.view.WindowManager;
import androidx.test.filters.FlakyTest;
import androidx.test.filters.SmallTest;
import com.android.server.wm.utils.WmDisplayCutout;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -103,21 +98,6 @@ import java.util.List;
@Presubmit
@RunWith(WindowTestRunner.class)
public class WindowStateTests extends WindowTestsBase {
private static int sPreviousNewInsetsMode;
@BeforeClass
public static void setUpOnce() {
// TODO: Make use of SettingsSession when it becomes feasible for this.
sPreviousNewInsetsMode = ViewRootImpl.sNewInsetsMode;
// To let the insets provider control the insets visibility, the insets mode has to be
// NEW_INSETS_MODE_FULL.
ViewRootImpl.sNewInsetsMode = NEW_INSETS_MODE_FULL;
}
@AfterClass
public static void tearDownOnce() {
ViewRootImpl.sNewInsetsMode = sPreviousNewInsetsMode;
}
@Before
public void setUp() {