Merge "Correct activity lifecycle when forcedResize activity is finished" into nyc-dev am: 4570df8fd5

am: c46cc608bc

* commit 'c46cc608bccc91838d30332bb1134b0223536650':
  Correct activity lifecycle when forcedResize activity is finished

Change-Id: If408586d56f7d36d267f1805df4bab15af1842d6
This commit is contained in:
Wale Ogunwale
2016-05-17 18:33:17 +00:00
committed by android-build-merger
2 changed files with 10 additions and 2 deletions

View File

@@ -2017,6 +2017,9 @@ final class ActivityStack {
void cancelInitializingActivities() {
final ActivityRecord topActivity = topRunningActivityLocked();
boolean aboveTop = true;
// We don't want to clear starting window for activities that aren't behind fullscreen
// activities as we need to display their starting window until they are done initializing.
boolean behindFullscreenActivity = false;
for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) {
final ArrayList<ActivityRecord> activities = mTaskHistory.get(taskNdx).mActivities;
for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) {
@@ -2025,16 +2028,20 @@ final class ActivityStack {
if (r == topActivity) {
aboveTop = false;
}
behindFullscreenActivity |= r.fullscreen;
continue;
}
if (r.state == ActivityState.INITIALIZING
&& r.mStartingWindowState == STARTING_WINDOW_SHOWN) {
&& r.mStartingWindowState == STARTING_WINDOW_SHOWN
&& behindFullscreenActivity) {
if (DEBUG_VISIBILITY) Slog.w(TAG_VISIBILITY,
"Found orphaned starting window " + r);
r.mStartingWindowState = STARTING_WINDOW_REMOVED;
mWindowManager.removeAppStartingWindow(r.appToken);
}
behindFullscreenActivity |= r.fullscreen;
}
}
}

View File

@@ -1122,7 +1122,8 @@ class ActivityStarter {
}
final ActivityRecord topTaskActivity = mStartActivity.task.topRunningActivityLocked();
if (!mTargetStack.isFocusable()
|| (topTaskActivity != null && topTaskActivity.mTaskOverlay)) {
|| (topTaskActivity != null && topTaskActivity.mTaskOverlay
&& mStartActivity != topTaskActivity)) {
// If the activity is not focusable, we can't resume it, but still would like to
// make sure it becomes visible as it starts (this will also trigger entry
// animation). An example of this are PIP activities.