Batch updating visibility in TaskDisplayArea

The lockscreen state could be updated too early while ensuring pinned
stack visibilities, so sleep token was applied and made the activities
to STOPPED state.

Test: manual
Bug: 159623845
Change-Id: I62d72b93cd529b5a3c3fb22292d888ff0038179f
This commit is contained in:
Issei Suzuki
2020-06-29 12:20:41 +02:00
parent f629b618a4
commit 7563f05e57

View File

@@ -1746,10 +1746,15 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> {
void ensureActivitiesVisible(ActivityRecord starting, int configChanges,
boolean preserveWindows, boolean notifyClients) {
for (int stackNdx = getStackCount() - 1; stackNdx >= 0; --stackNdx) {
final ActivityStack stack = getStackAt(stackNdx);
stack.ensureActivitiesVisible(starting, configChanges, preserveWindows,
notifyClients);
mAtmService.mStackSupervisor.beginActivityVisibilityUpdate();
try {
for (int stackNdx = getStackCount() - 1; stackNdx >= 0; --stackNdx) {
final ActivityStack stack = getStackAt(stackNdx);
stack.ensureActivitiesVisible(starting, configChanges, preserveWindows,
notifyClients);
}
} finally {
mAtmService.mStackSupervisor.endActivityVisibilityUpdate();
}
}