Creating PinnedStackController.
- Creating a PinnedStackController to keep track of the state of the PIP
to prevent changes in the system (ie. IME showing) and user interaction
from clobbering each other.
- Refactoring calls in AM into WM/controller
Test: android.server.cts.ActivityManagerPinnedStackTests
Change-Id: Ie59dfd45d5c54764ba69a589b3b8148845e92cc3
Signed-off-by: Winson Chung <winsonc@google.com>
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index 0b39d65..a99bad2 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -196,6 +196,7 @@
private boolean mDeferredRemoval;
final DockedStackDividerController mDividerControllerLocked;
+ final PinnedStackController mPinnedStackControllerLocked;
final DimLayerController mDimLayerController;
@@ -237,6 +238,7 @@
mService = service;
initializeDisplayBaseInfo();
mDividerControllerLocked = new DockedStackDividerController(service, this);
+ mPinnedStackControllerLocked = new PinnedStackController(service, this);
mDimLayerController = new DimLayerController(this);
// These are the only direct children we should ever have and they are permanent.
@@ -307,6 +309,10 @@
return mDividerControllerLocked;
}
+ PinnedStackController getPinnedStackController() {
+ return mPinnedStackControllerLocked;
+ }
+
/**
* Returns true if the specified UID has access to this display.
*/
@@ -345,6 +351,7 @@
mService.reconfigureDisplayLocked(this);
getDockedDividerController().onConfigurationChanged();
+ getPinnedStackController().onConfigurationChanged();
}
/**
@@ -788,6 +795,7 @@
mDividerControllerLocked.setAdjustedForIme(
false /*ime*/, false /*divider*/, dockVisible /*animate*/, imeWin, imeHeight);
}
+ mPinnedStackControllerLocked.setAdjustedForIme(imeVisible, imeHeight);
}
void setInputMethodAnimLayerAdjustment(int adj) {
@@ -930,6 +938,8 @@
mDimLayerController.dump(prefix + " ", pw);
pw.println();
mDividerControllerLocked.dump(prefix + " ", pw);
+ pw.println();
+ mPinnedStackControllerLocked.dump(prefix + " ", pw);
if (mInputMethodAnimLayerAdjustment != 0) {
pw.println(subPrefix