Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4d249cd0 authored by Riddle Hsu's avatar Riddle Hsu Committed by Android (Google) Code Review
Browse files

Merge "Revert^2 "Reduce unnecessary visibility update after resumed"" into main

parents 98264c6c 56327ff9
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -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();
+0 −15
Original line number Diff line number Diff line
@@ -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();
+2 −0
Original line number Diff line number Diff line
@@ -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.
@@ -1914,6 +1915,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
            }
        } finally {
            mTaskSupervisor.endActivityVisibilityUpdate();
            Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
        }
    }

+9 −0
Original line number Diff line number Diff line
@@ -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.
     */