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

Commit a782799b authored by Louis Chang's avatar Louis Chang
Browse files

Reset top focused root task when task hidden

The focused app was not updated when bubble minimized and causing
ANR.

Bug: 179676966
Test: expand and minimize bubbles
Change-Id: If04de21b954d074b045e76d7d23e02dade60cdbe
parent a0656967
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -5373,11 +5373,11 @@ class Task extends WindowContainer<WindowContainer> {
        }
        final boolean wasHidden = isForceHidden();
        mForceHiddenFlags = newFlags;
        if (wasHidden && isFocusableAndVisible()) {
        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().resetPreferredTopFocusableRootTaskIfBelow(this);
            getDisplayArea().resetPreferredTopFocusableRootTaskIfNeeded(this);
        }
        return true;
    }
+3 −2
Original line number Diff line number Diff line
@@ -974,9 +974,10 @@ final class TaskDisplayArea extends DisplayArea<WindowContainer> {
        onRootTaskOrderChanged(rootTask);
    }

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