Loading services/core/java/com/android/server/wm/AppWindowToken.java +9 −0 Original line number Original line Diff line number Diff line Loading @@ -252,6 +252,15 @@ class AppWindowToken extends WindowToken { return false; return false; } } void removeAllWindows() { for (int winNdx = allAppWindows.size() - 1; winNdx >= 0; --winNdx) { WindowState win = allAppWindows.get(winNdx); if (WindowManagerService.DEBUG_WINDOW_MOVEMENT) Slog.w(WindowManagerService.TAG, "removeAllWindows: removing win=" + win); win.mService.removeWindowLocked(win.mSession, win); } } @Override @Override void dump(PrintWriter pw, String prefix) { void dump(PrintWriter pw, String prefix) { super.dump(pw, prefix); super.dump(pw, prefix); Loading services/core/java/com/android/server/wm/TaskStack.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -155,7 +155,7 @@ public class TaskStack { final ArrayList<WindowState> windows = activities.get(activityNdx).allAppWindows; final ArrayList<WindowState> windows = activities.get(activityNdx).allAppWindows; for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) { for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) { final WindowStateAnimator winAnimator = windows.get(winNdx).mWinAnimator; final WindowStateAnimator winAnimator = windows.get(winNdx).mWinAnimator; if (winAnimator.isAnimating() && !winAnimator.isDummyAnimation()) { if (winAnimator.isAnimating() || winAnimator.mWin.mExiting) { return true; return true; } } } } Loading services/core/java/com/android/server/wm/WindowManagerService.java +3 −1 Original line number Original line Diff line number Diff line Loading @@ -3592,7 +3592,7 @@ public class WindowManagerService extends IWindowManager.Stub return; return; } } final Task oldTask = mTaskIdToTask.get(atoken.groupId); final Task oldTask = mTaskIdToTask.get(atoken.groupId); removeAppFromTaskLocked(atoken); oldTask.removeAppToken(atoken); atoken.groupId = groupId; atoken.groupId = groupId; Task newTask = mTaskIdToTask.get(groupId); Task newTask = mTaskIdToTask.get(groupId); Loading Loading @@ -4634,6 +4634,8 @@ public class WindowManagerService extends IWindowManager.Stub } } void removeAppFromTaskLocked(AppWindowToken wtoken) { void removeAppFromTaskLocked(AppWindowToken wtoken) { wtoken.removeAllWindows(); final Task task = mTaskIdToTask.get(wtoken.groupId); final Task task = mTaskIdToTask.get(wtoken.groupId); if (task != null) { if (task != null) { if (!task.removeAppToken(wtoken)) { if (!task.removeAppToken(wtoken)) { Loading Loading
services/core/java/com/android/server/wm/AppWindowToken.java +9 −0 Original line number Original line Diff line number Diff line Loading @@ -252,6 +252,15 @@ class AppWindowToken extends WindowToken { return false; return false; } } void removeAllWindows() { for (int winNdx = allAppWindows.size() - 1; winNdx >= 0; --winNdx) { WindowState win = allAppWindows.get(winNdx); if (WindowManagerService.DEBUG_WINDOW_MOVEMENT) Slog.w(WindowManagerService.TAG, "removeAllWindows: removing win=" + win); win.mService.removeWindowLocked(win.mSession, win); } } @Override @Override void dump(PrintWriter pw, String prefix) { void dump(PrintWriter pw, String prefix) { super.dump(pw, prefix); super.dump(pw, prefix); Loading
services/core/java/com/android/server/wm/TaskStack.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -155,7 +155,7 @@ public class TaskStack { final ArrayList<WindowState> windows = activities.get(activityNdx).allAppWindows; final ArrayList<WindowState> windows = activities.get(activityNdx).allAppWindows; for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) { for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) { final WindowStateAnimator winAnimator = windows.get(winNdx).mWinAnimator; final WindowStateAnimator winAnimator = windows.get(winNdx).mWinAnimator; if (winAnimator.isAnimating() && !winAnimator.isDummyAnimation()) { if (winAnimator.isAnimating() || winAnimator.mWin.mExiting) { return true; return true; } } } } Loading
services/core/java/com/android/server/wm/WindowManagerService.java +3 −1 Original line number Original line Diff line number Diff line Loading @@ -3592,7 +3592,7 @@ public class WindowManagerService extends IWindowManager.Stub return; return; } } final Task oldTask = mTaskIdToTask.get(atoken.groupId); final Task oldTask = mTaskIdToTask.get(atoken.groupId); removeAppFromTaskLocked(atoken); oldTask.removeAppToken(atoken); atoken.groupId = groupId; atoken.groupId = groupId; Task newTask = mTaskIdToTask.get(groupId); Task newTask = mTaskIdToTask.get(groupId); Loading Loading @@ -4634,6 +4634,8 @@ public class WindowManagerService extends IWindowManager.Stub } } void removeAppFromTaskLocked(AppWindowToken wtoken) { void removeAppFromTaskLocked(AppWindowToken wtoken) { wtoken.removeAllWindows(); final Task task = mTaskIdToTask.get(wtoken.groupId); final Task task = mTaskIdToTask.get(wtoken.groupId); if (task != null) { if (task != null) { if (!task.removeAppToken(wtoken)) { if (!task.removeAppToken(wtoken)) { Loading