Merge "Fix app transition delayed cases" into qt-dev
am: 0a71ae9536
Change-Id: I76424828d721d2f83aac3a9bb86c4251189faae2
This commit is contained in:
@@ -4089,11 +4089,14 @@ class ActivityStack extends ConfigurationContainer {
|
||||
// The activity that we are finishing may be over the lock screen. In this case, we do not
|
||||
// want to consider activities that cannot be shown on the lock screen as running and should
|
||||
// proceed with finishing the activity if there is no valid next top running activity.
|
||||
// Note that if this finishing activity is floating task, we don't need to wait the
|
||||
// next activity resume and can destroy it directly.
|
||||
final ActivityDisplay display = getDisplay();
|
||||
final ActivityRecord next = display.topRunningActivity(true /* considerKeyguardState */);
|
||||
final boolean isFloating = r.getConfiguration().windowConfiguration.tasksAreFloating();
|
||||
|
||||
if (mode == FINISH_AFTER_VISIBLE && (r.visible || r.nowVisible)
|
||||
&& next != null && !next.nowVisible) {
|
||||
&& next != null && !next.nowVisible && !isFloating) {
|
||||
if (!mStackSupervisor.mStoppingActivities.contains(r)) {
|
||||
addToStopping(r, false /* scheduleIdle */, false /* idleDelayed */);
|
||||
}
|
||||
|
||||
@@ -2861,6 +2861,13 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
|
||||
}
|
||||
mDestroying = false;
|
||||
destroyedSomething = true;
|
||||
|
||||
// Since mDestroying will affect AppWindowToken#allDrawn, we need to perform another
|
||||
// traversal in case we are waiting on this window to start the transition.
|
||||
if (getDisplayContent().mAppTransition.isTransitionSet()
|
||||
&& getDisplayContent().mOpeningApps.contains(mAppToken)) {
|
||||
mWmService.mWindowPlacerLocked.requestTraversal();
|
||||
}
|
||||
}
|
||||
|
||||
return destroyedSomething;
|
||||
|
||||
Reference in New Issue
Block a user