Ensure activity visibility gets updated before executing transition
Or the transition could be skipped since there is no opening/closing apps added for the transition. Bug: 228098490 Bug: 229038013 Test: start Settings' Search in split Change-Id: Ie9b5286ddecf7ac7964fb738b72e4bdea9893ab9
This commit is contained in:
@@ -1018,19 +1018,19 @@ class TaskFragment extends WindowContainer<WindowContainer> {
|
||||
// If the top activity is the resumed one, nothing to do.
|
||||
if (mResumedActivity == next && next.isState(RESUMED)
|
||||
&& taskDisplayArea.allResumedActivitiesComplete()) {
|
||||
// Ensure the visibility gets updated before execute app transition.
|
||||
taskDisplayArea.ensureActivitiesVisible(null /* starting */, 0 /* configChanges */,
|
||||
false /* preserveWindows */, true /* notifyClients */);
|
||||
// Make sure we have executed any pending transitions, since there
|
||||
// should be nothing left to do at this point.
|
||||
executeAppTransition(options);
|
||||
// For devices that are not in fullscreen mode (e.g. freeform windows), it's possible
|
||||
// we still want to check if the visibility of other windows have changed (e.g. bringing
|
||||
// a fullscreen window forward to cover another freeform activity.)
|
||||
if (taskDisplayArea.inMultiWindowMode()) {
|
||||
if (taskDisplayArea.mDisplayContent != null
|
||||
&& taskDisplayArea.mDisplayContent.mFocusedApp != next) {
|
||||
taskDisplayArea.mDisplayContent.setFocusedApp(next);
|
||||
}
|
||||
taskDisplayArea.ensureActivitiesVisible(null /* starting */, 0 /* configChanges */,
|
||||
false /* preserveWindows */, true /* notifyClients */);
|
||||
|
||||
// In a multi-resumed environment, like in a freeform device, the top
|
||||
// activity can be resumed, but it might not be the focused app.
|
||||
// Set focused app when top activity is resumed
|
||||
if (taskDisplayArea.inMultiWindowMode() && taskDisplayArea.mDisplayContent != null
|
||||
&& taskDisplayArea.mDisplayContent.mFocusedApp != next) {
|
||||
taskDisplayArea.mDisplayContent.setFocusedApp(next);
|
||||
}
|
||||
ProtoLog.d(WM_DEBUG_STATES, "resumeTopActivity: Top activity "
|
||||
+ "resumed %s", next);
|
||||
|
||||
Reference in New Issue
Block a user