Adding flags to filter dumping of activities.
- To make it consistent with other dump calls, by default dumping
'activity all' or 'activity <activity>' will now dump it if it exists
even if it is not in a visible stack. If -v is specified, only
activities in visible stacks will be dumped, and if -f is specified
then only activities in the focused stack will be dumped.
Bug: 35850518
Test: adb shell dumpsys activity <package> and ensure it runs in the background
Change-Id: Ib8284aedce8073e2a30023a7cd925c6c525817c8
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index ab1559d..d3ad057 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -3521,22 +3521,24 @@
* Dumps the activities matching the given {@param name} in the either the focused stack
* or all visible stacks if {@param dumpVisibleStacks} is true.
*/
- ArrayList<ActivityRecord> getDumpActivitiesLocked(String name, boolean dumpVisibleStacks) {
- if (dumpVisibleStacks) {
+ ArrayList<ActivityRecord> getDumpActivitiesLocked(String name, boolean dumpVisibleStacksOnly,
+ boolean dumpFocusedStackOnly) {
+ if (dumpFocusedStackOnly) {
+ return mFocusedStack.getDumpActivitiesLocked(name);
+ } else {
ArrayList<ActivityRecord> activities = new ArrayList<>();
int numDisplays = mActivityDisplays.size();
for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
ActivityStack stack = stacks.get(stackNdx);
- if (stack.getStackVisibilityLocked(null) == STACK_VISIBLE) {
+ if (!dumpVisibleStacksOnly ||
+ stack.getStackVisibilityLocked(null) == STACK_VISIBLE) {
activities.addAll(stack.getDumpActivitiesLocked(name));
}
}
}
return activities;
- } else {
- return mFocusedStack.getDumpActivitiesLocked(name);
}
}