Fix stack visibility evaluation
Stack visibility is evaluated based on its position in stack list. In this case we care only about stacks on the same display. Test: ActivityManagerDisplayTests Test: #testLaunchActivitiesAffectsVisibility Change-Id: Ide42e8b5e240bd61c33cc2d4715e44fc9a940952
This commit is contained in:
@@ -1471,7 +1471,7 @@ final class ActivityStack extends ConfigurationContainer {
|
||||
return STACK_INVISIBLE;
|
||||
}
|
||||
|
||||
if (mStackSupervisor.isFrontStack(this) || mStackSupervisor.isFocusedStack(this)) {
|
||||
if (mStackSupervisor.isFrontStackOnDisplay(this) || mStackSupervisor.isFocusedStack(this)) {
|
||||
return STACK_VISIBLE;
|
||||
}
|
||||
|
||||
|
||||
@@ -612,6 +612,15 @@ public class ActivityStackSupervisor extends ConfigurationContainer
|
||||
|
||||
/** The top most stack. */
|
||||
boolean isFrontStack(ActivityStack stack) {
|
||||
return isFrontOfStackList(stack, mHomeStack.mStacks);
|
||||
}
|
||||
|
||||
/** The top most stack on its display. */
|
||||
boolean isFrontStackOnDisplay(ActivityStack stack) {
|
||||
return isFrontOfStackList(stack, stack.mActivityContainer.mActivityDisplay.mStacks);
|
||||
}
|
||||
|
||||
private boolean isFrontOfStackList(ActivityStack stack, List<ActivityStack> stackList) {
|
||||
if (stack == null) {
|
||||
return false;
|
||||
}
|
||||
@@ -620,7 +629,7 @@ public class ActivityStackSupervisor extends ConfigurationContainer
|
||||
if (parent != null) {
|
||||
stack = parent.getStack();
|
||||
}
|
||||
return stack == mHomeStack.mStacks.get((mHomeStack.mStacks.size() - 1));
|
||||
return stack == stackList.get((stackList.size() - 1));
|
||||
}
|
||||
|
||||
/** NOTE: Should only be called from {@link ActivityStack#moveToFront} */
|
||||
|
||||
Reference in New Issue
Block a user