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

Commit 024ce628 authored by Wale Ogunwale's avatar Wale Ogunwale Committed by Android (Google) Code Review
Browse files

Merge "Added trace points for task/stack resizing."

parents c8433b60 cad05a0a
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import static android.content.Intent.FLAG_ACTIVITY_TASK_ON_HOME;
import static android.content.pm.ActivityInfo.FLAG_SHOW_FOR_ALL_USERS;
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
import static android.os.Trace.TRACE_TAG_ACTIVITY_MANAGER;
import static com.android.server.am.ActivityManagerDebugConfig.*;
import static com.android.server.am.ActivityManagerService.FIRST_SUPERVISOR_STACK_MSG;
import static com.android.server.am.ActivityRecord.HOME_ACTIVITY_TYPE;
@@ -87,6 +88,7 @@ import android.os.Process;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.SystemClock;
import android.os.Trace;
import android.os.TransactionTooLargeException;
import android.os.UserHandle;
import android.os.WorkSource;
@@ -2968,6 +2970,8 @@ public final class ActivityStackSupervisor implements DisplayListener {
            return;
        }

        Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "am.resizeStack_" + stackId);

        ActivityRecord r = stack.topRunningActivityLocked(null);

        mTmpBounds.clear();
@@ -3051,6 +3055,8 @@ public final class ActivityStackSupervisor implements DisplayListener {
                resumeTopActivitiesLocked(stack, null, null);
            }
        }

        Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
    }

    void resizeTaskLocked(TaskRecord task, Rect bounds, int resizeMode) {
@@ -3079,6 +3085,8 @@ public final class ActivityStackSupervisor implements DisplayListener {
            return;
        }

        Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "am.resizeTask_" + task.taskId);

        // The stack of a task is determined by its size (fullscreen vs non-fullscreen).
        // Place the task in the right stack if it isn't there already based on the requested
        // bounds.
@@ -3124,6 +3132,8 @@ public final class ActivityStackSupervisor implements DisplayListener {
            }
        }
        mWindowManager.resizeTask(task.taskId, bounds, task.mOverrideConfig, kept, forced);

        Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
    }

    ActivityStack createStackOnDisplay(int stackId, int displayId, boolean onTop) {
+4 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import static android.app.ActivityManager.FREEFORM_WORKSPACE_STACK_ID;
import static android.app.ActivityManager.RESIZE_MODE_FORCED;
import static android.app.ActivityManager.RESIZE_MODE_USER;
import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
import static com.android.server.wm.WindowManagerService.DEBUG_TASK_POSITIONING;
import static com.android.server.wm.WindowManagerService.SHOW_TRANSACTIONS;
import static com.android.server.wm.WindowState.MINIMUM_VISIBLE_HEIGHT_IN_DP;
@@ -33,6 +34,7 @@ import android.graphics.Rect;
import android.os.Looper;
import android.os.Process;
import android.os.RemoteException;
import android.os.Trace;
import android.util.DisplayMetrics;
import android.util.Slog;
import android.view.Choreographer;
@@ -145,10 +147,12 @@ class TaskPositioner implements DimLayer.DimLayerUser {
                        synchronized (mService.mWindowMap) {
                            mDragEnded = notifyMoveLocked(newX, newY);
                        }
                        Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "wm.TaskPositioner.resizeTask");
                        try {
                            mService.mActivityManager.resizeTask(
                                    mTask.mTaskId, mWindowDragBounds, RESIZE_MODE_USER);
                        } catch(RemoteException e) {}
                        Trace.traceEnd(Trace.TRACE_TAG_WINDOW_MANAGER);
                    } break;

                    case MotionEvent.ACTION_UP: {
+15 −9
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.server.wm;

import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
import static android.view.WindowManager.LayoutParams.FIRST_SUB_WINDOW;
import static android.view.WindowManager.LayoutParams.FLAG_DIM_BEHIND;
import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED;
@@ -38,6 +39,7 @@ import android.app.AppOpsManager;
import android.os.PowerManager;
import android.os.RemoteCallbackList;
import android.os.SystemClock;
import android.os.Trace;
import android.os.WorkSource;
import android.util.DisplayMetrics;
import android.util.TimeUtils;
@@ -1465,10 +1467,7 @@ final class WindowState implements WindowManagerPolicy.WindowState {
                // We want the tag name to be somewhat stable so that it is easier to correlate
                // in wake lock statistics.  So in particular, we don't want to include the
                // window's hash code as in toString().
                CharSequence tag = mAttrs.getTitle();
                if (tag == null) {
                    tag = mAttrs.packageName;
                }
                final CharSequence tag = getWindowTag();
                mDrawLock = mService.mPowerManager.newWakeLock(
                        PowerManager.DRAW_WAKE_LOCK, "Window:" + tag);
                mDrawLock.setReferenceCounted(false);
@@ -1605,6 +1604,7 @@ final class WindowState implements WindowManagerPolicy.WindowState {
    }

    void reportResized() {
        Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "wm.reportResized_" + getWindowTag());
        try {
            if (DEBUG_RESIZE || DEBUG_ORIENTATION) Slog.v(TAG, "Reporting new frame to " + this
                    + ": " + mCompatFrame);
@@ -1670,6 +1670,7 @@ final class WindowState implements WindowManagerPolicy.WindowState {
            mService.mPendingRemove.add(this);
            mService.mWindowPlacerLocked.requestTraversal();
        }
        Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
    }

    public void registerFocusObserver(IWindowFocusObserver observer) {
@@ -1901,15 +1902,20 @@ final class WindowState implements WindowManagerPolicy.WindowState {

    String makeInputChannelName() {
        return Integer.toHexString(System.identityHashCode(this))
            + " " + mAttrs.getTitle();
            + " " + getWindowTag();
    }

    private CharSequence getWindowTag() {
        CharSequence tag = mAttrs.getTitle();
        if (tag == null || tag.length() <= 0) {
            tag = mAttrs.packageName;
        }
        return tag;
    }

    @Override
    public String toString() {
        CharSequence title = mAttrs.getTitle();
        if (title == null || title.length() <= 0) {
            title = mAttrs.packageName;
        }
        final CharSequence title = getWindowTag();
        if (mStringNameCache == null || mLastTitle != title || mWasExiting != mExiting) {
            mLastTitle = title;
            mWasExiting = mExiting;