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

Commit 2f12f19d authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Fix returning an occluded activity below boundary" into rvc-dev am: 9cbcb69d

Change-Id: I67d4624c1cca69fedb7f6a0ab7ae175bc50c12e5
parents bef8cbc2 9cbcb69d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -3589,7 +3589,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A

    @Override
    ActivityRecord getActivity(Predicate<ActivityRecord> callback, boolean traverseTopToBottom,
            WindowContainer boundary) {
            ActivityRecord boundary) {
        return callback.test(this) ? this : null;
    }

+3 −1
Original line number Diff line number Diff line
@@ -2708,7 +2708,9 @@ class ActivityStack extends Task {
     */
    @Nullable
    private ActivityRecord getOccludingActivityAbove(ActivityRecord activity) {
        return getActivity((ar) -> ar.occludesParent(), true /* traverseTopToBottom */, activity);
        ActivityRecord top = getActivity((ar) -> ar.occludesParent(),
                true /* traverseTopToBottom */, activity);
        return top != activity ? top : null;
    }

    boolean willActivityBeVisible(IBinder token) {
+5 −3
Original line number Diff line number Diff line
@@ -1415,11 +1415,12 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
    }

    ActivityRecord getActivity(Predicate<ActivityRecord> callback, boolean traverseTopToBottom,
            WindowContainer boundary) {
            ActivityRecord boundary) {
        if (traverseTopToBottom) {
            for (int i = mChildren.size() - 1; i >= 0; --i) {
                final WindowContainer wc = mChildren.get(i);
                if (wc == boundary) return null;
                // TODO(b/156986561): Improve the correctness of the boundary check.
                if (wc == boundary) return boundary;

                final ActivityRecord r = wc.getActivity(callback, traverseTopToBottom, boundary);
                if (r != null) {
@@ -1430,7 +1431,8 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
            final int count = mChildren.size();
            for (int i = 0; i < count; i++) {
                final WindowContainer wc = mChildren.get(i);
                if (wc == boundary) return null;
                // TODO(b/156986561): Improve the correctness of the boundary check.
                if (wc == boundary) return boundary;

                final ActivityRecord r = wc.getActivity(callback, traverseTopToBottom, boundary);
                if (r != null) {