Skip to content

Commit 938ff08

Browse files
Kevin MaAndroid Git Automerger
authored andcommitted
am 18037f1: Merge "Revert "Revert "DO NOT MERGE Fix race condition between binder deaths""" into klp-modular-dev
* commit '18037f14e8ee8eea7247c03a9cb27e2a8878fd05': Revert "Revert "DO NOT MERGE Fix race condition between binder deaths""
2 parents f0ebe2f + 18037f1 commit 938ff08

3 files changed

Lines changed: 13 additions & 2 deletions

File tree

services/core/java/com/android/server/wm/AppWindowToken.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,15 @@ boolean isVisible() {
245245
return false;
246246
}
247247

248+
void removeAllWindows() {
249+
for (int winNdx = allAppWindows.size() - 1; winNdx >= 0; --winNdx) {
250+
WindowState win = allAppWindows.get(winNdx);
251+
if (WindowManagerService.DEBUG_WINDOW_MOVEMENT) Slog.w(WindowManagerService.TAG,
252+
"removeAllWindows: removing win=" + win);
253+
win.mService.removeWindowLocked(win.mSession, win);
254+
}
255+
}
256+
248257
@Override
249258
void dump(PrintWriter pw, String prefix) {
250259
super.dump(pw, prefix);

services/core/java/com/android/server/wm/TaskStack.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ boolean isAnimating() {
155155
final ArrayList<WindowState> windows = activities.get(activityNdx).allAppWindows;
156156
for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) {
157157
final WindowStateAnimator winAnimator = windows.get(winNdx).mWinAnimator;
158-
if (winAnimator.isAnimating() && !winAnimator.isDummyAnimation()) {
158+
if (winAnimator.isAnimating() || winAnimator.mWin.mExiting) {
159159
return true;
160160
}
161161
}

services/core/java/com/android/server/wm/WindowManagerService.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3540,7 +3540,7 @@ public void setAppGroupId(IBinder token, int groupId) {
35403540
return;
35413541
}
35423542
final Task oldTask = mTaskIdToTask.get(atoken.groupId);
3543-
removeAppFromTaskLocked(atoken);
3543+
oldTask.removeAppToken(atoken);
35443544

35453545
atoken.groupId = groupId;
35463546
Task newTask = mTaskIdToTask.get(groupId);
@@ -4563,6 +4563,8 @@ public void stopAppFreezingScreen(IBinder token, boolean force) {
45634563
}
45644564

45654565
void removeAppFromTaskLocked(AppWindowToken wtoken) {
4566+
wtoken.removeAllWindows();
4567+
45664568
final Task task = mTaskIdToTask.get(wtoken.groupId);
45674569
if (task != null) {
45684570
if (!task.removeAppToken(wtoken)) {

0 commit comments

Comments
 (0)