Loading core/java/android/app/Activity.java +3 −2 Original line number Diff line number Diff line Loading @@ -8045,8 +8045,9 @@ public class Activity extends ContextThemeWrapper resultData.prepareToLeaveProcess(this); } upIntent.prepareToLeaveProcess(this); return ActivityClient.getInstance().navigateUpTo(mToken, upIntent, resultCode, resultData); String resolvedType = upIntent.resolveTypeIfNeeded(getContentResolver()); return ActivityClient.getInstance().navigateUpTo(mToken, upIntent, resolvedType, resultCode, resultData); } else { return mParent.navigateUpToFromChild(this, upIntent); } Loading core/java/android/app/ActivityClient.java +3 −3 Original line number Diff line number Diff line Loading @@ -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) { try { return getActivityClientController().navigateUpTo(token, destIntent, resultCode, resultData); return getActivityClientController().navigateUpTo(token, destIntent, resolvedType, resultCode, resultData); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading core/java/android/app/IActivityClientController.aidl +2 −2 Original line number Diff line number Diff line Loading @@ -60,8 +60,8 @@ interface IActivityClientController { in SizeConfigurationBuckets sizeConfigurations); boolean moveActivityTaskToBack(in IBinder token, boolean nonRoot); boolean shouldUpRecreateTask(in IBinder token, in String destAffinity); boolean navigateUpTo(in IBinder token, in Intent target, int resultCode, in Intent resultData); boolean navigateUpTo(in IBinder token, in Intent target, in String resolvedType, int resultCode, in Intent resultData); boolean releaseActivityInstance(in IBinder token); boolean finishActivity(in IBinder token, int code, in Intent data, int finishTask); boolean finishActivityAffinity(in IBinder token); Loading services/core/java/com/android/server/wm/ActivityClientController.java +3 −3 Original line number Diff line number Diff line Loading @@ -332,8 +332,8 @@ class ActivityClientController extends IActivityClientController.Stub { } @Override public boolean navigateUpTo(IBinder token, Intent destIntent, int resultCode, Intent resultData) { public boolean navigateUpTo(IBinder token, Intent destIntent, String resolvedType, int resultCode, Intent resultData) { final ActivityRecord r; synchronized (mGlobalLock) { r = ActivityRecord.isInRootTaskLocked(token); Loading @@ -348,7 +348,7 @@ class ActivityClientController extends IActivityClientController.Stub { synchronized (mGlobalLock) { return r.getRootTask().navigateUpTo( r, destIntent, destGrants, resultCode, resultData, resultGrants); r, destIntent, resolvedType, destGrants, resultCode, resultData, resultGrants); } } Loading services/core/java/com/android/server/wm/Task.java +19 −24 Original line number Diff line number Diff line Loading @@ -5329,8 +5329,9 @@ class Task extends TaskFragment { return false; } boolean navigateUpTo(ActivityRecord srec, Intent destIntent, NeededUriGrants destGrants, int resultCode, Intent resultData, NeededUriGrants resultGrants) { boolean navigateUpTo(ActivityRecord srec, Intent destIntent, String resolvedType, NeededUriGrants destGrants, int resultCode, Intent resultData, NeededUriGrants resultGrants) { if (!srec.attachedToProcess()) { // Nothing to do if the caller is not attached, because this method should be called // from an alive activity. Loading Loading @@ -5423,15 +5424,12 @@ class Task extends TaskFragment { srec.packageName); } } 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. final int res = mAtmService.getActivityStartController() .obtainStarter(destIntent, "navigateUpTo") .setResolvedType(resolvedType) .setUserId(srec.mUserId) .setCaller(srec.app.getThread()) .setActivityInfo(aInfo) .setResultTo(parent.token) .setCallingPid(-1) .setCallingUid(callingUid) Loading @@ -5442,9 +5440,6 @@ class Task extends TaskFragment { .setComponentSpecified(true) .execute(); foundParentInTask = res == ActivityManager.START_SUCCESS; } catch (RemoteException e) { foundParentInTask = false; } parent.finishIfPossible(resultCode, resultData, resultGrants, "navigate-top", true /* oomAdj */); } Loading Loading
core/java/android/app/Activity.java +3 −2 Original line number Diff line number Diff line Loading @@ -8045,8 +8045,9 @@ public class Activity extends ContextThemeWrapper resultData.prepareToLeaveProcess(this); } upIntent.prepareToLeaveProcess(this); return ActivityClient.getInstance().navigateUpTo(mToken, upIntent, resultCode, resultData); String resolvedType = upIntent.resolveTypeIfNeeded(getContentResolver()); return ActivityClient.getInstance().navigateUpTo(mToken, upIntent, resolvedType, resultCode, resultData); } else { return mParent.navigateUpToFromChild(this, upIntent); } Loading
core/java/android/app/ActivityClient.java +3 −3 Original line number Diff line number Diff line Loading @@ -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) { try { return getActivityClientController().navigateUpTo(token, destIntent, resultCode, resultData); return getActivityClientController().navigateUpTo(token, destIntent, resolvedType, resultCode, resultData); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading
core/java/android/app/IActivityClientController.aidl +2 −2 Original line number Diff line number Diff line Loading @@ -60,8 +60,8 @@ interface IActivityClientController { in SizeConfigurationBuckets sizeConfigurations); boolean moveActivityTaskToBack(in IBinder token, boolean nonRoot); boolean shouldUpRecreateTask(in IBinder token, in String destAffinity); boolean navigateUpTo(in IBinder token, in Intent target, int resultCode, in Intent resultData); boolean navigateUpTo(in IBinder token, in Intent target, in String resolvedType, int resultCode, in Intent resultData); boolean releaseActivityInstance(in IBinder token); boolean finishActivity(in IBinder token, int code, in Intent data, int finishTask); boolean finishActivityAffinity(in IBinder token); Loading
services/core/java/com/android/server/wm/ActivityClientController.java +3 −3 Original line number Diff line number Diff line Loading @@ -332,8 +332,8 @@ class ActivityClientController extends IActivityClientController.Stub { } @Override public boolean navigateUpTo(IBinder token, Intent destIntent, int resultCode, Intent resultData) { public boolean navigateUpTo(IBinder token, Intent destIntent, String resolvedType, int resultCode, Intent resultData) { final ActivityRecord r; synchronized (mGlobalLock) { r = ActivityRecord.isInRootTaskLocked(token); Loading @@ -348,7 +348,7 @@ class ActivityClientController extends IActivityClientController.Stub { synchronized (mGlobalLock) { return r.getRootTask().navigateUpTo( r, destIntent, destGrants, resultCode, resultData, resultGrants); r, destIntent, resolvedType, destGrants, resultCode, resultData, resultGrants); } } Loading
services/core/java/com/android/server/wm/Task.java +19 −24 Original line number Diff line number Diff line Loading @@ -5329,8 +5329,9 @@ class Task extends TaskFragment { return false; } boolean navigateUpTo(ActivityRecord srec, Intent destIntent, NeededUriGrants destGrants, int resultCode, Intent resultData, NeededUriGrants resultGrants) { boolean navigateUpTo(ActivityRecord srec, Intent destIntent, String resolvedType, NeededUriGrants destGrants, int resultCode, Intent resultData, NeededUriGrants resultGrants) { if (!srec.attachedToProcess()) { // Nothing to do if the caller is not attached, because this method should be called // from an alive activity. Loading Loading @@ -5423,15 +5424,12 @@ class Task extends TaskFragment { srec.packageName); } } 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. final int res = mAtmService.getActivityStartController() .obtainStarter(destIntent, "navigateUpTo") .setResolvedType(resolvedType) .setUserId(srec.mUserId) .setCaller(srec.app.getThread()) .setActivityInfo(aInfo) .setResultTo(parent.token) .setCallingPid(-1) .setCallingUid(callingUid) Loading @@ -5442,9 +5440,6 @@ class Task extends TaskFragment { .setComponentSpecified(true) .execute(); foundParentInTask = res == ActivityManager.START_SUCCESS; } catch (RemoteException e) { foundParentInTask = false; } parent.finishIfPossible(resultCode, resultData, resultGrants, "navigate-top", true /* oomAdj */); } Loading