Wait on activity brought to front for trampoline activities.

We were previously waiting on a trampoline activity to become
visible when an existing activity (when reused via intent match) was
brought to front. This will never resolve as the trampoline activity
does not become visible.

This CL identifies this situation and properly associates the wait
with the reused activity.

Change-Id: I55f47766e8cdf92e31b4ddd97864cb0f5f3b751a
Fixes: 38030545
Test: cts-tradefed run cts -m CtsServicesHostTestCases -t  android.server.cts.ActivityManagerAmStartOptionsTests#testDashW_Indirect
This commit is contained in:
Bryce Lee
2017-05-17 15:18:35 -07:00
parent ba21a120c1
commit 89cd19a4c4

View File

@@ -1050,6 +1050,15 @@ class ActivityStarter {
reusedActivity = setTargetStackAndMoveToFrontIfNeeded(reusedActivity);
final ActivityRecord outResult =
outActivity != null && outActivity.length > 0 ? outActivity[0] : null;
// When there is a reused activity and the current result is a trampoline activity,
// set the reused activity as the result.
if (outResult != null && (outResult.finishing || outResult.noDisplay)) {
outActivity[0] = reusedActivity;
}
if ((mStartFlags & START_FLAG_ONLY_IF_NEEDED) != 0) {
// We don't need to start a new activity, and the client said not to do anything
// if that is the case, so this is it! And for paranoia, make sure we have