Deliver new activity options after the activity is made visible

The return options need to be sent in makeVisibleIfNeeded() (where app
is made visible from invisible), in addition to handleAlreadyVisible().
We can't rely on getting a second ensureActivitiesVisibleLocked to
send the activity options.

bug: 28610520
Change-Id: I38a4fd4624daecddfe9ea49c87753b04b154bb82
This commit is contained in:
Chong Zhang
2016-05-11 10:48:32 -07:00
parent 56e2aeba8f
commit 371c44222f

View File

@@ -1752,6 +1752,9 @@ final class ActivityStack {
}
} else if (r.visible) {
// If this activity is already visible, then there is nothing to do here.
if (DEBUG_VISIBILITY) Slog.v(TAG_VISIBILITY,
"Skipping: already visible at " + r);
if (handleAlreadyVisible(r)) {
resumeNextActivity = false;
}
@@ -1933,8 +1936,6 @@ final class ActivityStack {
r.sleeping = false;
r.app.pendingUiClean = true;
r.app.thread.scheduleWindowVisibility(r.appToken, true);
r.stopFreezingScreenLocked(false);
// The activity may be waiting for stop, but that is no longer
// appropriate for it.
mStackSupervisor.mStoppingActivities.remove(r);
@@ -1944,10 +1945,10 @@ final class ActivityStack {
// visible when it next restarts.
Slog.w(TAG, "Exception thrown making visibile: " + r.intent.getComponent(), e);
}
handleAlreadyVisible(r);
}
private boolean handleAlreadyVisible(ActivityRecord r) {
if (DEBUG_VISIBILITY) Slog.v(TAG_VISIBILITY, "Skipping: already visible at " + r);
r.stopFreezingScreenLocked(false);
try {
if (r.returningOptions != null) {