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

am: a4e2bf4712

Change-Id: I6ffa3183f66121df9004880aa46e81f336ddfeae
This commit is contained in:
Wei Wang
2016-06-08 19:58:03 +00:00
committed by android-build-merger
2 changed files with 19 additions and 8 deletions

View File

@@ -870,6 +870,8 @@ public final class ActivityStackSupervisor implements DisplayListener {
} }
} }
} }
// Send launch end powerhint when idle
mService.mActivityStarter.sendPowerHintForLaunchEndIfNeeded();
return true; 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) { for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks; final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) { 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. // Work Challenge is present) let startActivityInPackage handle the intercepting.
if (!mService.mUserController.shouldConfirmCredentials(task.userId) if (!mService.mUserController.shouldConfirmCredentials(task.userId)
&& task.getRootActivity() != null) { && task.getRootActivity() != null) {
mService.mActivityStarter.sendPowerHintForLaunchIfNeeded(true /* forceSend */); mService.mActivityStarter.sendPowerHintForLaunchStartIfNeeded(true /* forceSend */);
mActivityMetricsLogger.notifyActivityLaunching(); mActivityMetricsLogger.notifyActivityLaunching();
mService.moveTaskToFrontLocked(task.taskId, 0, bOptions); mService.moveTaskToFrontLocked(task.taskId, 0, bOptions);
mActivityMetricsLogger.notifyActivityLaunched(ActivityManager.START_TASK_TO_FRONT, mActivityMetricsLogger.notifyActivityLaunched(ActivityManager.START_TASK_TO_FRONT,

View File

@@ -212,8 +212,6 @@ class ActivityStarter {
mKeepCurTransition = false; mKeepCurTransition = false;
mAvoidMoveToFront = false; mAvoidMoveToFront = false;
mPowerHintSent = false;
mVoiceSession = null; mVoiceSession = null;
mVoiceInteractor = null; mVoiceInteractor = null;
} }
@@ -947,8 +945,8 @@ class ActivityStarter {
return START_SUCCESS; return START_SUCCESS;
} }
void sendPowerHintForLaunchIfNeeded(boolean forceSend) { void sendPowerHintForLaunchStartIfNeeded(boolean forceSend) {
// Trigger launch power hint if activity is not in the current task // Trigger launch power hint if activity being launched is not in the current task
final ActivityStack focusStack = mSupervisor.getFocusedStack(); final ActivityStack focusStack = mSupervisor.getFocusedStack();
final ActivityRecord curTop = (focusStack == null) final ActivityRecord curTop = (focusStack == null)
? null : focusStack.topRunningNonDelayedActivityLocked(mNotTop); ? null : focusStack.topRunningNonDelayedActivityLocked(mNotTop);
@@ -956,11 +954,19 @@ class ActivityStarter {
curTop.task != null && mStartActivity != null && curTop.task != null && mStartActivity != null &&
curTop.task != mStartActivity.task )) && curTop.task != mStartActivity.task )) &&
mService.mLocalPowerManager != null) { mService.mLocalPowerManager != null) {
mService.mLocalPowerManager.powerHint(PowerManagerInternal.POWER_HINT_LAUNCH, 0); mService.mLocalPowerManager.powerHint(PowerManagerInternal.POWER_HINT_LAUNCH, 1);
mPowerHintSent = true; 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, private int startActivityUnchecked(final ActivityRecord r, ActivityRecord sourceRecord,
IVoiceInteractionSession voiceSession, IVoiceInteractor voiceInteractor, IVoiceInteractionSession voiceSession, IVoiceInteractor voiceInteractor,
int startFlags, boolean doResume, ActivityOptions options, TaskRecord inTask) { int startFlags, boolean doResume, ActivityOptions options, TaskRecord inTask) {
@@ -1022,7 +1028,7 @@ class ActivityStarter {
} }
} }
sendPowerHintForLaunchIfNeeded(false /* forceSend */); sendPowerHintForLaunchStartIfNeeded(false /* forceSend */);
mReusedActivity = setTargetStackAndMoveToFrontIfNeeded(mReusedActivity); mReusedActivity = setTargetStackAndMoveToFrontIfNeeded(mReusedActivity);
@@ -1147,7 +1153,7 @@ class ActivityStarter {
EventLogTags.AM_CREATE_ACTIVITY, mStartActivity, mStartActivity.task); EventLogTags.AM_CREATE_ACTIVITY, mStartActivity, mStartActivity.task);
mTargetStack.mLastPausedActivity = null; mTargetStack.mLastPausedActivity = null;
sendPowerHintForLaunchIfNeeded(false /* forceSend */); sendPowerHintForLaunchStartIfNeeded(false /* forceSend */);
mTargetStack.startActivityLocked(mStartActivity, newTask, mKeepCurTransition, mOptions); mTargetStack.startActivityLocked(mStartActivity, newTask, mKeepCurTransition, mOptions);
if (mDoResume) { if (mDoResume) {