From 8b9c15bd73d504ca2400350cf8c3d505ca351ff6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Ciche=C5=84ski?= Date: Thu, 24 Mar 2022 01:29:24 +0000 Subject: [PATCH] Pass the keep clear areas through proper implementation. The PipController is not registered as DisplayWindowListener, but this inner implementation is. Bug: 183746978 Test: atest PipControllerTest, manually via extra log statement I noticed it's not being receiving the keep clear areas changes Change-Id: Iaae4aad3dfd1dd5a5dbab79f91efab3d52b94f80 --- .../wm/shell/pip/phone/PipController.java | 18 +++++++++--------- .../wm/shell/pip/phone/PipControllerTest.java | 3 ++- 2 files changed, 11 insertions(+), 10 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 33115e947571a..ad5d85cc083a8 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 @@ -96,7 +96,7 @@ import java.util.function.Consumer; * Manages the picture-in-picture (PIP) UI and states for Phones. */ public class PipController implements PipTransitionController.PipTransitionCallback, - RemoteCallable, DisplayController.OnDisplaysChangedListener { + RemoteCallable { private static final String TAG = "PipController"; private Context mContext; @@ -234,6 +234,14 @@ public class PipController implements PipTransitionController.PipTransitionCallb onDisplayChanged(mDisplayController.getDisplayLayout(displayId), true /* saveRestoreSnapFraction */); } + + @Override + public void onKeepClearAreasChanged(int displayId, Set restricted, + Set unrestricted) { + if (mPipBoundsState.getDisplayId() == displayId) { + mPipBoundsState.setKeepClearAreas(restricted, unrestricted); + } + } }; /** @@ -463,14 +471,6 @@ public class PipController implements PipTransitionController.PipTransitionCallb return mMainExecutor; } - @Override - public void onKeepClearAreasChanged(int displayId, Set restricted, - Set unrestricted) { - if (mPipBoundsState.getDisplayId() == displayId) { - mPipBoundsState.setKeepClearAreas(restricted, unrestricted); - } - } - private void onConfigurationChanged(Configuration newConfig) { mPipBoundsAlgorithm.onConfigurationChanged(mContext); mTouchHandler.onConfigurationChanged(); 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 af6e5d4c6f1aa..aef298ed478aa 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 @@ -217,7 +217,8 @@ public class PipControllerTest extends ShellTestCase { final Rect keepClearArea = new Rect(0, 0, 10, 10); when(mMockPipBoundsState.getDisplayId()).thenReturn(displayId); - mPipController.onKeepClearAreasChanged(displayId, Set.of(keepClearArea), Set.of()); + mPipController.mDisplaysChangedListener.onKeepClearAreasChanged( + displayId, Set.of(keepClearArea), Set.of()); verify(mMockPipBoundsState).setKeepClearAreas(Set.of(keepClearArea), Set.of()); }