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

Commit 8da57352 authored by David Stevens's avatar David Stevens Committed by Android (Google) Code Review
Browse files

Merge "Switch display uid whitelist from task to activity"

parents 6a0b9d43 82ea6cb9
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -2391,6 +2391,10 @@ final class ActivityRecord implements AppWindowContainerListener {
        return (config.uiMode & Configuration.UI_MODE_TYPE_MASK) == UI_MODE_TYPE_VR_HEADSET;
    }

    int getUid() {
        return info.applicationInfo.uid;
    }

    @Override
    public String toString() {
        if (stringName != null) {
+7 −3
Original line number Diff line number Diff line
@@ -741,17 +741,21 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
    /** Checks if there are tasks with specific UID in the stack. */
    boolean isUidPresent(int uid) {
        for (TaskRecord task : mTaskHistory) {
            if (task.effectiveUid == uid) {
            for (ActivityRecord r : task.mActivities) {
                if (r.getUid() == uid) {
                    return true;
                }
            }
        }
        return false;
    }

    /** Get all UIDs that are present in the stack. */
    void getPresentUIDs(IntArray presentUIDs) {
        for (TaskRecord task : mTaskHistory) {
            presentUIDs.add(task.effectiveUid);
            for (ActivityRecord r : task.mActivities) {
                presentUIDs.add(r.getUid());
            }
        }
    }

+5 −1
Original line number Diff line number Diff line
@@ -1636,7 +1636,11 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D
        mDisplayAccessUIDs.clear();
        for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
            final ActivityDisplay activityDisplay = mActivityDisplays.valueAt(displayNdx);
            mDisplayAccessUIDs.append(activityDisplay.mDisplayId, activityDisplay.getPresentUIDs());
            // Only bother calculating the whitelist for private displays
            if (activityDisplay.isPrivate()) {
                mDisplayAccessUIDs.append(
                        activityDisplay.mDisplayId, activityDisplay.getPresentUIDs());
            }
        }
        // Store updated lists in DisplayManager. Callers from outside of AM should get them there.
        mDisplayManagerInternal.setDisplayAccessUIDs(mDisplayAccessUIDs);
+4 −0
Original line number Diff line number Diff line
@@ -1236,6 +1236,10 @@ final class TaskRecord extends ConfigurationContainer implements TaskWindowConta
            mWindowContainerController.positionChildAt(appController, index);
        }
        r.onOverrideConfigurationSent();

        // Make sure the list of display UID whitelists is updated
        // now that this record is in a new task.
        mService.mStackSupervisor.updateUIDsPresentOnDisplay();
    }

    /**