OSDN Git Service

Fix activity move between displays
authorAndrii Kulian <akulian@google.com>
Sat, 8 Apr 2017 01:39:32 +0000 (18:39 -0700)
committerAndrii Kulian <akulian@google.com>
Sat, 8 Apr 2017 01:39:32 +0000 (18:39 -0700)
commit51c1b670224fa1598644426b472d51346dd22f30
tree5851a8dd394f9159774a16ecc02483f2a25d089a
parent4567c1a1a3af78c890dfbb8bae91e2f15a684516
Fix activity move between displays

1. ActivityConfigCallback might not have been registered
because DecorView was not yet attached to window and ViewRootImpl
was not available. In this CL the callback is set as soon as a
DecorView is attached to window.
2. When private display was removed from system, its stacks were
moved to bottom in AM but moved to top in WM.
3. When reparenting stack visibility of activities should be updated
before reparenting in WM, because otherwise WM will be resizing
windows that should no longer visible and reporting it to clients.

Bug: 34164473
Test: android.server.cts.ActivityManagerDisplayTests
Test: #testOnMovedToDisplayCallback
Test: #testContentDestroyOnDisplayRemoved
Change-Id: I6ccc27d873d0d60d7650659fb25cbfcaaeb0fd07
core/java/android/app/Activity.java
core/java/android/app/ActivityThread.java
core/java/android/app/Instrumentation.java
core/java/com/android/internal/policy/DecorView.java
core/java/com/android/internal/policy/PhoneWindow.java
services/core/java/com/android/server/am/ActivityStack.java
services/core/java/com/android/server/am/ActivityStackSupervisor.java
services/core/java/com/android/server/wm/DisplayContent.java
services/core/java/com/android/server/wm/StackWindowController.java
services/tests/servicestests/src/com/android/server/wm/DisplayContentTests.java
services/tests/servicestests/src/com/android/server/wm/StackWindowControllerTests.java