summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Christophe Pinelli <cpinelli@google.com> 2023-11-20 21:44:01 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-11-20 21:44:01 +0000
commit4a981479793e7cd7b39f1fa804e7eadc8e9760a1 (patch)
tree640363d822acfa7f863b8f83e72533eeab5bb104
parent44884157f9024f0ca7ed3afdb0a398b9629ddbf5 (diff)
parent82456ff974f37d91a3a8502e274ab51bc770a5e9 (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.java17
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;
}
}