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

Commit db49fec8 authored by Craig Mautner's avatar Craig Mautner
Browse files

For getHomeActivity() only return current user.

Previously getHomeActivity() returned the topmost home activity
independent of which user was currently running. That defeated the
purpose of the method. This fix returns the home activity of the
current user or null if one has not yet been created.

Also remove some cruft that accumulated.

Fixes bug 21055376.

Change-Id: Ic1d58129aedbe3624f8a9d12c05c84674687b0a4
parent 4a3b824b
Loading
Loading
Loading
Loading
+0 −21
Original line number Original line Diff line number Diff line
@@ -2307,14 +2307,6 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM
            return true;
            return true;
        }
        }


        case GET_HOME_ACTIVITY_TOKEN_TRANSACTION: {
            data.enforceInterface(IActivityManager.descriptor);
            IBinder homeActivityToken = getHomeActivityToken();
            reply.writeNoException();
            reply.writeStrongBinder(homeActivityToken);
            return true;
        }

        case START_LOCK_TASK_BY_TASK_ID_TRANSACTION: {
        case START_LOCK_TASK_BY_TASK_ID_TRANSACTION: {
            data.enforceInterface(IActivityManager.descriptor);
            data.enforceInterface(IActivityManager.descriptor);
            final int taskId = data.readInt();
            final int taskId = data.readInt();
@@ -5531,19 +5523,6 @@ class ActivityManagerProxy implements IActivityManager
        return displayId;
        return displayId;
    }
    }


    @Override
    public IBinder getHomeActivityToken() throws RemoteException {
        Parcel data = Parcel.obtain();
        Parcel reply = Parcel.obtain();
        data.writeInterfaceToken(IActivityManager.descriptor);
        mRemote.transact(GET_HOME_ACTIVITY_TOKEN_TRANSACTION, data, reply, 0);
        reply.readException();
        IBinder res = reply.readStrongBinder();
        data.recycle();
        reply.recycle();
        return res;
    }

    @Override
    @Override
    public void startLockTaskMode(int taskId) throws RemoteException {
    public void startLockTaskMode(int taskId) throws RemoteException {
        Parcel data = Parcel.obtain();
        Parcel data = Parcel.obtain();
+1 −3
Original line number Original line Diff line number Diff line
@@ -457,8 +457,6 @@ public interface IActivityManager extends IInterface {


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


    public IBinder getHomeActivityToken() throws RemoteException;

    public void startLockTaskModeOnCurrent() throws RemoteException;
    public void startLockTaskModeOnCurrent() throws RemoteException;


    public void startLockTaskMode(int taskId) throws RemoteException;
    public void startLockTaskMode(int taskId) throws RemoteException;
@@ -788,7 +786,7 @@ public interface IActivityManager extends IInterface {
    int RELEASE_PERSISTABLE_URI_PERMISSION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+180;
    int RELEASE_PERSISTABLE_URI_PERMISSION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+180;
    int GET_PERSISTED_URI_PERMISSIONS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+181;
    int GET_PERSISTED_URI_PERMISSIONS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+181;
    int APP_NOT_RESPONDING_VIA_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+182;
    int APP_NOT_RESPONDING_VIA_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+182;
    int GET_HOME_ACTIVITY_TOKEN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+183;
    // Available
    int GET_ACTIVITY_DISPLAY_ID_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;
    int DELETE_ACTIVITY_CONTAINER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+185;


+0 −9
Original line number Original line Diff line number Diff line
@@ -8703,15 +8703,6 @@ public final class ActivityManagerService extends ActivityManagerNative
        Slog.e(TAG, "moveTaskBackwards not yet implemented!");
        Slog.e(TAG, "moveTaskBackwards not yet implemented!");
    }
    }
    @Override
    public IBinder getHomeActivityToken() throws RemoteException {
        enforceCallingPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS,
                "getHomeActivityToken()");
        synchronized (this) {
            return mStackSupervisor.getHomeActivityToken();
        }
    }
    @Override
    @Override
    public IActivityContainer createVirtualActivityContainer(IBinder parentActivityToken,
    public IActivityContainer createVirtualActivityContainer(IBinder parentActivityToken,
            IActivityContainerCallback callback) throws RemoteException {
            IActivityContainerCallback callback) throws RemoteException {
+1 −1
Original line number Original line Diff line number Diff line
@@ -2658,7 +2658,7 @@ public final class ActivityStackSupervisor implements DisplayListener {
    }
    }


    ActivityRecord getHomeActivity() {
    ActivityRecord getHomeActivity() {
        return getHomeActivityForUser(UserHandle.USER_ALL);
        return getHomeActivityForUser(mCurrentUser);
    }
    }


    ActivityRecord getHomeActivityForUser(int userId) {
    ActivityRecord getHomeActivityForUser(int userId) {