Loading services/java/com/android/server/am/ActivityRecord.java +5 −6 Original line number Diff line number Diff line Loading @@ -946,20 +946,19 @@ final class ActivityRecord { } } @Override public String toString() { if (stringName != null) { return stringName; return stringName + " t" + task.taskId + "}"; } StringBuilder sb = new StringBuilder(128); sb.append("ActivityRecord{"); sb.append(Integer.toHexString(System.identityHashCode(this))); sb.append(" t"); sb.append(task.taskId); sb.append(" u"); sb.append(userId); sb.append(' '); sb.append(intent.getComponent().flattenToShortString()); sb.append('}'); return stringName = sb.toString(); stringName = sb.toString(); return toString(); } } services/java/com/android/server/wm/DisplayContent.java +15 −102 Original line number Diff line number Diff line Loading @@ -16,17 +16,12 @@ package com.android.server.wm; import static com.android.server.wm.WindowManagerService.FORWARD_ITERATOR; import static com.android.server.wm.WindowManagerService.REVERSE_ITERATOR; import android.util.SparseArray; import android.view.Display; import android.view.DisplayInfo; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Iterator; import java.util.NoSuchElementException; class DisplayContentList extends ArrayList<DisplayContent> { } Loading Loading @@ -91,8 +86,6 @@ class DisplayContent { ArrayList<TaskList> mTaskLists = new ArrayList<TaskList>(); SparseArray<TaskList> mTaskIdToTaskList = new SparseArray<TaskList>(); private final AppTokenIterator mTmpAppIterator = new AppTokenIterator(); /** * @param display May not be null. */ Loading Loading @@ -174,94 +167,12 @@ class DisplayContent { wtoken.groupId = newTaskId; } /** * Return the utility iterator so we don't have to construct new iterators every time we * iterate. * NOTE: Do not ever nest this call or you will have a bad time! * @param reverse Direction of iterator. * @return The utility iterator. */ AppTokenIterator getTmpAppIterator(boolean reverse) { mTmpAppIterator.reset(reverse); return mTmpAppIterator; } class AppTokenIterator implements Iterator<AppWindowToken> { boolean mReverse; int mTasksNdx; int mActivityNdx; TaskList mTaskList; public AppTokenIterator() { this(FORWARD_ITERATOR); } public AppTokenIterator(boolean reverse) { reset(reverse); } void reset(boolean reverse) { mReverse = reverse; mTasksNdx = reverse ? mTaskLists.size() - 1 : 0; getNextTaskList(); } private void getNextTaskList() { if (mReverse) { if (mTasksNdx >= 0) { mTaskList = mTaskLists.get(mTasksNdx); --mTasksNdx; mActivityNdx = mTaskList.mAppTokens.size() - 1; } } else { if (mTasksNdx < mTaskLists.size()) { mTaskList = mTaskLists.get(mTasksNdx); ++mTasksNdx; mActivityNdx = 0; } } } @Override public boolean hasNext() { if (mTaskList == null) { return false; } if (mReverse) { return mActivityNdx >= 0; } return mActivityNdx < mTaskList.mAppTokens.size(); } @Override public AppWindowToken next() { if (hasNext()) { AppWindowToken wtoken = mTaskList.mAppTokens.get(mActivityNdx); mActivityNdx += mReverse ? -1 : 1; if (!hasNext()) { getNextTaskList(); } return wtoken; } throw new NoSuchElementException(); } @Override public void remove() { throw new IllegalArgumentException(); } int size() { int size = 0; for (int i = mTaskLists.size() - 1; i >= 0; --i) { size += mTaskLists.get(i).mAppTokens.size(); } return size; } @Override public String toString() { return mTaskLists.toString(); int numTokens() { int count = 0; for (int taskNdx = mTaskLists.size() - 1; taskNdx >= 0; --taskNdx) { count += mTaskLists.get(taskNdx).mAppTokens.size(); } return count; } public void dump(String prefix, PrintWriter pw) { Loading @@ -288,18 +199,20 @@ class DisplayContent { pw.print("-"); pw.print(mDisplayInfo.largestNominalAppWidth); pw.print("x"); pw.println(mDisplayInfo.largestNominalAppHeight); pw.print(subPrefix); pw.print("layoutNeeded="); pw.println(layoutNeeded); AppTokenIterator iterator = getTmpAppIterator(REVERSE_ITERATOR); int ndx = iterator.size() - 1; if (ndx >= 0) { int ndx = numTokens(); if (ndx > 0) { pw.println(); pw.println(" Application tokens in Z order:"); while (iterator.hasNext()) { AppWindowToken wtoken = iterator.next(); for (int taskNdx = mTaskLists.size() - 1; taskNdx >= 0; --taskNdx) { AppTokenList tokens = mTaskLists.get(taskNdx).mAppTokens; for (int tokenNdx = tokens.size() - 1; tokenNdx >= 0; --tokenNdx) { final AppWindowToken wtoken = tokens.get(tokenNdx); pw.print(" App #"); pw.print(ndx--); pw.print(' '); pw.print(wtoken); pw.println(":"); wtoken.dump(pw, " "); } } } if (mExitingTokens.size() > 0) { pw.println(); pw.println(" Exiting tokens:"); Loading services/java/com/android/server/wm/WindowAnimator.java +52 −47 Original line number Diff line number Diff line Loading @@ -10,8 +10,6 @@ import static com.android.server.wm.WindowManagerService.LayoutFields.SET_WALLPA import static com.android.server.wm.WindowManagerService.LayoutFields.SET_FORCE_HIDING_CHANGED; import static com.android.server.wm.WindowManagerService.LayoutFields.SET_ORIENTATION_CHANGE_COMPLETE; import static com.android.server.wm.WindowManagerService.LayoutFields.SET_WALLPAPER_ACTION_PENDING; import static com.android.server.wm.WindowManagerService.FORWARD_ITERATOR; import static com.android.server.wm.WindowManagerService.REVERSE_ITERATOR; import android.content.Context; import android.os.Debug; Loading @@ -23,12 +21,10 @@ import android.util.SparseIntArray; import android.util.TimeUtils; import android.util.TypedValue; import android.view.Display; import android.view.Surface; import android.view.SurfaceControl; import android.view.WindowManagerPolicy; import android.view.animation.Animation; import com.android.server.wm.DisplayContent.AppTokenIterator; import com.android.server.wm.WindowManagerService.DisplayContentsIterator; import com.android.server.wm.WindowManagerService.LayoutFields; Loading Loading @@ -178,9 +174,13 @@ public class WindowAnimator { private void updateAppWindowsLocked(int displayId) { int i; final DisplayContent displayContent = mService.getDisplayContentLocked(displayId); AppTokenIterator iterator = displayContent.getTmpAppIterator(FORWARD_ITERATOR); while (iterator.hasNext()) { final AppWindowAnimator appAnimator = iterator.next().mAppAnimator; final ArrayList<TaskList> tasks = displayContent.mTaskLists; final int numTasks = tasks.size(); for (int taskNdx = 0; taskNdx < numTasks; ++taskNdx) { final AppTokenList tokens = tasks.get(taskNdx).mAppTokens; final int numTokens = tokens.size(); for (int tokenNdx = 0; tokenNdx < numTokens; ++tokenNdx) { final AppWindowAnimator appAnimator = tokens.get(tokenNdx).mAppAnimator; final boolean wasAnimating = appAnimator.animation != null && appAnimator.animation != AppWindowAnimator.sDummyAnimation; if (appAnimator.stepAnimationLocked(mCurrentTime)) { Loading @@ -193,6 +193,7 @@ public class WindowAnimator { "updateWindowsApps...: done animating " + appAnimator.mAppToken); } } } final AppTokenList exitingAppTokens = displayContent.mExitingAppTokens; final int NEAT = exitingAppTokens.size(); Loading Loading @@ -461,10 +462,13 @@ public class WindowAnimator { private void testTokenMayBeDrawnLocked(int displayId) { // See if any windows have been drawn, so they (and others // associated with them) can now be shown. AppTokenIterator iterator = mService.getDisplayContentLocked(displayId).getTmpAppIterator(FORWARD_ITERATOR); while (iterator.hasNext()) { AppWindowToken wtoken = iterator.next(); final ArrayList<TaskList> tasks = mService.getDisplayContentLocked(displayId).mTaskLists; final int numTasks = tasks.size(); for (int taskNdx = 0; taskNdx < numTasks; ++taskNdx) { final AppTokenList tokens = tasks.get(taskNdx).mAppTokens; final int numTokens = tokens.size(); for (int tokenNdx = 0; tokenNdx < numTokens; ++tokenNdx) { final AppWindowToken wtoken = tokens.get(tokenNdx); AppWindowAnimator appAnimator = wtoken.mAppAnimator; final boolean allDrawn = wtoken.allDrawn; if (allDrawn != appAnimator.allDrawn) { Loading Loading @@ -497,6 +501,7 @@ public class WindowAnimator { } } } } private void performAnimationsLocked(final int displayId) { updateWindowsLocked(displayId); Loading services/java/com/android/server/wm/WindowManagerService.java +247 −167 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
services/java/com/android/server/am/ActivityRecord.java +5 −6 Original line number Diff line number Diff line Loading @@ -946,20 +946,19 @@ final class ActivityRecord { } } @Override public String toString() { if (stringName != null) { return stringName; return stringName + " t" + task.taskId + "}"; } StringBuilder sb = new StringBuilder(128); sb.append("ActivityRecord{"); sb.append(Integer.toHexString(System.identityHashCode(this))); sb.append(" t"); sb.append(task.taskId); sb.append(" u"); sb.append(userId); sb.append(' '); sb.append(intent.getComponent().flattenToShortString()); sb.append('}'); return stringName = sb.toString(); stringName = sb.toString(); return toString(); } }
services/java/com/android/server/wm/DisplayContent.java +15 −102 Original line number Diff line number Diff line Loading @@ -16,17 +16,12 @@ package com.android.server.wm; import static com.android.server.wm.WindowManagerService.FORWARD_ITERATOR; import static com.android.server.wm.WindowManagerService.REVERSE_ITERATOR; import android.util.SparseArray; import android.view.Display; import android.view.DisplayInfo; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Iterator; import java.util.NoSuchElementException; class DisplayContentList extends ArrayList<DisplayContent> { } Loading Loading @@ -91,8 +86,6 @@ class DisplayContent { ArrayList<TaskList> mTaskLists = new ArrayList<TaskList>(); SparseArray<TaskList> mTaskIdToTaskList = new SparseArray<TaskList>(); private final AppTokenIterator mTmpAppIterator = new AppTokenIterator(); /** * @param display May not be null. */ Loading Loading @@ -174,94 +167,12 @@ class DisplayContent { wtoken.groupId = newTaskId; } /** * Return the utility iterator so we don't have to construct new iterators every time we * iterate. * NOTE: Do not ever nest this call or you will have a bad time! * @param reverse Direction of iterator. * @return The utility iterator. */ AppTokenIterator getTmpAppIterator(boolean reverse) { mTmpAppIterator.reset(reverse); return mTmpAppIterator; } class AppTokenIterator implements Iterator<AppWindowToken> { boolean mReverse; int mTasksNdx; int mActivityNdx; TaskList mTaskList; public AppTokenIterator() { this(FORWARD_ITERATOR); } public AppTokenIterator(boolean reverse) { reset(reverse); } void reset(boolean reverse) { mReverse = reverse; mTasksNdx = reverse ? mTaskLists.size() - 1 : 0; getNextTaskList(); } private void getNextTaskList() { if (mReverse) { if (mTasksNdx >= 0) { mTaskList = mTaskLists.get(mTasksNdx); --mTasksNdx; mActivityNdx = mTaskList.mAppTokens.size() - 1; } } else { if (mTasksNdx < mTaskLists.size()) { mTaskList = mTaskLists.get(mTasksNdx); ++mTasksNdx; mActivityNdx = 0; } } } @Override public boolean hasNext() { if (mTaskList == null) { return false; } if (mReverse) { return mActivityNdx >= 0; } return mActivityNdx < mTaskList.mAppTokens.size(); } @Override public AppWindowToken next() { if (hasNext()) { AppWindowToken wtoken = mTaskList.mAppTokens.get(mActivityNdx); mActivityNdx += mReverse ? -1 : 1; if (!hasNext()) { getNextTaskList(); } return wtoken; } throw new NoSuchElementException(); } @Override public void remove() { throw new IllegalArgumentException(); } int size() { int size = 0; for (int i = mTaskLists.size() - 1; i >= 0; --i) { size += mTaskLists.get(i).mAppTokens.size(); } return size; } @Override public String toString() { return mTaskLists.toString(); int numTokens() { int count = 0; for (int taskNdx = mTaskLists.size() - 1; taskNdx >= 0; --taskNdx) { count += mTaskLists.get(taskNdx).mAppTokens.size(); } return count; } public void dump(String prefix, PrintWriter pw) { Loading @@ -288,18 +199,20 @@ class DisplayContent { pw.print("-"); pw.print(mDisplayInfo.largestNominalAppWidth); pw.print("x"); pw.println(mDisplayInfo.largestNominalAppHeight); pw.print(subPrefix); pw.print("layoutNeeded="); pw.println(layoutNeeded); AppTokenIterator iterator = getTmpAppIterator(REVERSE_ITERATOR); int ndx = iterator.size() - 1; if (ndx >= 0) { int ndx = numTokens(); if (ndx > 0) { pw.println(); pw.println(" Application tokens in Z order:"); while (iterator.hasNext()) { AppWindowToken wtoken = iterator.next(); for (int taskNdx = mTaskLists.size() - 1; taskNdx >= 0; --taskNdx) { AppTokenList tokens = mTaskLists.get(taskNdx).mAppTokens; for (int tokenNdx = tokens.size() - 1; tokenNdx >= 0; --tokenNdx) { final AppWindowToken wtoken = tokens.get(tokenNdx); pw.print(" App #"); pw.print(ndx--); pw.print(' '); pw.print(wtoken); pw.println(":"); wtoken.dump(pw, " "); } } } if (mExitingTokens.size() > 0) { pw.println(); pw.println(" Exiting tokens:"); Loading
services/java/com/android/server/wm/WindowAnimator.java +52 −47 Original line number Diff line number Diff line Loading @@ -10,8 +10,6 @@ import static com.android.server.wm.WindowManagerService.LayoutFields.SET_WALLPA import static com.android.server.wm.WindowManagerService.LayoutFields.SET_FORCE_HIDING_CHANGED; import static com.android.server.wm.WindowManagerService.LayoutFields.SET_ORIENTATION_CHANGE_COMPLETE; import static com.android.server.wm.WindowManagerService.LayoutFields.SET_WALLPAPER_ACTION_PENDING; import static com.android.server.wm.WindowManagerService.FORWARD_ITERATOR; import static com.android.server.wm.WindowManagerService.REVERSE_ITERATOR; import android.content.Context; import android.os.Debug; Loading @@ -23,12 +21,10 @@ import android.util.SparseIntArray; import android.util.TimeUtils; import android.util.TypedValue; import android.view.Display; import android.view.Surface; import android.view.SurfaceControl; import android.view.WindowManagerPolicy; import android.view.animation.Animation; import com.android.server.wm.DisplayContent.AppTokenIterator; import com.android.server.wm.WindowManagerService.DisplayContentsIterator; import com.android.server.wm.WindowManagerService.LayoutFields; Loading Loading @@ -178,9 +174,13 @@ public class WindowAnimator { private void updateAppWindowsLocked(int displayId) { int i; final DisplayContent displayContent = mService.getDisplayContentLocked(displayId); AppTokenIterator iterator = displayContent.getTmpAppIterator(FORWARD_ITERATOR); while (iterator.hasNext()) { final AppWindowAnimator appAnimator = iterator.next().mAppAnimator; final ArrayList<TaskList> tasks = displayContent.mTaskLists; final int numTasks = tasks.size(); for (int taskNdx = 0; taskNdx < numTasks; ++taskNdx) { final AppTokenList tokens = tasks.get(taskNdx).mAppTokens; final int numTokens = tokens.size(); for (int tokenNdx = 0; tokenNdx < numTokens; ++tokenNdx) { final AppWindowAnimator appAnimator = tokens.get(tokenNdx).mAppAnimator; final boolean wasAnimating = appAnimator.animation != null && appAnimator.animation != AppWindowAnimator.sDummyAnimation; if (appAnimator.stepAnimationLocked(mCurrentTime)) { Loading @@ -193,6 +193,7 @@ public class WindowAnimator { "updateWindowsApps...: done animating " + appAnimator.mAppToken); } } } final AppTokenList exitingAppTokens = displayContent.mExitingAppTokens; final int NEAT = exitingAppTokens.size(); Loading Loading @@ -461,10 +462,13 @@ public class WindowAnimator { private void testTokenMayBeDrawnLocked(int displayId) { // See if any windows have been drawn, so they (and others // associated with them) can now be shown. AppTokenIterator iterator = mService.getDisplayContentLocked(displayId).getTmpAppIterator(FORWARD_ITERATOR); while (iterator.hasNext()) { AppWindowToken wtoken = iterator.next(); final ArrayList<TaskList> tasks = mService.getDisplayContentLocked(displayId).mTaskLists; final int numTasks = tasks.size(); for (int taskNdx = 0; taskNdx < numTasks; ++taskNdx) { final AppTokenList tokens = tasks.get(taskNdx).mAppTokens; final int numTokens = tokens.size(); for (int tokenNdx = 0; tokenNdx < numTokens; ++tokenNdx) { final AppWindowToken wtoken = tokens.get(tokenNdx); AppWindowAnimator appAnimator = wtoken.mAppAnimator; final boolean allDrawn = wtoken.allDrawn; if (allDrawn != appAnimator.allDrawn) { Loading Loading @@ -497,6 +501,7 @@ public class WindowAnimator { } } } } private void performAnimationsLocked(final int displayId) { updateWindowsLocked(displayId); Loading
services/java/com/android/server/wm/WindowManagerService.java +247 −167 File changed.Preview size limit exceeded, changes collapsed. Show changes