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

Commit 2007a630 authored by Craig Mautner's avatar Craig Mautner Committed by Android Git Automerger
Browse files

am 28de8edb: am ab8f60e4: am a94e4297: Merge "Do not make ActivityContainer...

am 28de8edb: am ab8f60e4: am a94e4297: Merge "Do not make ActivityContainer available to apps. DO NOT MERGE" into lmp-mr1-dev

* commit '28de8edb':
  Do not make ActivityContainer available to apps. DO NOT MERGE
parents b20d48fd 28de8edb
Loading
Loading
Loading
Loading
+9 −20
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package android.app;

import android.app.ActivityManager.StackInfo;
import android.app.ProfilerInfo;
import android.content.ComponentName;
import android.content.IIntentReceiver;
import android.content.IIntentSender;
@@ -2210,17 +2209,12 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM
            return true;
        }

        case GET_ACTIVITY_CONTAINER_TRANSACTION: {
        case GET_ACTIVITY_DISPLAY_ID_TRANSACTION: {
            data.enforceInterface(IActivityManager.descriptor);
            IBinder activityToken = data.readStrongBinder();
            IActivityContainer activityContainer = getEnclosingActivityContainer(activityToken);
            int displayId = getActivityDisplayId(activityToken);
            reply.writeNoException();
            if (activityContainer != null) {
                reply.writeInt(1);
                reply.writeStrongBinder(activityContainer.asBinder());
            } else {
                reply.writeInt(0);
            }
            reply.writeInt(displayId);
            return true;
        }

@@ -5250,26 +5244,21 @@ class ActivityManagerProxy implements IActivityManager
        reply.recycle();
    }

    public IActivityContainer getEnclosingActivityContainer(IBinder activityToken)
            throws RemoteException {
    @Override
    public int getActivityDisplayId(IBinder activityToken) throws RemoteException {
        Parcel data = Parcel.obtain();
        Parcel reply = Parcel.obtain();
        data.writeInterfaceToken(IActivityManager.descriptor);
        data.writeStrongBinder(activityToken);
        mRemote.transact(GET_ACTIVITY_CONTAINER_TRANSACTION, data, reply, 0);
        mRemote.transact(GET_ACTIVITY_DISPLAY_ID_TRANSACTION, data, reply, 0);
        reply.readException();
        final int result = reply.readInt();
        final IActivityContainer res;
        if (result == 1) {
            res = IActivityContainer.Stub.asInterface(reply.readStrongBinder());
        } else {
            res = null;
        }
        final int displayId = reply.readInt();
        data.recycle();
        reply.recycle();
        return res;
        return displayId;
    }

    @Override
    public IBinder getHomeActivityToken() throws RemoteException {
        Parcel data = Parcel.obtain();
        Parcel reply = Parcel.obtain();
+1 −4
Original line number Diff line number Diff line
@@ -2362,10 +2362,7 @@ public final class ActivityThread {

        final DisplayManagerGlobal dm = DisplayManagerGlobal.getInstance();
        try {
            IActivityContainer container =
                    ActivityManagerNative.getDefault().getEnclosingActivityContainer(r.token);
            final int displayId =
                    container == null ? Display.DEFAULT_DISPLAY : container.getDisplayId();
            final int displayId = ActivityManagerNative.getDefault().getActivityDisplayId(r.token);
            if (displayId > Display.DEFAULT_DISPLAY) {
                Display display = dm.getRealDisplay(displayId, r.token);
                baseContext = appContext.createDisplayContext(display);
+2 −3
Original line number Diff line number Diff line
@@ -439,8 +439,7 @@ public interface IActivityManager extends IInterface {

    public void deleteActivityContainer(IActivityContainer container) throws RemoteException;

    public IActivityContainer getEnclosingActivityContainer(IBinder activityToken)
            throws RemoteException;
    public int getActivityDisplayId(IBinder activityToken) throws RemoteException;

    public IBinder getHomeActivityToken() throws RemoteException;

@@ -756,7 +755,7 @@ public interface IActivityManager extends IInterface {
    int GET_PERSISTED_URI_PERMISSIONS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+181;
    int APP_NOT_RESPONDING_VIA_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+182;
    int GET_HOME_ACTIVITY_TOKEN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+183;
    int GET_ACTIVITY_CONTAINER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+184;
    int GET_ACTIVITY_DISPLAY_ID_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+184;
    int DELETE_ACTIVITY_CONTAINER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+185;


+5 −5
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.SparseIntArray;
import android.view.Display;
import com.android.internal.R;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.app.IAppOpsService;
@@ -8672,14 +8673,13 @@ public final class ActivityManagerService extends ActivityManagerNative
    }
    @Override
    public IActivityContainer getEnclosingActivityContainer(IBinder activityToken)
            throws RemoteException {
    public int getActivityDisplayId(IBinder activityToken) throws RemoteException {
        synchronized (this) {
            ActivityStack stack = ActivityRecord.getStackLocked(activityToken);
            if (stack != null) {
                return stack.mActivityContainer;
            if (stack != null && stack.mActivityContainer.isAttachedLocked()) {
                return stack.mActivityContainer.getDisplayId();
            }
            return null;
            return Display.DEFAULT_DISPLAY;
        }
    }