diff options
3 files changed, 20 insertions, 24 deletions
diff --git a/services/core/java/com/android/server/am/ActivityDisplay.java b/services/core/java/com/android/server/am/ActivityDisplay.java index dd83a36b99d8..44980772d895 100644 --- a/services/core/java/com/android/server/am/ActivityDisplay.java +++ b/services/core/java/com/android/server/am/ActivityDisplay.java @@ -106,21 +106,21 @@ class ActivityDisplay extends ConfigurationContainer<ActivityStack> private DisplayWindowController mWindowContainerController; + @VisibleForTesting ActivityDisplay(ActivityStackSupervisor supervisor, int displayId) { + this(supervisor, supervisor.mDisplayManager.getDisplay(displayId)); + } + + ActivityDisplay(ActivityStackSupervisor supervisor, Display display) { mSupervisor = supervisor; - mDisplayId = displayId; - final Display display = supervisor.mDisplayManager.getDisplay(displayId); - if (display == null) { - throw new IllegalStateException("Display does not exist displayId=" + displayId); - } + mDisplayId = display.getDisplayId(); mDisplay = display; mWindowContainerController = createWindowContainerController(); - updateBounds(); } protected DisplayWindowController createWindowContainerController() { - return new DisplayWindowController(mDisplayId, this); + return new DisplayWindowController(mDisplay, this); } void updateBounds() { diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java index 740a312f7aa0..d372bd874d5a 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -652,9 +652,9 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D Display[] displays = mDisplayManager.getDisplays(); for (int displayNdx = displays.length - 1; displayNdx >= 0; --displayNdx) { - final int displayId = displays[displayNdx].getDisplayId(); - ActivityDisplay activityDisplay = new ActivityDisplay(this, displayId); - mActivityDisplays.put(displayId, activityDisplay); + final Display display = displays[displayNdx]; + ActivityDisplay activityDisplay = new ActivityDisplay(this, display); + mActivityDisplays.put(display.getDisplayId(), activityDisplay); calculateDefaultMinimalSizeOfResizeableTasks(activityDisplay); } @@ -4085,7 +4085,7 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D return null; } // The display hasn't been added to ActivityManager yet, create a new record now. - activityDisplay = new ActivityDisplay(this, displayId); + activityDisplay = new ActivityDisplay(this, display); attachDisplay(activityDisplay); calculateDefaultMinimalSizeOfResizeableTasks(activityDisplay); mWindowManager.onDisplayAdded(displayId); diff --git a/services/core/java/com/android/server/wm/DisplayWindowController.java b/services/core/java/com/android/server/wm/DisplayWindowController.java index e3e4a4673ea3..ba8ec69f3605 100644 --- a/services/core/java/com/android/server/wm/DisplayWindowController.java +++ b/services/core/java/com/android/server/wm/DisplayWindowController.java @@ -34,25 +34,21 @@ public class DisplayWindowController private final int mDisplayId; - public DisplayWindowController(int displayId, WindowContainerListener listener) { + public DisplayWindowController(Display display, WindowContainerListener listener) { super(listener, WindowManagerService.getInstance()); - mDisplayId = displayId; + mDisplayId = display.getDisplayId(); synchronized (mWindowMap) { - final Display display = mService.mDisplayManager.getDisplay(displayId); - if (display != null) { - final long callingIdentity = Binder.clearCallingIdentity(); - try { - mRoot.createDisplayContent(display, this /* controller */); - } finally { - Binder.restoreCallingIdentity(callingIdentity); - } + final long callingIdentity = Binder.clearCallingIdentity(); + try { + mRoot.createDisplayContent(display, this /* controller */); + } finally { + Binder.restoreCallingIdentity(callingIdentity); } if (mContainer == null) { - throw new IllegalArgumentException("Trying to add displayId=" + displayId - + " display=" + display - + " dc=" + mRoot.getDisplayContent(displayId)); + throw new IllegalArgumentException("Trying to add display=" + display + + " dc=" + mRoot.getDisplayContent(mDisplayId)); } } } |