Loading services/core/java/com/android/server/wm/InsetsSourceProvider.java +2 −1 Original line number Diff line number Diff line Loading @@ -409,7 +409,7 @@ class InsetsSourceProvider { } final Point position = getWindowFrameSurfacePosition(); if (!mPosition.equals(position)) { mPosition.set(position.x, position.y); mPosition.set(position); if (windowState != null && windowState.getWindowFrames().didFrameSizeChange() && windowState.mWinAnimator.getShown() && mWindowContainer.okToDisplay()) { mHasPendingPosition = true; Loading Loading @@ -553,6 +553,7 @@ class InsetsSourceProvider { } boolean initiallyVisible = mClientVisible; final Point surfacePosition = getWindowFrameSurfacePosition(); mPosition.set(surfacePosition); mAdapter = new ControlAdapter(surfacePosition); if (mSource.getType() == WindowInsets.Type.ime()) { if (android.view.inputmethod.Flags.refactorInsetsController()) { Loading services/tests/wmtests/src/com/android/server/wm/InsetsSourceProviderTest.java +22 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import android.graphics.Insets; import android.graphics.Point; import android.graphics.Rect; import android.platform.test.annotations.Presubmit; import android.view.InsetsSource; Loading Loading @@ -259,6 +260,27 @@ public class InsetsSourceProviderTest extends WindowTestsBase { assertEquals(Insets.of(0, 0, 0, 100), insets); } @Test public void testUpdateInsetsControlPosition() { final WindowState target = createWindow(null, TYPE_APPLICATION, "target"); final WindowState ime1 = createWindow(null, TYPE_INPUT_METHOD, "ime1"); ime1.getFrame().set(new Rect(0, 0, 0, 0)); mImeProvider.setWindowContainer(ime1, null, null); mImeProvider.updateControlForTarget(target, false /* force */, null /* statsToken */); ime1.getFrame().set(new Rect(0, 400, 500, 500)); mImeProvider.updateInsetsControlPosition(ime1); assertEquals(new Point(0, 400), mImeProvider.getControl(target).getSurfacePosition()); final WindowState ime2 = createWindow(null, TYPE_INPUT_METHOD, "ime2"); ime2.getFrame().set(new Rect(0, 0, 0, 0)); mImeProvider.setWindowContainer(ime2, null, null); mImeProvider.updateControlForTarget(target, false /* force */, null /* statsToken */); ime2.getFrame().set(new Rect(0, 400, 500, 500)); mImeProvider.updateInsetsControlPosition(ime2); assertEquals(new Point(0, 400), mImeProvider.getControl(target).getSurfacePosition()); } @Test public void testSetRequestedVisibleTypes() { final WindowState statusBar = createWindow(null, TYPE_APPLICATION, "statusBar"); Loading Loading
services/core/java/com/android/server/wm/InsetsSourceProvider.java +2 −1 Original line number Diff line number Diff line Loading @@ -409,7 +409,7 @@ class InsetsSourceProvider { } final Point position = getWindowFrameSurfacePosition(); if (!mPosition.equals(position)) { mPosition.set(position.x, position.y); mPosition.set(position); if (windowState != null && windowState.getWindowFrames().didFrameSizeChange() && windowState.mWinAnimator.getShown() && mWindowContainer.okToDisplay()) { mHasPendingPosition = true; Loading Loading @@ -553,6 +553,7 @@ class InsetsSourceProvider { } boolean initiallyVisible = mClientVisible; final Point surfacePosition = getWindowFrameSurfacePosition(); mPosition.set(surfacePosition); mAdapter = new ControlAdapter(surfacePosition); if (mSource.getType() == WindowInsets.Type.ime()) { if (android.view.inputmethod.Flags.refactorInsetsController()) { Loading
services/tests/wmtests/src/com/android/server/wm/InsetsSourceProviderTest.java +22 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import android.graphics.Insets; import android.graphics.Point; import android.graphics.Rect; import android.platform.test.annotations.Presubmit; import android.view.InsetsSource; Loading Loading @@ -259,6 +260,27 @@ public class InsetsSourceProviderTest extends WindowTestsBase { assertEquals(Insets.of(0, 0, 0, 100), insets); } @Test public void testUpdateInsetsControlPosition() { final WindowState target = createWindow(null, TYPE_APPLICATION, "target"); final WindowState ime1 = createWindow(null, TYPE_INPUT_METHOD, "ime1"); ime1.getFrame().set(new Rect(0, 0, 0, 0)); mImeProvider.setWindowContainer(ime1, null, null); mImeProvider.updateControlForTarget(target, false /* force */, null /* statsToken */); ime1.getFrame().set(new Rect(0, 400, 500, 500)); mImeProvider.updateInsetsControlPosition(ime1); assertEquals(new Point(0, 400), mImeProvider.getControl(target).getSurfacePosition()); final WindowState ime2 = createWindow(null, TYPE_INPUT_METHOD, "ime2"); ime2.getFrame().set(new Rect(0, 0, 0, 0)); mImeProvider.setWindowContainer(ime2, null, null); mImeProvider.updateControlForTarget(target, false /* force */, null /* statsToken */); ime2.getFrame().set(new Rect(0, 400, 500, 500)); mImeProvider.updateInsetsControlPosition(ime2); assertEquals(new Point(0, 400), mImeProvider.getControl(target).getSurfacePosition()); } @Test public void testSetRequestedVisibleTypes() { final WindowState statusBar = createWindow(null, TYPE_APPLICATION, "statusBar"); Loading