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

Commit 50166714 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:...

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

Change-Id: I416014a014c3e0561a9894540cd232dfd33f14ab
parents a3e46096 3d3135d2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -3593,7 +3593,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) {