Loading services/core/java/com/android/server/wm/ActivityRecord.java +6 −1 Original line number Diff line number Diff line Loading @@ -6563,7 +6563,12 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A // Schedule an idle timeout in case the app doesn't do it for us. mTaskSupervisor.scheduleIdleTimeout(this); mTaskSupervisor.reportResumedActivityLocked(this); mTaskSupervisor.mStoppingActivities.remove(this); if (getDisplayArea().allResumedActivitiesComplete()) { // Construct the compat environment at a relatively stable state if needed. updateCompatDisplayInsets(); mRootWindowContainer.executeAppTransitionForAllDisplay(); } resumeKeyDispatchingLocked(); final Task rootTask = getRootTask(); Loading services/core/java/com/android/server/wm/ActivityTaskSupervisor.java +0 −15 Original line number Diff line number Diff line Loading @@ -2064,21 +2064,6 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks { } } boolean reportResumedActivityLocked(ActivityRecord r) { // A resumed activity cannot be stopping. remove from list mStoppingActivities.remove(r); final Task rootTask = r.getRootTask(); if (rootTask.getDisplayArea().allResumedActivitiesComplete()) { mRootWindowContainer.ensureActivitiesVisible(); // Make sure activity & window visibility should be identical // for all displays in this stage. mRootWindowContainer.executeAppTransitionForAllDisplay(); return true; } return false; } // Called when WindowManager has finished animating the launchingBehind activity to the back. private void handleLaunchTaskBehindCompleteLocked(ActivityRecord r) { final Task task = r.getTask(); Loading services/core/java/com/android/server/wm/RootWindowContainer.java +2 −0 Original line number Diff line number Diff line Loading @@ -1905,6 +1905,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> // Don't do recursive work. return; } Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "RWC_ensureActivitiesVisible"); mTaskSupervisor.beginActivityVisibilityUpdate(); try { // First the front root tasks. In case any are not fullscreen and are in front of home. Loading @@ -1914,6 +1915,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> } } finally { mTaskSupervisor.endActivityVisibilityUpdate(); Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER); } } Loading services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java +9 −0 Original line number Diff line number Diff line Loading @@ -1639,6 +1639,15 @@ public class ActivityRecordTests extends WindowTestsBase { clearInvocations(mDefaultDisplay); } @Test public void testCompleteResume_updateCompatDisplayInsets() { final ActivityRecord activity = new ActivityBuilder(mAtm).setCreateTask(true).build(); doReturn(true).when(activity).shouldCreateCompatDisplayInsets(); activity.setState(RESUMED, "test"); activity.completeResumeLocked(); assertNotNull(activity.getCompatDisplayInsets()); } /** * Verify destroy activity request completes successfully. */ Loading Loading
services/core/java/com/android/server/wm/ActivityRecord.java +6 −1 Original line number Diff line number Diff line Loading @@ -6563,7 +6563,12 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A // Schedule an idle timeout in case the app doesn't do it for us. mTaskSupervisor.scheduleIdleTimeout(this); mTaskSupervisor.reportResumedActivityLocked(this); mTaskSupervisor.mStoppingActivities.remove(this); if (getDisplayArea().allResumedActivitiesComplete()) { // Construct the compat environment at a relatively stable state if needed. updateCompatDisplayInsets(); mRootWindowContainer.executeAppTransitionForAllDisplay(); } resumeKeyDispatchingLocked(); final Task rootTask = getRootTask(); Loading
services/core/java/com/android/server/wm/ActivityTaskSupervisor.java +0 −15 Original line number Diff line number Diff line Loading @@ -2064,21 +2064,6 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks { } } boolean reportResumedActivityLocked(ActivityRecord r) { // A resumed activity cannot be stopping. remove from list mStoppingActivities.remove(r); final Task rootTask = r.getRootTask(); if (rootTask.getDisplayArea().allResumedActivitiesComplete()) { mRootWindowContainer.ensureActivitiesVisible(); // Make sure activity & window visibility should be identical // for all displays in this stage. mRootWindowContainer.executeAppTransitionForAllDisplay(); return true; } return false; } // Called when WindowManager has finished animating the launchingBehind activity to the back. private void handleLaunchTaskBehindCompleteLocked(ActivityRecord r) { final Task task = r.getTask(); Loading
services/core/java/com/android/server/wm/RootWindowContainer.java +2 −0 Original line number Diff line number Diff line Loading @@ -1905,6 +1905,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> // Don't do recursive work. return; } Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "RWC_ensureActivitiesVisible"); mTaskSupervisor.beginActivityVisibilityUpdate(); try { // First the front root tasks. In case any are not fullscreen and are in front of home. Loading @@ -1914,6 +1915,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> } } finally { mTaskSupervisor.endActivityVisibilityUpdate(); Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER); } } Loading
services/tests/wmtests/src/com/android/server/wm/ActivityRecordTests.java +9 −0 Original line number Diff line number Diff line Loading @@ -1639,6 +1639,15 @@ public class ActivityRecordTests extends WindowTestsBase { clearInvocations(mDefaultDisplay); } @Test public void testCompleteResume_updateCompatDisplayInsets() { final ActivityRecord activity = new ActivityBuilder(mAtm).setCreateTask(true).build(); doReturn(true).when(activity).shouldCreateCompatDisplayInsets(); activity.setState(RESUMED, "test"); activity.completeResumeLocked(); assertNotNull(activity.getCompatDisplayInsets()); } /** * Verify destroy activity request completes successfully. */ Loading