From 28644e3b9e5cf0681af4836d78d80ee5b1357706 Mon Sep 17 00:00:00 2001 From: Hui Yu Date: Sun, 14 Mar 2021 22:07:55 -0700 Subject: [PATCH] BG-FGS while-in-use restriction uses the same grace period mechanism as BG-Activity-Launch. WindowProcessController.areBackgroundActivityStartsAllowed() has the 10 seconds grace period, starts from last activity's launch time or finish time. Expose this method for AMS to call, to determine if BG-FGS while-in-use permission is allowed. Bug: 182400165 Test: atest cts/tests/app/src/android/app/cts/ActivityManagerFgsBgStartTest.java Merged-In: I30706dc1950bf5d49926a8e26c0493d9e168eb1b Change-Id: I3615d0a2dc3464b6e980237b906c83872c3b4bce --- .../com/android/server/am/ActiveServices.java | 4 +++ .../server/wm/WindowProcessController.java | 32 +++++++++++++------ 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java index 2461a9129f82a..59f06836440c4 100644 --- a/services/core/java/com/android/server/am/ActiveServices.java +++ b/services/core/java/com/android/server/am/ActiveServices.java @@ -4891,6 +4891,10 @@ public final class ActiveServices { if (!pr.mAllowBackgroundActivityStartsTokens.isEmpty()) { return true; } + if (pr.getWindowProcessController() + .areBackgroundActivityStartsAllowedByGracePeriodSafe()) { + return true; + } } } diff --git a/services/core/java/com/android/server/wm/WindowProcessController.java b/services/core/java/com/android/server/wm/WindowProcessController.java index df49ac71334f9..e6a35f1267b55 100644 --- a/services/core/java/com/android/server/wm/WindowProcessController.java +++ b/services/core/java/com/android/server/wm/WindowProcessController.java @@ -455,15 +455,13 @@ public class WindowProcessController extends ConfigurationContainer