Loading services/core/java/com/android/server/am/ActivityStackSupervisor.java +10 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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(); Loading Loading @@ -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) { Loading Loading @@ -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. Loading Loading @@ -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) { Loading services/core/java/com/android/server/wm/TaskPositioner.java +4 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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: { Loading services/core/java/com/android/server/wm/WindowState.java +15 −9 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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); Loading Loading @@ -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) { Loading Loading @@ -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; Loading Loading
services/core/java/com/android/server/am/ActivityStackSupervisor.java +10 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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(); Loading Loading @@ -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) { Loading Loading @@ -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. Loading Loading @@ -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) { Loading
services/core/java/com/android/server/wm/TaskPositioner.java +4 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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: { Loading
services/core/java/com/android/server/wm/WindowState.java +15 −9 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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); Loading Loading @@ -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) { Loading Loading @@ -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; Loading