Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e8d928a6 authored by Andrii Kulian's avatar Andrii Kulian
Browse files

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
parent a92257ed
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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;
        }

+10 −1
Original line number Diff line number Diff line
@@ -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} */