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

Commit ce285229 authored by Shivam Agrawal's avatar Shivam Agrawal Committed by Automerger Merge Worker
Browse files

Include Activities That Have Not Been Assigned... am: 9c906fbc

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

Change-Id: I4ab00e79514bf6c53e9a5ee0ab409ca5b665a2cd
parents 3c32c633 9c906fbc
Loading
Loading
Loading
Loading
+11 −11
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import static android.content.pm.ActivityInfo.FLAG_RESUME_WHILE_PAUSING;
import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
import static android.content.res.Configuration.ORIENTATION_UNDEFINED;
import static android.os.Process.INVALID_UID;
import static android.os.UserHandle.USER_NULL;
import static android.view.Display.INVALID_DISPLAY;
import static android.view.WindowManager.TRANSIT_CLOSE;
@@ -221,6 +222,8 @@ class TaskFragment extends WindowContainer<WindowContainer> {
    /** Organizer that organizing this TaskFragment. */
    @Nullable
    private ITaskFragmentOrganizer mTaskFragmentOrganizer;
    private int mTaskFragmentOrganizerUid = INVALID_UID;
    private @Nullable String mTaskFragmentOrganizerProcessName;

    /** Client assigned unique token for this TaskFragment if this is created by an organizer. */
    @Nullable
@@ -233,13 +236,6 @@ class TaskFragment extends WindowContainer<WindowContainer> {
     */
    private boolean mDelayLastActivityRemoval;

    /**
     * The PID of the organizer that created this TaskFragment. It should be the same as the PID
     * of {@link android.window.TaskFragmentCreationParams#getOwnerToken()}.
     * {@link ActivityRecord#INVALID_PID} if this is not an organizer-created TaskFragment.
     */
    private int mTaskFragmentOrganizerPid = ActivityRecord.INVALID_PID;

    final Point mLastSurfaceSize = new Point();

    private final Rect mTmpInsets = new Rect();
@@ -338,9 +334,11 @@ class TaskFragment extends WindowContainer<WindowContainer> {
        mDelayLastActivityRemoval = false;
    }

    void setTaskFragmentOrganizer(TaskFragmentOrganizerToken organizer, int pid) {
    void setTaskFragmentOrganizer(@NonNull TaskFragmentOrganizerToken organizer, int uid,
            @NonNull String processName) {
        mTaskFragmentOrganizer = ITaskFragmentOrganizer.Stub.asInterface(organizer.asBinder());
        mTaskFragmentOrganizerPid = pid;
        mTaskFragmentOrganizerUid = uid;
        mTaskFragmentOrganizerProcessName = processName;
    }

    /** Whether this TaskFragment is organized by the given {@code organizer}. */
@@ -2180,9 +2178,11 @@ class TaskFragment extends WindowContainer<WindowContainer> {
        List<IBinder> childActivities = new ArrayList<>();
        for (int i = 0; i < getChildCount(); i++) {
            WindowContainer wc = getChildAt(i);
            if (mTaskFragmentOrganizerPid != ActivityRecord.INVALID_PID
            if (mTaskFragmentOrganizerUid != INVALID_UID
                    && wc.asActivityRecord() != null
                    && wc.asActivityRecord().getPid() == mTaskFragmentOrganizerPid) {
                    && wc.asActivityRecord().info.processName.equals(
                            mTaskFragmentOrganizerProcessName)
                    && wc.asActivityRecord().getUid() == mTaskFragmentOrganizerUid) {
                // Only includes Activities that belong to the organizer process for security.
                childActivities.add(wc.asActivityRecord().appToken);
            }
+2 −2
Original line number Diff line number Diff line
@@ -1205,8 +1205,8 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
                creationParams.getFragmentToken(), true /* createdByOrganizer */);
        // Set task fragment organizer immediately, since it might have to be notified about further
        // actions.
        taskFragment.setTaskFragmentOrganizer(
                creationParams.getOrganizer(), ownerActivity.getPid());
        taskFragment.setTaskFragmentOrganizer(creationParams.getOrganizer(),
                ownerActivity.getUid(), ownerActivity.info.processName);
        ownerActivity.getTask().addChild(taskFragment, POSITION_TOP);
        taskFragment.setWindowingMode(creationParams.getWindowingMode());
        taskFragment.setBounds(creationParams.getInitialBounds());