diff options
| author | 2023-11-20 21:14:02 +0000 | |
|---|---|---|
| committer | 2023-11-20 21:14:02 +0000 | |
| commit | 82456ff974f37d91a3a8502e274ab51bc770a5e9 (patch) | |
| tree | 0beecdf174e00a76057b20314e133b7cba2092ab | |
| parent | 31a8777cbcd61b4919577ee91e12bceec7f8e6c6 (diff) | |
| parent | e1edaa27ea2f6911977556c5bba876a2319d5e2d (diff) | |
Merge "Restrict activity launch when caller is running in the background" into udc-dev
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityTaskManagerService.java | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index 6b65922c198e..dd3a3c5e6bbf 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -1412,7 +1412,12 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { final long origId = Binder.clearCallingIdentity(); // TODO(b/64750076): Check if calling pid should really be -1. - final int res = getActivityStartController() + try { + if (options == null) { + options = new SafeActivityOptions(ActivityOptions.makeBasic()); + } + options.getOptions(r).setAvoidMoveToFront(); + final int res = getActivityStartController() .obtainStarter(intent, "startNextMatchingActivity") .setCaller(r.app.getThread()) .setResolvedType(r.resolvedType) @@ -1428,13 +1433,11 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { .setRealCallingUid(r.launchedFromUid) .setActivityOptions(options) .execute(); - Binder.restoreCallingIdentity(origId); - - r.finishing = wasFinishing; - if (res != ActivityManager.START_SUCCESS) { - return false; + r.finishing = wasFinishing; + return res == ActivityManager.START_SUCCESS; + } finally { + Binder.restoreCallingIdentity(origId); } - return true; } } |