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

Commit 629a644e authored by Louis Chang's avatar Louis Chang Committed by Automerger Merge Worker
Browse files

Merge "Reset top focused root task when task hidden" into sc-dev am: 0b4057f0

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13636823

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I3092dfb19b3bf442129e3477e40cfea3192903ce
parents 88f57870 0b4057f0
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -5373,11 +5373,11 @@ class Task extends WindowContainer<WindowContainer> {
        }
        }
        final boolean wasHidden = isForceHidden();
        final boolean wasHidden = isForceHidden();
        mForceHiddenFlags = newFlags;
        mForceHiddenFlags = newFlags;
        if (wasHidden && isFocusableAndVisible()) {
        if (wasHidden != isForceHidden() && isTopActivityFocusable()) {
            // The change in force-hidden state will change visibility without triggering a root
            // The change in force-hidden state will change visibility without triggering a root
            // task order change, so we should reset the preferred top focusable root task to ensure
            // task order change, so we should reset the preferred top focusable root task to ensure
            // it's not used if a new activity is started from this task.
            // it's not used if a new activity is started from this task.
            getDisplayArea().resetPreferredTopFocusableRootTaskIfBelow(this);
            getDisplayArea().resetPreferredTopFocusableRootTaskIfNeeded(this);
        }
        }
        return true;
        return true;
    }
    }
+3 −2
Original line number Original line Diff line number Diff line
@@ -974,9 +974,10 @@ final class TaskDisplayArea extends DisplayArea<WindowContainer> {
        onRootTaskOrderChanged(rootTask);
        onRootTaskOrderChanged(rootTask);
    }
    }


    void resetPreferredTopFocusableRootTaskIfBelow(Task task) {
    /** Reset the mPreferredTopFocusableRootTask if it is or below the given task. */
    void resetPreferredTopFocusableRootTaskIfNeeded(Task task) {
        if (mPreferredTopFocusableRootTask != null
        if (mPreferredTopFocusableRootTask != null
                && mPreferredTopFocusableRootTask.compareTo(task) < 0) {
                && mPreferredTopFocusableRootTask.compareTo(task) <= 0) {
            mPreferredTopFocusableRootTask = null;
            mPreferredTopFocusableRootTask = null;
        }
        }
    }
    }