diff options
| -rw-r--r-- | core/java/android/window/flags/windowing_frontend.aconfig | 11 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityStarter.java | 11 |
2 files changed, 20 insertions, 2 deletions
diff --git a/core/java/android/window/flags/windowing_frontend.aconfig b/core/java/android/window/flags/windowing_frontend.aconfig index 0e19eb2d3219..f2ba16cf43d6 100644 --- a/core/java/android/window/flags/windowing_frontend.aconfig +++ b/core/java/android/window/flags/windowing_frontend.aconfig @@ -482,4 +482,15 @@ flag { metadata { purpose: PURPOSE_BUGFIX } +} + +flag { + name: "early_launch_hint" + namespace: "windowing_frontend" + description: "Sets Launch powermode for activity launches earlier" + bug: "399380676" + is_fixed_read_only: true + metadata { + purpose: PURPOSE_BUGFIX + } }
\ No newline at end of file diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java index bdde5fe9dcb5..d463ed098d34 100644 --- a/services/core/java/com/android/server/wm/ActivityStarter.java +++ b/services/core/java/com/android/server/wm/ActivityStarter.java @@ -1992,6 +1992,11 @@ class ActivityStarter { } } + if (com.android.window.flags.Flags.earlyLaunchHint()) { + mRootWindowContainer.startPowerModeLaunchIfNeeded( + false /* forceSend */, mStartActivity); + } + if (mTargetRootTask == null) { mTargetRootTask = getOrCreateRootTask(mStartActivity, mLaunchFlags, targetTask, mOptions); @@ -2064,8 +2069,10 @@ class ActivityStarter { mStartActivity.getTaskFragment().clearLastPausedActivity(); - mRootWindowContainer.startPowerModeLaunchIfNeeded( - false /* forceSend */, mStartActivity); + if (!com.android.window.flags.Flags.earlyLaunchHint()) { + mRootWindowContainer.startPowerModeLaunchIfNeeded( + false /* forceSend */, mStartActivity); + } final boolean isTaskSwitch = startedTask != prevTopTask; mTargetRootTask.startActivityLocked(mStartActivity, topRootTask, newTask, isTaskSwitch, |