Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2c2549c5 authored by Craig Mautner's avatar Craig Mautner
Browse files

Add event logging for tasks and stacks.

Also remove crufty write-only DisplayContent.mStackHistory.

Change-Id: I62b2b53dc02377c5d0d3b79df70b1990eed87d23
parent c481a634
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -123,6 +123,18 @@ option java_package com.android.server
# ---------------------------
# Out of memory for surfaces.
31000 wm_no_surface_memory (Window|3),(PID|1|5),(Operation|3)
# Task created.
31001 wm_task_created (TaskId|1|5),(StackId|1|5)
# Task moved to top (1) or bottom (0).
31002 wm_task_moved (TaskId|1|5),(ToTop|1),(Index|1)
# Task removed with source explanation.
31003 wm_task_removed (TaskId|1|5),(Reason|3)
# Stack created.
31004 wm_stack_created (StackId|1|5),(RelativeBoxId|1|5),(Position|1),(Weight|1|6)
# Home stack moved to top (1) or bottom (0).
31005 wm_home_stack_moved (ToTop|1)
# Stack removed.
31006 wm_stack_removed (StackId|1|5)


# ---------------------------
+7 −10
Original line number Diff line number Diff line
@@ -25,9 +25,11 @@ import android.app.ActivityManager.StackBoxInfo;
import android.graphics.Rect;
import android.graphics.Region;
import android.os.Debug;
import android.util.EventLog;
import android.util.Slog;
import android.view.Display;
import android.view.DisplayInfo;
import com.android.server.EventLogTags;

import java.io.PrintWriter;
import java.util.ArrayList;
@@ -97,9 +99,6 @@ class DisplayContent {
    /** True when the home StackBox is at the top of mStackBoxes, false otherwise. */
    private TaskStack mHomeStack = null;

    /** Sorted most recent at top, oldest at [0]. */
    ArrayList<TaskStack> mStackHistory = new ArrayList<TaskStack>();

    /** Detect user tapping outside of current focused stack bounds .*/
    StackTapPointerEventListener mTapDetector;

@@ -107,7 +106,7 @@ class DisplayContent {
    Region mTouchExcludeRegion = new Region();

    /** Save allocating when retrieving tasks */
    ArrayList<Task> mTaskHistory = new ArrayList<Task>();
    private ArrayList<Task> mTaskHistory = new ArrayList<Task>();

    /** Save allocating when calculating rects */
    Rect mTmpRect = new Rect();
@@ -160,12 +159,6 @@ class DisplayContent {
        return mStackBoxes.get(0).mStack != mHomeStack;
    }

    void moveStack(TaskStack stack, boolean toTop) {
        mStackHistory.remove(stack);
        mStackHistory.add(toTop ? mStackHistory.size() : 0, stack);
        mService.moveStackWindowsLocked(this);
    }

    public boolean isPrivate() {
        return (mDisplay.getFlags() & Display.FLAG_PRIVATE) != 0;
    }
@@ -200,6 +193,7 @@ class DisplayContent {
        }

        mTaskHistory.add(taskNdx, task);
        EventLog.writeEvent(EventLogTags.WM_TASK_MOVED, task.taskId, toTop ? 1 : 0, taskNdx);
    }

    void removeTask(Task task) {
@@ -277,6 +271,8 @@ class DisplayContent {
        if (newStack != null) {
            layoutNeeded = true;
        }
        EventLog.writeEvent(EventLogTags.WM_STACK_CREATED, stackId, relativeStackBoxId, position,
                (int)(weight * 100 + 0.5));
        return newStack;
    }

@@ -345,6 +341,7 @@ class DisplayContent {
    boolean moveHomeStackBox(boolean toTop) {
        if (DEBUG_STACK) Slog.d(TAG, "moveHomeStackBox: toTop=" + toTop + " Callers=" +
                Debug.getCallers(4));
        EventLog.writeEvent(EventLogTags.WM_HOME_STACK_MOVED, toTop ? 1 : 0);
        switch (mStackBoxes.size()) {
            case 0: throw new RuntimeException("moveHomeStackBox: No home StackBox!");
            case 1: return false; // Only the home StackBox exists.
+0 −4
Original line number Diff line number Diff line
@@ -243,10 +243,6 @@ public class StackBox {
    /** Remove this box and propagate its sibling's content up to their parent.
     * @return The first stackId of the resulting StackBox. */
    int remove() {
        if (mStack != null) {
            if (DEBUG_STACK) Slog.i(TAG, "StackBox.remove: removing stackId=" + mStack.mStackId);
            mDisplayContent.mStackHistory.remove(mStack);
        }
        mDisplayContent.layoutNeeded = true;

        if (mParent == null) {
+5 −0
Original line number Diff line number Diff line
@@ -16,6 +16,9 @@

package com.android.server.wm;

import android.util.EventLog;
import com.android.server.EventLogTags;

class Task {
//    private final String TAG = "TaskGroup";
    TaskStack mStack;
@@ -41,6 +44,8 @@ class Task {
    boolean removeAppToken(AppWindowToken wtoken) {
        mAppTokens.remove(wtoken);
        if (mAppTokens.size() == 0) {
            EventLog.writeEvent(com.android.server.EventLogTags.WM_TASK_REMOVED, taskId,
                    "removeAppToken: last token");
            mStack.removeTask(this);
            return true;
        }
+4 −2
Original line number Diff line number Diff line
@@ -21,8 +21,10 @@ import static com.android.server.wm.WindowManagerService.TAG;

import android.graphics.Rect;
import android.os.Debug;
import android.util.EventLog;
import android.util.Slog;
import android.util.TypedValue;
import com.android.server.EventLogTags;

import static com.android.server.am.ActivityStackSupervisor.HOME_STACK_ID;

@@ -45,7 +47,7 @@ public class TaskStack {

    /** The Tasks that define this stack. Oldest Tasks are at the bottom. The ordering must match
     * mTaskHistory in the ActivityStack with the same mStackId */
    private ArrayList<Task> mTasks = new ArrayList<Task>();
    private final ArrayList<Task> mTasks = new ArrayList<Task>();

    /** The StackBox this sits in. */
    StackBox mStackBox;
@@ -70,7 +72,6 @@ public class TaskStack {
        mService = service;
        mStackId = stackId;
        mDisplayContent = displayContent;
        final int displayId = displayContent.getDisplayId();
        mDimLayer = new DimLayer(service, this);
        mAnimationBackgroundSurface = new DimLayer(service, this);
    }
@@ -152,6 +153,7 @@ public class TaskStack {
    int remove() {
        mAnimationBackgroundSurface.destroySurface();
        mDimLayer.destroySurface();
        EventLog.writeEvent(EventLogTags.WM_STACK_REMOVED, mStackId);
        return mStackBox.remove();
    }

Loading