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

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

DO NOT MERGE Reset top focused root task when task hidden am: 78a9f282

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

Change-Id: I043dd659efd942aa19e6f6264294b8280e4da3e8
parents 9f04baf3 78a9f282
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -4597,11 +4597,11 @@ class Task extends WindowContainer<WindowContainer> {
        }
        final boolean wasHidden = isForceHidden();
        mForceHiddenFlags = newFlags;
        if (wasHidden && isFocusableAndVisible()) {
            // The change in force-hidden state will change visibility without triggering a stack
            // order change, so we should reset the preferred top focusable stack to ensure it's not
            // used if a new activity is started from this task.
            getDisplayArea().resetPreferredTopFocusableStackIfBelow(this);
        if (wasHidden != isForceHidden() && isTopActivityFocusable()) {
            // 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
            // it's not used if a new activity is started from this task.
            getDisplayArea().resetPreferredTopFocusableRootTaskIfNeeded(this);
        }
        return true;
    }
+3 −2
Original line number Diff line number Diff line
@@ -773,9 +773,10 @@ final class TaskDisplayArea extends DisplayArea<ActivityStack> {
        onStackOrderChanged(stack);
    }

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