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

Commit ac960527 authored by Jorim Jaggi's avatar Jorim Jaggi
Browse files

Add launch hint for RecentsAnimation

We are starting an activity, so let's send launch hint to be
faster and consistent with other activity launches.

Test: Swipe up, check android.hardware.power in systrace
Bug: 73651529
Change-Id: Ia8f925d94cf6969d2501e00b86fa91617d093916
parent 706fbe7e
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import static android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION;
import static android.os.Trace.TRACE_TAG_ACTIVITY_MANAGER;
import static android.view.WindowManager.TRANSIT_NONE;
import static com.android.server.am.ActivityStackSupervisor.PRESERVE_WINDOWS;
import static com.android.server.wm.RecentsAnimationController.REORDER_KEEP_HOME_IN_PLACE;
import static com.android.server.wm.RecentsAnimationController.REORDER_MOVE_HOME_TO_ORIGINAL_POSITION;
import static com.android.server.wm.RecentsAnimationController.REORDER_MOVE_HOME_TO_TOP;

@@ -87,6 +88,13 @@ class RecentsAnimation implements RecentsAnimationCallbacks {
            }
        }

        // Send launch hint if we are actually launching home. If it's already visible (shouldn't
        // happen in general) we don't need to send it.
        if (homeActivity == null || !homeActivity.visible) {
            mStackSupervisor.sendPowerHintForLaunchStartIfNeeded(true /* forceSend */,
                    homeActivity);
        }

        mStackSupervisor.getActivityMetricsLogger().notifyActivityLaunching();

        mService.setRunningRemoteAnimation(mCallingPid, true);
@@ -147,6 +155,12 @@ class RecentsAnimation implements RecentsAnimationCallbacks {
        synchronized (mService) {
            if (mWindowManager.getRecentsAnimationController() == null) return;

            // Just to be sure end the launch hint in case home was never launched. However, if
            // we're keeping home and making it visible, we can leave it on.
            if (reorderMode != REORDER_KEEP_HOME_IN_PLACE) {
                mStackSupervisor.sendPowerHintForLaunchEndIfNeeded();
            }

            mService.setRunningRemoteAnimation(mCallingPid, false);

            mWindowManager.inSurfaceTransaction(() -> {