Fix bug on DC#ensureActivitiesVisible
There is a possibility that a certain DC does not perform ensureActivitiesVisible since exception occurs on the binder thread. If an exception occurs during its execution, the execution of the finally statement is not conducted. From this point on, the DC doesn't execute ensureActivitiesVisible forever. Bug: 291175616 Change-Id: I042c15d3836f62a6c31e22d05023f4e61fb046d2 Signed-off-by: Hyeongseop Shim <hyeongseop.shim@samsung.corp-partner.google.com>
This commit is contained in:
@@ -6302,9 +6302,9 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
|
||||
// Don't do recursive work.
|
||||
return;
|
||||
}
|
||||
mInEnsureActivitiesVisible = true;
|
||||
mAtmService.mTaskSupervisor.beginActivityVisibilityUpdate();
|
||||
try {
|
||||
mInEnsureActivitiesVisible = true;
|
||||
forAllRootTasks(rootTask -> {
|
||||
rootTask.ensureActivitiesVisible(starting, configChanges, preserveWindows,
|
||||
notifyClients);
|
||||
|
||||
@@ -1833,9 +1833,8 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
|
||||
// Don't do recursive work.
|
||||
return;
|
||||
}
|
||||
|
||||
mTaskSupervisor.beginActivityVisibilityUpdate();
|
||||
try {
|
||||
mTaskSupervisor.beginActivityVisibilityUpdate();
|
||||
// First the front root tasks. In case any are not fullscreen and are in front of home.
|
||||
for (int displayNdx = getChildCount() - 1; displayNdx >= 0; --displayNdx) {
|
||||
final DisplayContent display = getChildAt(displayNdx);
|
||||
|
||||
Reference in New Issue
Block a user