diff options
| author | 2023-11-20 21:44:01 +0000 | |
|---|---|---|
| committer | 2023-11-20 21:44:01 +0000 | |
| commit | 4a981479793e7cd7b39f1fa804e7eadc8e9760a1 (patch) | |
| tree | 640363d822acfa7f863b8f83e72533eeab5bb104 | |
| parent | 44884157f9024f0ca7ed3afdb0a398b9629ddbf5 (diff) | |
| parent | 82456ff974f37d91a3a8502e274ab51bc770a5e9 (diff) | |
Merge "Restrict activity launch when caller is running in the background" into udc-dev am: 82456ff974
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/25116113
Change-Id: I74a88371535c924893be570d84d68a985c82f8b6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -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; } } |