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

Commit a4e2bf47 authored by Wei Wang's avatar Wei Wang Committed by Android (Google) Code Review
Browse files

Merge "Add launch power hint for activity launch end" into nyc-mr1-dev

parents ebfa28cc 65c7a158
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -870,6 +870,8 @@ public final class ActivityStackSupervisor implements DisplayListener {
                }
            }
        }
        // Send launch end powerhint when idle
        mService.mActivityStarter.sendPowerHintForLaunchEndIfNeeded();
        return true;
    }

@@ -2755,6 +2757,9 @@ public final class ActivityStackSupervisor implements DisplayListener {
            }
        }

        // Send launch end powerhint before going sleep
        mService.mActivityStarter.sendPowerHintForLaunchEndIfNeeded();

        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
            final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
            for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
@@ -4422,7 +4427,7 @@ public final class ActivityStackSupervisor implements DisplayListener {
        // Work Challenge is present) let startActivityInPackage handle the intercepting.
        if (!mService.mUserController.shouldConfirmCredentials(task.userId)
                && task.getRootActivity() != null) {
            mService.mActivityStarter.sendPowerHintForLaunchIfNeeded(true /* forceSend */);
            mService.mActivityStarter.sendPowerHintForLaunchStartIfNeeded(true /* forceSend */);
            mActivityMetricsLogger.notifyActivityLaunching();
            mService.moveTaskToFrontLocked(task.taskId, 0, bOptions);
            mActivityMetricsLogger.notifyActivityLaunched(ActivityManager.START_TASK_TO_FRONT,
+13 −7
Original line number Diff line number Diff line
@@ -212,8 +212,6 @@ class ActivityStarter {
        mKeepCurTransition = false;
        mAvoidMoveToFront = false;

        mPowerHintSent = false;

        mVoiceSession = null;
        mVoiceInteractor = null;
    }
@@ -947,8 +945,8 @@ class ActivityStarter {
        return START_SUCCESS;
    }

    void sendPowerHintForLaunchIfNeeded(boolean forceSend) {
        // Trigger launch power hint if activity is not in the current task
    void sendPowerHintForLaunchStartIfNeeded(boolean forceSend) {
        // Trigger launch power hint if activity being launched is not in the current task
        final ActivityStack focusStack = mSupervisor.getFocusedStack();
        final ActivityRecord curTop = (focusStack == null)
            ? null : focusStack.topRunningNonDelayedActivityLocked(mNotTop);
@@ -956,11 +954,19 @@ class ActivityStarter {
                curTop.task != null && mStartActivity != null &&
                curTop.task != mStartActivity.task )) &&
                mService.mLocalPowerManager != null) {
            mService.mLocalPowerManager.powerHint(PowerManagerInternal.POWER_HINT_LAUNCH, 0);
            mService.mLocalPowerManager.powerHint(PowerManagerInternal.POWER_HINT_LAUNCH, 1);
            mPowerHintSent = true;
        }
    }

    void sendPowerHintForLaunchEndIfNeeded() {
        // Trigger launch power hint if activity is launched
        if (mPowerHintSent && mService.mLocalPowerManager != null) {
            mService.mLocalPowerManager.powerHint(PowerManagerInternal.POWER_HINT_LAUNCH, 0);
            mPowerHintSent = false;
        }
    }

    private int startActivityUnchecked(final ActivityRecord r, ActivityRecord sourceRecord,
            IVoiceInteractionSession voiceSession, IVoiceInteractor voiceInteractor,
            int startFlags, boolean doResume, ActivityOptions options, TaskRecord inTask) {
@@ -1022,7 +1028,7 @@ class ActivityStarter {
                }
            }

            sendPowerHintForLaunchIfNeeded(false /* forceSend */);
            sendPowerHintForLaunchStartIfNeeded(false /* forceSend */);

            mReusedActivity = setTargetStackAndMoveToFrontIfNeeded(mReusedActivity);

@@ -1147,7 +1153,7 @@ class ActivityStarter {
                EventLogTags.AM_CREATE_ACTIVITY, mStartActivity, mStartActivity.task);
        mTargetStack.mLastPausedActivity = null;

        sendPowerHintForLaunchIfNeeded(false /* forceSend */);
        sendPowerHintForLaunchStartIfNeeded(false /* forceSend */);

        mTargetStack.startActivityLocked(mStartActivity, newTask, mKeepCurTransition, mOptions);
        if (mDoResume) {