From ccb5f0470d5700e7aa33baa9dc667b3e7db4624a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Ciche=C5=84ski?= Date: Thu, 9 Feb 2023 19:24:26 +0000 Subject: [PATCH] Enable ENABLE_PIP_KEEP_CLEAR_ALGORITHM for teamfood Change-Id: Id89395143e1dc0d1dd3b9dff6d3803ede8dc5590 Test: atest WMShellFlickerTests Bug: 183746978 --- .../com/android/wm/shell/pip/phone/PipController.java | 2 +- .../android/wm/shell/pip/phone/PipTouchHandler.java | 11 ++++++++--- .../android/wm/shell/pip/phone/PipControllerTest.java | 1 + .../wm/shell/pip/phone/PipTouchHandlerTest.java | 1 + .../SystemUI/src/com/android/systemui/flags/Flags.kt | 2 +- 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java index 11e2a92b89e8f..b59f95ce54c99 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java @@ -123,7 +123,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb SystemProperties.getLong("persist.wm.debug.pip_keep_clear_areas_delay", 200); private boolean mEnablePipKeepClearAlgorithm = - SystemProperties.getBoolean("persist.wm.debug.enable_pip_keep_clear_algorithm", false); + SystemProperties.getBoolean("persist.wm.debug.enable_pip_keep_clear_algorithm", true); @VisibleForTesting void setEnablePipKeepClearAlgorithm(boolean value) { diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipTouchHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipTouchHandler.java index 0e8d13d9979d4..466da0e85358a 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipTouchHandler.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipTouchHandler.java @@ -71,8 +71,13 @@ public class PipTouchHandler { private static final String TAG = "PipTouchHandler"; private static final float DEFAULT_STASH_VELOCITY_THRESHOLD = 18000.f; - private static final boolean ENABLE_PIP_KEEP_CLEAR_ALGORITHM = - SystemProperties.getBoolean("persist.wm.debug.enable_pip_keep_clear_algorithm", false); + private boolean mEnablePipKeepClearAlgorithm = + SystemProperties.getBoolean("persist.wm.debug.enable_pip_keep_clear_algorithm", true); + + @VisibleForTesting + void setEnablePipKeepClearAlgorithm(boolean value) { + mEnablePipKeepClearAlgorithm = value; + } // Allow PIP to resize to a slightly bigger state upon touch private boolean mEnableResize; @@ -427,7 +432,7 @@ public class PipTouchHandler { if (mTouchState.isUserInteracting() && mTouchState.isDragging()) { // Defer the update of the current movement bounds until after the user finishes // touching the screen - } else if (ENABLE_PIP_KEEP_CLEAR_ALGORITHM) { + } else if (mEnablePipKeepClearAlgorithm) { // Ignore moving PiP if keep clear algorithm is enabled, since IME and shelf height // now are accounted for in the keep clear algorithm calculations } else { diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java index 116affe62db0c..a41a30e73baab 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java @@ -314,6 +314,7 @@ public class PipControllerTest extends ShellTestCase { @Test public void onKeepClearAreasChanged_featureDisabled_pipBoundsStateDoesntChange() { + mPipController.setEnablePipKeepClearAlgorithm(false); final int displayId = 1; final Rect keepClearArea = new Rect(0, 0, 10, 10); when(mMockPipBoundsState.getDisplayId()).thenReturn(displayId); diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipTouchHandlerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipTouchHandlerTest.java index 5c4863ff752fa..1515d6057baf6 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipTouchHandlerTest.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipTouchHandlerTest.java @@ -173,6 +173,7 @@ public class PipTouchHandlerTest extends ShellTestCase { @Test public void updateMovementBounds_withImeAdjustment_movesPip() { + mPipTouchHandler.setEnablePipKeepClearAlgorithm(false); mFromImeAdjustment = true; mPipTouchHandler.onImeVisibilityChanged(true /* imeVisible */, mImeHeight); diff --git a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt index d055fe98bfe21..a2c91c7ca5313 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt +++ b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt @@ -480,7 +480,7 @@ object Flags { sysPropBooleanFlag( 1110, "persist.wm.debug.enable_pip_keep_clear_algorithm", - default = false + default = true ) // TODO(b/256873975): Tracking Bug