Loading services/core/java/com/android/server/wm/ActivityStartController.java +27 −7 Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ import com.android.server.wm.ActivityStarter.DefaultFactory; import com.android.server.wm.ActivityStarter.Factory; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; /** Loading Loading @@ -97,6 +98,9 @@ public class ActivityStartController { /** Whether an {@link ActivityStarter} is currently executing (starting an Activity). */ private boolean mInExecution = false; /** The {@link TaskDisplayArea}s that are currently starting home activity. */ private ArrayList<TaskDisplayArea> mHomeLaunchingTaskDisplayAreas = new ArrayList<>(); /** * TODO(b/64750076): Capture information necessary for dump and * {@link #postStartActivityProcessingForLastStarter} rather than keeping the entire object Loading Loading @@ -162,6 +166,11 @@ public class ActivityStartController { void startHomeActivity(Intent intent, ActivityInfo aInfo, String reason, TaskDisplayArea taskDisplayArea) { if (mHomeLaunchingTaskDisplayAreas.contains(taskDisplayArea)) { Slog.e(TAG, "Abort starting home on " + taskDisplayArea + " recursively."); return; } final ActivityOptions options = ActivityOptions.makeBasic(); options.setLaunchWindowingMode(WINDOWING_MODE_FULLSCREEN); if (!ActivityRecord.isResolverActivity(aInfo.name)) { Loading @@ -186,6 +195,8 @@ public class ActivityStartController { mSupervisor.endDeferResume(); } try { mHomeLaunchingTaskDisplayAreas.add(taskDisplayArea); mLastHomeActivityStartResult = obtainStarter(intent, "startHomeActivity: " + reason) .setOutActivity(tmpOutRecord) .setCallingUid(0) Loading @@ -193,6 +204,9 @@ public class ActivityStartController { .setActivityOptions(options.toBundle(), Binder.getCallingPid(), Binder.getCallingUid()) .execute(); } finally { mHomeLaunchingTaskDisplayAreas.remove(taskDisplayArea); } mLastHomeActivityStartRecord = tmpOutRecord[0]; if (rootHomeTask.mInResumeTopActivity) { // If we are in resume section already, home activity will be initialized, but not Loading Loading @@ -720,6 +734,12 @@ public class ActivityStartController { } } if (!mHomeLaunchingTaskDisplayAreas.isEmpty()) { dumped = true; pw.print(prefix); pw.println("mHomeLaunchingTaskDisplayAreas:" + mHomeLaunchingTaskDisplayAreas); } if (!dumped) { pw.print(prefix); pw.println("(nothing)"); Loading Loading
services/core/java/com/android/server/wm/ActivityStartController.java +27 −7 Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ import com.android.server.wm.ActivityStarter.DefaultFactory; import com.android.server.wm.ActivityStarter.Factory; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; /** Loading Loading @@ -97,6 +98,9 @@ public class ActivityStartController { /** Whether an {@link ActivityStarter} is currently executing (starting an Activity). */ private boolean mInExecution = false; /** The {@link TaskDisplayArea}s that are currently starting home activity. */ private ArrayList<TaskDisplayArea> mHomeLaunchingTaskDisplayAreas = new ArrayList<>(); /** * TODO(b/64750076): Capture information necessary for dump and * {@link #postStartActivityProcessingForLastStarter} rather than keeping the entire object Loading Loading @@ -162,6 +166,11 @@ public class ActivityStartController { void startHomeActivity(Intent intent, ActivityInfo aInfo, String reason, TaskDisplayArea taskDisplayArea) { if (mHomeLaunchingTaskDisplayAreas.contains(taskDisplayArea)) { Slog.e(TAG, "Abort starting home on " + taskDisplayArea + " recursively."); return; } final ActivityOptions options = ActivityOptions.makeBasic(); options.setLaunchWindowingMode(WINDOWING_MODE_FULLSCREEN); if (!ActivityRecord.isResolverActivity(aInfo.name)) { Loading @@ -186,6 +195,8 @@ public class ActivityStartController { mSupervisor.endDeferResume(); } try { mHomeLaunchingTaskDisplayAreas.add(taskDisplayArea); mLastHomeActivityStartResult = obtainStarter(intent, "startHomeActivity: " + reason) .setOutActivity(tmpOutRecord) .setCallingUid(0) Loading @@ -193,6 +204,9 @@ public class ActivityStartController { .setActivityOptions(options.toBundle(), Binder.getCallingPid(), Binder.getCallingUid()) .execute(); } finally { mHomeLaunchingTaskDisplayAreas.remove(taskDisplayArea); } mLastHomeActivityStartRecord = tmpOutRecord[0]; if (rootHomeTask.mInResumeTopActivity) { // If we are in resume section already, home activity will be initialized, but not Loading Loading @@ -720,6 +734,12 @@ public class ActivityStartController { } } if (!mHomeLaunchingTaskDisplayAreas.isEmpty()) { dumped = true; pw.print(prefix); pw.println("mHomeLaunchingTaskDisplayAreas:" + mHomeLaunchingTaskDisplayAreas); } if (!dumped) { pw.print(prefix); pw.println("(nothing)"); Loading