diff options
6 files changed, 40 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java index 3f8fd73c3534..aed1d95e1ef0 100644 --- a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java @@ -2009,6 +2009,8 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { pw.println(); pw.println("ActivityStackSupervisor state:"); mRootWindowContainer.dump(pw, prefix); + getKeyguardController().dump(pw, prefix); + mService.getLockTaskController().dump(pw, prefix); pw.print(prefix); pw.println("mCurTaskIdForUser=" + mCurTaskIdForUser); pw.println(prefix + "mUserStackInFront=" + mRootWindowContainer.mUserStackInFront); @@ -2019,10 +2021,8 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { } } pw.print(prefix); pw.print("isHomeRecentsComponent="); - pw.print(mRecentTasks.isRecentsComponentHomeActivity(mRootWindowContainer.mCurrentUser)); - - getKeyguardController().dump(pw, prefix); - mService.getLockTaskController().dump(pw, prefix); + pw.println(mRecentTasks.isRecentsComponentHomeActivity(mRootWindowContainer.mCurrentUser)); + pw.println(); } static boolean printThisActivity(PrintWriter pw, ActivityRecord activity, String dumpPackage, diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index 69218164c0ad..7e999c65c010 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -4978,6 +4978,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } printedAnything = true; mStackSupervisor.dump(pw, " "); + mTaskOrganizerController.dump(pw, " "); } if (!printedAnything) { diff --git a/services/core/java/com/android/server/wm/KeyguardController.java b/services/core/java/com/android/server/wm/KeyguardController.java index c10b8a56fc47..a936e74bf694 100644 --- a/services/core/java/com/android/server/wm/KeyguardController.java +++ b/services/core/java/com/android/server/wm/KeyguardController.java @@ -565,6 +565,7 @@ class KeyguardController { dumpDisplayStates(pw, prefix); pw.println(prefix + " mDismissalRequested=" + mDismissalRequested); pw.println(prefix + " mVisibilityTransactionDepth=" + mVisibilityTransactionDepth); + pw.println(); } void dumpDebug(ProtoOutputStream proto, long fieldId) { diff --git a/services/core/java/com/android/server/wm/LockTaskController.java b/services/core/java/com/android/server/wm/LockTaskController.java index 3b25b742e327..337a68e62043 100644 --- a/services/core/java/com/android/server/wm/LockTaskController.java +++ b/services/core/java/com/android/server/wm/LockTaskController.java @@ -917,7 +917,7 @@ public class LockTaskController { } public void dump(PrintWriter pw, String prefix) { - pw.println(prefix + "LockTaskController"); + pw.println(prefix + "LockTaskController:"); prefix = prefix + " "; pw.println(prefix + "mLockTaskModeState=" + lockTaskModeToString()); pw.println(prefix + "mLockTaskModeTasks="); @@ -929,6 +929,7 @@ public class LockTaskController { pw.println(prefix + " u" + mLockTaskPackages.keyAt(i) + ":" + Arrays.toString(mLockTaskPackages.valueAt(i))); } + pw.println(); } private String lockTaskModeToString() { diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java index 342703537a32..26eb36f1341d 100644 --- a/services/core/java/com/android/server/wm/RootWindowContainer.java +++ b/services/core/java/com/android/server/wm/RootWindowContainer.java @@ -3496,6 +3496,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent> final DisplayContent display = getChildAt(i); display.dump(pw, prefix, true /* dumpAll */); } + pw.println(); } /** diff --git a/services/core/java/com/android/server/wm/TaskOrganizerController.java b/services/core/java/com/android/server/wm/TaskOrganizerController.java index 15b483cd0c49..8edcd2fb7765 100644 --- a/services/core/java/com/android/server/wm/TaskOrganizerController.java +++ b/services/core/java/com/android/server/wm/TaskOrganizerController.java @@ -32,6 +32,7 @@ import android.content.pm.ActivityInfo; import android.os.Binder; import android.os.IBinder; import android.os.RemoteException; +import android.os.UserHandle; import android.util.Slog; import android.util.SparseArray; import android.window.ITaskOrganizer; @@ -40,10 +41,12 @@ import android.window.IWindowContainer; import com.android.internal.util.ArrayUtils; +import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedList; import java.util.List; +import java.util.Set; import java.util.WeakHashMap; /** @@ -84,8 +87,9 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub { private final ITaskOrganizer mOrganizer; private final DeathRecipient mDeathRecipient; private final ArrayList<Task> mOrganizedTasks = new ArrayList<>(); + private final int mUid; - TaskOrganizerState(ITaskOrganizer organizer) { + TaskOrganizerState(ITaskOrganizer organizer, int uid) { mOrganizer = organizer; mDeathRecipient = new DeathRecipient(organizer); try { @@ -93,6 +97,7 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub { } catch (RemoteException e) { Slog.e(TAG, "TaskOrganizer failed to register death recipient"); } + mUid = uid; } void addTask(Task t) { @@ -179,6 +184,7 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub { + " windowing modes are supported for registerTaskOrganizer"); } enforceStackPermission("registerTaskOrganizer()"); + final int uid = Binder.getCallingUid(); final long origId = Binder.clearCallingIdentity(); try { synchronized (mGlobalLock) { @@ -195,7 +201,7 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub { orgs.add(organizer.asBinder()); if (!mTaskOrganizerStates.containsKey(organizer.asBinder())) { mTaskOrganizerStates.put(organizer.asBinder(), - new TaskOrganizerState(organizer)); + new TaskOrganizerState(organizer, uid)); } if (orgs.size() == 1) { @@ -466,4 +472,27 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub { Binder.restoreCallingIdentity(ident); } } + + public void dump(PrintWriter pw, String prefix) { + final String innerPrefix = prefix + " "; + pw.print(prefix); pw.println("TaskOrganizerController:"); + pw.print(innerPrefix); pw.println("Per windowing mode:"); + for (int i = 0; i < mTaskOrganizersForWindowingMode.size(); i++) { + final int windowingMode = mTaskOrganizersForWindowingMode.keyAt(i); + final List<IBinder> taskOrgs = mTaskOrganizersForWindowingMode.valueAt(i); + pw.println(innerPrefix + " " + + WindowConfiguration.windowingModeToString(windowingMode) + ":"); + for (int j = 0; j < taskOrgs.size(); j++) { + final TaskOrganizerState state = mTaskOrganizerStates.get(taskOrgs.get(j)); + final ArrayList<Task> tasks = state.mOrganizedTasks; + pw.print(innerPrefix + " "); + pw.println(state.mOrganizer + " uid=" + state.mUid + ":"); + for (int k = 0; k < tasks.size(); k++) { + pw.println(innerPrefix + " " + tasks.get(k)); + } + } + + } + pw.println(); + } } |