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

Commit 9eba99f4 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "[RESTRICT AUTOMERGE] Do not resume activity if behind a translucent task" into sc-dev

parents ca8eb019 51d287d8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -93,7 +93,7 @@ class EnsureActivitiesVisibleHelper {
        // activities are actually behind other fullscreen activities, but still required
        // to be visible (such as performing Recents animation).
        final boolean resumeTopActivity = mTop != null && !mTop.mLaunchTaskBehind
                && mTask.isTopActivityFocusable()
                && mTask.canBeResumed(starting)
                && (starting == null || !starting.isDescendantOf(mTask));

        mTask.forAllActivities(a -> {
+2 −1
Original line number Diff line number Diff line
@@ -1948,7 +1948,8 @@ class RootWindowContainer extends WindowContainer<DisplayContent>

        try {
            if (mTaskSupervisor.realStartActivityLocked(r, app,
                    top == r && r.isFocusable() /*andResume*/, true /*checkConfig*/)) {
                    top == r && r.getTask().canBeResumed(r) /*andResume*/,
                    true /*checkConfig*/)) {
                mTmpBoolean = true;
            }
        } catch (RemoteException e) {
+11 −0
Original line number Diff line number Diff line
@@ -4240,6 +4240,17 @@ class Task extends WindowContainer<WindowContainer> {
        return getVisibility(starting) != TASK_VISIBILITY_INVISIBLE;
    }

    /**
     * Returns {@code true} is the activity in this Task can be resumed.
     *
     * @param starting The currently starting activity or {@code null} if there is none.
     */
    boolean canBeResumed(@Nullable ActivityRecord starting) {
        // No need to resume activity in Task that is not visible.
        return isTopActivityFocusable()
                && getVisibility(starting) == TASK_VISIBILITY_VISIBLE;
    }

    /**
     * Returns true if the task should be visible.
     *