diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java index 5fde046bda0a9..b1b8061f696a1 100644 --- a/services/core/java/com/android/server/am/ActiveServices.java +++ b/services/core/java/com/android/server/am/ActiveServices.java @@ -169,6 +169,7 @@ public final class ActiveServices { public static final int FGS_FEATURE_ALLOWED_BY_DEVICE_DEMO_MODE = 18; public static final int FGS_FEATURE_ALLOWED_BY_PROCESS_RECORD = 19; public static final int FGS_FEATURE_ALLOWED_BY_EXEMPTED_PACKAGES = 20; + public static final int FGS_FEATURE_ALLOWED_BY_ACTIVITY_STARTER = 21; @IntDef(flag = true, prefix = { "FGS_FEATURE_" }, value = { FGS_FEATURE_DENIED, @@ -191,6 +192,7 @@ public final class ActiveServices { FGS_FEATURE_ALLOWED_BY_DEVICE_DEMO_MODE, FGS_FEATURE_ALLOWED_BY_PROCESS_RECORD, FGS_FEATURE_ALLOWED_BY_EXEMPTED_PACKAGES, + FGS_FEATURE_ALLOWED_BY_ACTIVITY_STARTER }) @Retention(RetentionPolicy.SOURCE) public @interface FgsFeatureRetCode {} @@ -5202,8 +5204,8 @@ public final class ActiveServices { for (int i = mAm.mProcessList.mLruProcesses.size() - 1; i >= 0; i--) { final ProcessRecord pr = mAm.mProcessList.mLruProcesses.get(i); if (pr.uid == callingUid) { - if (pr.areBackgroundActivityStartsAllowedByToken()) { - ret = FGS_FEATURE_ALLOWED_BY_ACTIVITY_TOKEN; + if (pr.getWindowProcessController().areBackgroundActivityStartsAllowed()) { + ret = FGS_FEATURE_ALLOWED_BY_ACTIVITY_STARTER; break; } } @@ -5406,6 +5408,8 @@ public final class ActiveServices { return "ALLOWED_BY_PROCESS_RECORD"; case FGS_FEATURE_ALLOWED_BY_EXEMPTED_PACKAGES: return "FGS_FEATURE_ALLOWED_BY_EXEMPTED_PACKAGES"; + case FGS_FEATURE_ALLOWED_BY_ACTIVITY_STARTER: + return "ALLOWED_BY_ACTIVITY_STARTER"; default: return ""; } diff --git a/services/core/java/com/android/server/am/ProcessRecord.java b/services/core/java/com/android/server/am/ProcessRecord.java index 255badd3239f7..e90423c2566a8 100644 --- a/services/core/java/com/android/server/am/ProcessRecord.java +++ b/services/core/java/com/android/server/am/ProcessRecord.java @@ -1381,10 +1381,6 @@ class ProcessRecord implements WindowProcessListener { mWindowProcessController.removeAllowBackgroundActivityStartsToken(entity); } - boolean areBackgroundActivityStartsAllowedByToken() { - return mWindowProcessController.areBackgroundActivityStartsAllowedByToken(); - } - void addBoundClientUid(int clientUid) { mBoundClientUids.add(clientUid); mWindowProcessController.setBoundClientUids(mBoundClientUids); diff --git a/services/core/java/com/android/server/wm/WindowProcessController.java b/services/core/java/com/android/server/wm/WindowProcessController.java index 9d64af783837d..cec8033eec340 100644 --- a/services/core/java/com/android/server/wm/WindowProcessController.java +++ b/services/core/java/com/android/server/wm/WindowProcessController.java @@ -510,13 +510,9 @@ public class WindowProcessController extends ConfigurationContainer