Loading services/java/com/android/server/am/ActivityRecord.java +1 −0 Original line number Diff line number Diff line Loading @@ -471,6 +471,7 @@ final class ActivityRecord { void setTask(TaskRecord newTask, ThumbnailHolder newThumbHolder, boolean isRoot) { if (inHistory && !finishing) { if (task != null) { // TODO: If this is the last ActivityRecord in task, remove from ActivityStack. task.removeActivity(this); task.numActivities--; } Loading services/java/com/android/server/am/ActivityStack.java +263 −230 File changed.Preview size limit exceeded, changes collapsed. Show changes services/java/com/android/server/am/TaskRecord.java +15 −1 Original line number Diff line number Diff line Loading @@ -134,8 +134,22 @@ class TaskRecord extends ThumbnailHolder { // Was not previously in list. numFullscreen++; } // TODO: This only matters to achieve identical results as mHistory. Later we won't need // to skip over finishing activities. int i; for (i = mActivities.size() - 1; i >= 0; --i) { if (!mActivities.get(i).finishing) { break; } } if (i >= 0) { // Add below finishing activities. mActivities.add(i + 1, r); } else { // All activities are finishing, add to top. mActivities.add(r); } } /** @return true if this was the last activity in the task */ boolean removeActivity(ActivityRecord r) { Loading services/java/com/android/server/wm/DisplayContent.java +23 −63 Original line number Diff line number Diff line Loading @@ -19,9 +19,6 @@ 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.graphics.Rect; import android.os.Debug; import android.util.Slog; import android.util.SparseArray; import android.view.Display; import android.view.DisplayInfo; Loading Loading @@ -138,7 +135,7 @@ class DisplayContent { mTaskIdToTaskList.put(wtoken.groupId, task); mTaskLists.add(task); } else { task.mAppTokens.add(wtoken); task.mAppTokens.add(addPos, wtoken); } } Loading Loading @@ -189,55 +186,10 @@ class DisplayContent { return mTmpAppIterator; } class TaskListsIterator implements Iterator<TaskList> { private int mCur; private boolean mReverse; TaskListsIterator() { this(false); } TaskListsIterator(boolean reverse) { reset(reverse); } void reset(boolean reverse) { mReverse = reverse; mCur = reverse ? mTaskLists.size() - 1 : 0; } @Override public boolean hasNext() { if (mReverse) { return mCur >= 0; } return mCur < mTaskLists.size(); } @Override public TaskList next() { if (hasNext()) { TaskList taskList = mTaskLists.get(mCur); mCur += (mReverse ? -1 : 1); return taskList; } throw new NoSuchElementException(); } @Override public void remove() { throw new IllegalArgumentException(); } @Override public String toString() { return mTaskLists.toString(); } } class AppTokenIterator implements Iterator<AppWindowToken> { final TaskListsIterator mIterator = new TaskListsIterator(); boolean mReverse; int mCur; int mTasksNdx; int mActivityNdx; TaskList mTaskList; public AppTokenIterator() { Loading @@ -250,14 +202,23 @@ class DisplayContent { void reset(boolean reverse) { mReverse = reverse; mIterator.reset(reverse); mTasksNdx = reverse ? mTaskLists.size() - 1 : 0; getNextTaskList(); } private void getNextTaskList() { if (mIterator.hasNext()) { mTaskList = mIterator.next(); mCur = mReverse ? mTaskList.mAppTokens.size() - 1 : 0; 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; } } } Loading @@ -267,16 +228,16 @@ class DisplayContent { return false; } if (mReverse) { return mCur >= 0; return mActivityNdx >= 0; } return mCur < mTaskList.mAppTokens.size(); return mActivityNdx < mTaskList.mAppTokens.size(); } @Override public AppWindowToken next() { if (hasNext()) { AppWindowToken wtoken = mTaskList.mAppTokens.get(mCur); mCur += mReverse ? -1 : 1; AppWindowToken wtoken = mTaskList.mAppTokens.get(mActivityNdx); mActivityNdx += mReverse ? -1 : 1; if (!hasNext()) { getNextTaskList(); } Loading @@ -292,15 +253,14 @@ class DisplayContent { int size() { int size = 0; final TaskListsIterator iterator = new TaskListsIterator(); while (iterator.hasNext()) { size += iterator.next().mAppTokens.size(); for (int i = mTaskLists.size() - 1; i >= 0; --i) { size += mTaskLists.get(i).mAppTokens.size(); } return size; } @Override public String toString() { return mIterator.toString(); return mTaskLists.toString(); } } Loading services/java/com/android/server/wm/WindowManagerService.java +3 −2 Original line number Diff line number Diff line Loading @@ -3152,8 +3152,8 @@ public class WindowManagerService extends IWindowManager.Stub } if (mismatch || iterator.hasNext()) { Slog.w(TAG, "validateAppTokens: Mismatch! ActivityManager=" + tasks + " WindowManager=" + iterator); Slog.w(TAG, "validateAppTokens: Mismatch! ActivityManager=" + tasks); Slog.w(TAG, "validateAppTokens: Mismatch! WindowManager=" + iterator); } } } Loading Loading @@ -7281,6 +7281,7 @@ public class WindowManagerService extends IWindowManager.Stub performLayoutAndPlaceSurfacesLocked(); } @Override public void setOverscan(int displayId, int left, int top, int right, int bottom) { if (mContext.checkCallingOrSelfPermission( android.Manifest.permission.WRITE_SECURE_SETTINGS) != Loading Loading
services/java/com/android/server/am/ActivityRecord.java +1 −0 Original line number Diff line number Diff line Loading @@ -471,6 +471,7 @@ final class ActivityRecord { void setTask(TaskRecord newTask, ThumbnailHolder newThumbHolder, boolean isRoot) { if (inHistory && !finishing) { if (task != null) { // TODO: If this is the last ActivityRecord in task, remove from ActivityStack. task.removeActivity(this); task.numActivities--; } Loading
services/java/com/android/server/am/ActivityStack.java +263 −230 File changed.Preview size limit exceeded, changes collapsed. Show changes
services/java/com/android/server/am/TaskRecord.java +15 −1 Original line number Diff line number Diff line Loading @@ -134,8 +134,22 @@ class TaskRecord extends ThumbnailHolder { // Was not previously in list. numFullscreen++; } // TODO: This only matters to achieve identical results as mHistory. Later we won't need // to skip over finishing activities. int i; for (i = mActivities.size() - 1; i >= 0; --i) { if (!mActivities.get(i).finishing) { break; } } if (i >= 0) { // Add below finishing activities. mActivities.add(i + 1, r); } else { // All activities are finishing, add to top. mActivities.add(r); } } /** @return true if this was the last activity in the task */ boolean removeActivity(ActivityRecord r) { Loading
services/java/com/android/server/wm/DisplayContent.java +23 −63 Original line number Diff line number Diff line Loading @@ -19,9 +19,6 @@ 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.graphics.Rect; import android.os.Debug; import android.util.Slog; import android.util.SparseArray; import android.view.Display; import android.view.DisplayInfo; Loading Loading @@ -138,7 +135,7 @@ class DisplayContent { mTaskIdToTaskList.put(wtoken.groupId, task); mTaskLists.add(task); } else { task.mAppTokens.add(wtoken); task.mAppTokens.add(addPos, wtoken); } } Loading Loading @@ -189,55 +186,10 @@ class DisplayContent { return mTmpAppIterator; } class TaskListsIterator implements Iterator<TaskList> { private int mCur; private boolean mReverse; TaskListsIterator() { this(false); } TaskListsIterator(boolean reverse) { reset(reverse); } void reset(boolean reverse) { mReverse = reverse; mCur = reverse ? mTaskLists.size() - 1 : 0; } @Override public boolean hasNext() { if (mReverse) { return mCur >= 0; } return mCur < mTaskLists.size(); } @Override public TaskList next() { if (hasNext()) { TaskList taskList = mTaskLists.get(mCur); mCur += (mReverse ? -1 : 1); return taskList; } throw new NoSuchElementException(); } @Override public void remove() { throw new IllegalArgumentException(); } @Override public String toString() { return mTaskLists.toString(); } } class AppTokenIterator implements Iterator<AppWindowToken> { final TaskListsIterator mIterator = new TaskListsIterator(); boolean mReverse; int mCur; int mTasksNdx; int mActivityNdx; TaskList mTaskList; public AppTokenIterator() { Loading @@ -250,14 +202,23 @@ class DisplayContent { void reset(boolean reverse) { mReverse = reverse; mIterator.reset(reverse); mTasksNdx = reverse ? mTaskLists.size() - 1 : 0; getNextTaskList(); } private void getNextTaskList() { if (mIterator.hasNext()) { mTaskList = mIterator.next(); mCur = mReverse ? mTaskList.mAppTokens.size() - 1 : 0; 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; } } } Loading @@ -267,16 +228,16 @@ class DisplayContent { return false; } if (mReverse) { return mCur >= 0; return mActivityNdx >= 0; } return mCur < mTaskList.mAppTokens.size(); return mActivityNdx < mTaskList.mAppTokens.size(); } @Override public AppWindowToken next() { if (hasNext()) { AppWindowToken wtoken = mTaskList.mAppTokens.get(mCur); mCur += mReverse ? -1 : 1; AppWindowToken wtoken = mTaskList.mAppTokens.get(mActivityNdx); mActivityNdx += mReverse ? -1 : 1; if (!hasNext()) { getNextTaskList(); } Loading @@ -292,15 +253,14 @@ class DisplayContent { int size() { int size = 0; final TaskListsIterator iterator = new TaskListsIterator(); while (iterator.hasNext()) { size += iterator.next().mAppTokens.size(); for (int i = mTaskLists.size() - 1; i >= 0; --i) { size += mTaskLists.get(i).mAppTokens.size(); } return size; } @Override public String toString() { return mIterator.toString(); return mTaskLists.toString(); } } Loading
services/java/com/android/server/wm/WindowManagerService.java +3 −2 Original line number Diff line number Diff line Loading @@ -3152,8 +3152,8 @@ public class WindowManagerService extends IWindowManager.Stub } if (mismatch || iterator.hasNext()) { Slog.w(TAG, "validateAppTokens: Mismatch! ActivityManager=" + tasks + " WindowManager=" + iterator); Slog.w(TAG, "validateAppTokens: Mismatch! ActivityManager=" + tasks); Slog.w(TAG, "validateAppTokens: Mismatch! WindowManager=" + iterator); } } } Loading Loading @@ -7281,6 +7281,7 @@ public class WindowManagerService extends IWindowManager.Stub performLayoutAndPlaceSurfacesLocked(); } @Override public void setOverscan(int displayId, int left, int top, int right, int bottom) { if (mContext.checkCallingOrSelfPermission( android.Manifest.permission.WRITE_SECURE_SETTINGS) != Loading