Merge "Allow resumed activity to turn-screen-on only when being started" into tm-qpr-dev

This commit is contained in:
Louis Chang
2022-04-18 01:00:37 +00:00
committed by Android (Google) Code Review
3 changed files with 20 additions and 1 deletions

View File

@@ -5460,7 +5460,10 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
wasStopped, this);
mAppStopped = false;
// Allow the window to turn the screen on once the app is resumed again.
setCurrentLaunchCanTurnScreenOn(true);
if (mAtmService.getActivityStartController().isInExecution()) {
setCurrentLaunchCanTurnScreenOn(true);
}
if (!wasStopped) {
destroySurfaces(true /*cleanupOnResume*/);
}

View File

@@ -90,6 +90,8 @@ public class ActivityStartController {
boolean mCheckedForSetup = false;
private boolean mInExecution = false;
/**
* TODO(b/64750076): Capture information necessary for dump and
* {@link #postStartActivityProcessingForLastStarter} rather than keeping the entire object
@@ -123,7 +125,15 @@ public class ActivityStartController {
return mFactory.obtain().setIntent(intent).setReason(reason);
}
void onExecutionStarted(ActivityStarter starter) {
mInExecution = true;
}
boolean isInExecution() {
return mInExecution;
}
void onExecutionComplete(ActivityStarter starter) {
mInExecution = false;
if (mLastStarter == null) {
mLastStarter = mFactory.obtain();
}

View File

@@ -633,6 +633,8 @@ class ActivityStarter {
*/
int execute() {
try {
onExecutionStarted();
// Refuse possible leaked file descriptors
if (mRequest.intent != null && mRequest.intent.hasFileDescriptors()) {
throw new IllegalArgumentException("File descriptors passed in Intent");
@@ -1247,6 +1249,10 @@ class ActivityStarter {
mController.onExecutionComplete(this);
}
private void onExecutionStarted() {
mController.onExecutionStarted(this);
}
private boolean isHomeApp(int uid, @Nullable String packageName) {
if (mService.mHomeProcess != null) {
// Fast check