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

Commit fd711731 authored by Automerger Merge Worker's avatar Automerger Merge Worker Committed by Android (Google) Code Review
Browse files

Merge "Merge "Do not resolve ActivityInfo in navigateUpTo" into tm-qpr-dev am:...

Merge "Merge "Do not resolve ActivityInfo in navigateUpTo" into tm-qpr-dev am: 576b93c7" into tm-qpr-dev-plus-aosp
parents d01e44a5 20e6f6e5
Loading
Loading
Loading
Loading
+3 −2
Original line number Original line Diff line number Diff line
@@ -8045,8 +8045,9 @@ public class Activity extends ContextThemeWrapper
                resultData.prepareToLeaveProcess(this);
                resultData.prepareToLeaveProcess(this);
            }
            }
            upIntent.prepareToLeaveProcess(this);
            upIntent.prepareToLeaveProcess(this);
            return ActivityClient.getInstance().navigateUpTo(mToken, upIntent, resultCode,
            String resolvedType = upIntent.resolveTypeIfNeeded(getContentResolver());
                    resultData);
            return ActivityClient.getInstance().navigateUpTo(mToken, upIntent, resolvedType,
                    resultCode, resultData);
        } else {
        } else {
            return mParent.navigateUpToFromChild(this, upIntent);
            return mParent.navigateUpToFromChild(this, upIntent);
        }
        }
+3 −3
Original line number Original line Diff line number Diff line
@@ -141,11 +141,11 @@ public class ActivityClient {
        }
        }
    }
    }


    boolean navigateUpTo(IBinder token, Intent destIntent, int resultCode,
    boolean navigateUpTo(IBinder token, Intent destIntent, String resolvedType, int resultCode,
            Intent resultData) {
            Intent resultData) {
        try {
        try {
            return getActivityClientController().navigateUpTo(token, destIntent, resultCode,
            return getActivityClientController().navigateUpTo(token, destIntent, resolvedType,
                    resultData);
                    resultCode, resultData);
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
        }
        }
+2 −2
Original line number Original line Diff line number Diff line
@@ -60,8 +60,8 @@ interface IActivityClientController {
            in SizeConfigurationBuckets sizeConfigurations);
            in SizeConfigurationBuckets sizeConfigurations);
    boolean moveActivityTaskToBack(in IBinder token, boolean nonRoot);
    boolean moveActivityTaskToBack(in IBinder token, boolean nonRoot);
    boolean shouldUpRecreateTask(in IBinder token, in String destAffinity);
    boolean shouldUpRecreateTask(in IBinder token, in String destAffinity);
    boolean navigateUpTo(in IBinder token, in Intent target, int resultCode,
    boolean navigateUpTo(in IBinder token, in Intent target, in String resolvedType,
            in Intent resultData);
            int resultCode, in Intent resultData);
    boolean releaseActivityInstance(in IBinder token);
    boolean releaseActivityInstance(in IBinder token);
    boolean finishActivity(in IBinder token, int code, in Intent data, int finishTask);
    boolean finishActivity(in IBinder token, int code, in Intent data, int finishTask);
    boolean finishActivityAffinity(in IBinder token);
    boolean finishActivityAffinity(in IBinder token);
+3 −3
Original line number Original line Diff line number Diff line
@@ -332,8 +332,8 @@ class ActivityClientController extends IActivityClientController.Stub {
    }
    }


    @Override
    @Override
    public boolean navigateUpTo(IBinder token, Intent destIntent, int resultCode,
    public boolean navigateUpTo(IBinder token, Intent destIntent, String resolvedType,
            Intent resultData) {
            int resultCode, Intent resultData) {
        final ActivityRecord r;
        final ActivityRecord r;
        synchronized (mGlobalLock) {
        synchronized (mGlobalLock) {
            r = ActivityRecord.isInRootTaskLocked(token);
            r = ActivityRecord.isInRootTaskLocked(token);
@@ -348,7 +348,7 @@ class ActivityClientController extends IActivityClientController.Stub {


        synchronized (mGlobalLock) {
        synchronized (mGlobalLock) {
            return r.getRootTask().navigateUpTo(
            return r.getRootTask().navigateUpTo(
                    r, destIntent, destGrants, resultCode, resultData, resultGrants);
                    r, destIntent, resolvedType, destGrants, resultCode, resultData, resultGrants);
        }
        }
    }
    }


+19 −24
Original line number Original line Diff line number Diff line
@@ -5330,8 +5330,9 @@ class Task extends TaskFragment {
        return false;
        return false;
    }
    }


    boolean navigateUpTo(ActivityRecord srec, Intent destIntent, NeededUriGrants destGrants,
    boolean navigateUpTo(ActivityRecord srec, Intent destIntent, String resolvedType,
            int resultCode, Intent resultData, NeededUriGrants resultGrants) {
            NeededUriGrants destGrants, int resultCode, Intent resultData,
            NeededUriGrants resultGrants) {
        if (!srec.attachedToProcess()) {
        if (!srec.attachedToProcess()) {
            // Nothing to do if the caller is not attached, because this method should be called
            // Nothing to do if the caller is not attached, because this method should be called
            // from an alive activity.
            // from an alive activity.
@@ -5424,15 +5425,12 @@ class Task extends TaskFragment {
                            srec.packageName);
                            srec.packageName);
                }
                }
            } else {
            } else {
                try {
                    ActivityInfo aInfo = AppGlobals.getPackageManager().getActivityInfo(
                            destIntent.getComponent(), ActivityManagerService.STOCK_PM_FLAGS,
                            srec.mUserId);
                // TODO(b/64750076): Check if calling pid should really be -1.
                // TODO(b/64750076): Check if calling pid should really be -1.
                final int res = mAtmService.getActivityStartController()
                final int res = mAtmService.getActivityStartController()
                        .obtainStarter(destIntent, "navigateUpTo")
                        .obtainStarter(destIntent, "navigateUpTo")
                        .setResolvedType(resolvedType)
                        .setUserId(srec.mUserId)
                        .setCaller(srec.app.getThread())
                        .setCaller(srec.app.getThread())
                            .setActivityInfo(aInfo)
                        .setResultTo(parent.token)
                        .setResultTo(parent.token)
                        .setCallingPid(-1)
                        .setCallingPid(-1)
                        .setCallingUid(callingUid)
                        .setCallingUid(callingUid)
@@ -5443,9 +5441,6 @@ class Task extends TaskFragment {
                        .setComponentSpecified(true)
                        .setComponentSpecified(true)
                        .execute();
                        .execute();
                foundParentInTask = res == ActivityManager.START_SUCCESS;
                foundParentInTask = res == ActivityManager.START_SUCCESS;
                } catch (RemoteException e) {
                    foundParentInTask = false;
                }
                parent.finishIfPossible(resultCode, resultData, resultGrants,
                parent.finishIfPossible(resultCode, resultData, resultGrants,
                        "navigate-top", true /* oomAdj */);
                        "navigate-top", true /* oomAdj */);
            }
            }
Loading