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

Commit debcf760 authored by Andrii Kulian's avatar Andrii Kulian Committed by Android (Google) Code Review
Browse files

Merge "Refactor stack removal methods"

parents 01701d70 6d6fb401
Loading
Loading
Loading
Loading
+0 −21
Original line number Diff line number Diff line
@@ -2557,15 +2557,6 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM
            return true;
        }

        case DELETE_ACTIVITY_CONTAINER_TRANSACTION:  {
            data.enforceInterface(IActivityManager.descriptor);
            IActivityContainer activityContainer =
                    IActivityContainer.Stub.asInterface(data.readStrongBinder());
            deleteActivityContainer(activityContainer);
            reply.writeNoException();
            return true;
        }

        case CREATE_STACK_ON_DISPLAY: {
            data.enforceInterface(IActivityManager.descriptor);
            int displayId = data.readInt();
@@ -6398,18 +6389,6 @@ class ActivityManagerProxy implements IActivityManager
        return res;
    }

    public void deleteActivityContainer(IActivityContainer activityContainer)
            throws RemoteException {
        Parcel data = Parcel.obtain();
        Parcel reply = Parcel.obtain();
        data.writeInterfaceToken(IActivityManager.descriptor);
        data.writeStrongBinder(activityContainer.asBinder());
        mRemote.transact(DELETE_ACTIVITY_CONTAINER_TRANSACTION, data, reply, 0);
        reply.readException();
        data.recycle();
        reply.recycle();
    }

    public boolean startBinderTracking() throws RemoteException {
        Parcel data = Parcel.obtain();
        Parcel reply = Parcel.obtain();
+0 −2
Original line number Diff line number Diff line
@@ -580,8 +580,6 @@ public interface IActivityManager extends IInterface {

    public IActivityContainer createStackOnDisplay(int displayId) throws RemoteException;

    public void deleteActivityContainer(IActivityContainer container) throws RemoteException;

    public int getActivityDisplayId(IBinder activityToken) throws RemoteException;

    public void startSystemLockTaskMode(int taskId) throws RemoteException;
+0 −8
Original line number Diff line number Diff line
@@ -9855,14 +9855,6 @@ public final class ActivityManagerService extends ActivityManagerNative
        }
    }
    @Override
    public void deleteActivityContainer(IActivityContainer container) throws RemoteException {
        enforceCallingPermission(MANAGE_ACTIVITY_STACKS, "deleteActivityContainer()");
        synchronized (this) {
            mStackSupervisor.deleteActivityContainer(container);
        }
    }
    @Override
    public IActivityContainer createStackOnDisplay(int displayId) throws RemoteException {
        enforceCallingPermission(MANAGE_ACTIVITY_STACKS, "createStackOnDisplay()");
+4 −3
Original line number Diff line number Diff line
@@ -467,20 +467,21 @@ final class ActivityStack extends ConfigurationContainer {
        }
    }

    void detachDisplay() {
    void remove() {
        mDisplayId = Display.INVALID_DISPLAY;
        mStacks = null;
        if (mTaskPositioner != null) {
            mTaskPositioner.reset();
        }
        mWindowManager.detachStack(mStackId);
        onParentChanged();
        if (mStackId == DOCKED_STACK_ID) {
            // If we removed a docked stack we want to resize it so it resizes all other stacks
            // in the system to fullscreen.
            mStackSupervisor.resizeDockedStackLocked(
                    null, null, null, null, null, PRESERVE_WINDOWS);
        }
        mStackSupervisor.deleteActivityContainerRecord(mStackId);
        mWindowManager.removeStack(mStackId);
        onParentChanged();
    }

    void getDisplaySize(Point out) {
+9 −15
Original line number Diff line number Diff line
@@ -2009,15 +2009,10 @@ public final class ActivityStackSupervisor extends ConfigurationContainer
        }
    }

    void deleteActivityContainer(IActivityContainer container) {
        ActivityContainer activityContainer = (ActivityContainer)container;
        if (activityContainer != null) {
    void deleteActivityContainerRecord(int stackId) {
        if (DEBUG_CONTAINERS) Slog.d(TAG_CONTAINERS,
                    "deleteActivityContainer: callers=" + Debug.getCallers(4));
            final int stackId = activityContainer.mStackId;
                "deleteActivityContainerRecord: callers=" + Debug.getCallers(4));
        mActivityContainers.remove(stackId);
            mWindowManager.removeStack(stackId);
        }
    }

    void resizeStackLocked(int stackId, Rect bounds, Rect tempTaskBounds, Rect tempTaskInsetBounds,
@@ -3470,7 +3465,7 @@ public final class ActivityStackSupervisor extends ConfigurationContainer
            if (activityDisplay != null) {
                ArrayList<ActivityStack> stacks = activityDisplay.mStacks;
                for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
                    stacks.get(stackNdx).mActivityContainer.detachLocked();
                    stacks.get(stackNdx).mActivityContainer.removeLocked();
                }
                mActivityDisplays.remove(displayId);
            }
@@ -4110,14 +4105,14 @@ public final class ActivityStackSupervisor extends ConfigurationContainer
            }
        }

        protected void detachLocked() {
            if (DEBUG_STACK) Slog.d(TAG_STACK, "detachLocked: " + this + " from display="
        void removeLocked() {
            if (DEBUG_STACK) Slog.d(TAG_STACK, "removeLocked: " + this + " from display="
                    + mActivityDisplay + " Callers=" + Debug.getCallers(2));
            if (mActivityDisplay != null) {
                mActivityDisplay.detachActivitiesLocked(mStack);
                mActivityDisplay = null;
                mStack.detachDisplay();
            }
            mStack.remove();
        }

        @Override
@@ -4192,8 +4187,7 @@ public final class ActivityStackSupervisor extends ConfigurationContainer
        }

        void onTaskListEmptyLocked() {
            detachLocked();
            deleteActivityContainer(this);
            removeLocked();
            mHandler.obtainMessage(CONTAINER_CALLBACK_TASK_LIST_EMPTY, this).sendToTarget();
        }

Loading