From eb8cfd123d52df29e8e7bbbe2e9237742f202d85 Mon Sep 17 00:00:00 2001 From: Makoto Onuki Date: Fri, 19 Jan 2018 15:43:16 -0800 Subject: [PATCH] Add "exemptForBatterySaver" to ForceAppStandbyTracker Bug: 72125364 Test: atest CtsBatterySavingTestCases Change-Id: I716dc53f06a74e3854aeaeff5c1567642ebaa0c9 --- .../android/server/ForceAppStandbyTracker.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/services/core/java/com/android/server/ForceAppStandbyTracker.java b/services/core/java/com/android/server/ForceAppStandbyTracker.java index a75a3675f7f98..a538bde7487e6 100644 --- a/services/core/java/com/android/server/ForceAppStandbyTracker.java +++ b/services/core/java/com/android/server/ForceAppStandbyTracker.java @@ -737,21 +737,23 @@ public class ForceAppStandbyTracker { * @return whether alarms should be restricted for a UID package-name. */ public boolean areAlarmsRestricted(int uid, @NonNull String packageName) { - return isRestricted(uid, packageName, /*useTempWhitelistToo=*/ false); + return isRestricted(uid, packageName, /*useTempWhitelistToo=*/ false, + /* exemptOnBatterySaver =*/ false); } /** * @return whether jobs should be restricted for a UID package-name. */ public boolean areJobsRestricted(int uid, @NonNull String packageName) { - return isRestricted(uid, packageName, /*useTempWhitelistToo=*/ true); + return isRestricted(uid, packageName, /*useTempWhitelistToo=*/ true, + /* exemptOnBatterySaver =*/ false); } /** * @return whether force-app-standby is effective for a UID package-name. */ private boolean isRestricted(int uid, @NonNull String packageName, - boolean useTempWhitelistToo) { + boolean useTempWhitelistToo, boolean exemptOnBatterySaver) { if (isInForeground(uid)) { return false; } @@ -765,12 +767,13 @@ public class ForceAppStandbyTracker { ArrayUtils.contains(mTempWhitelistedAppIds, appId)) { return false; } - - if (mForceAllAppsStandby) { + if (mForcedAppStandbyEnabled && isRunAnyRestrictedLocked(uid, packageName)) { return true; } - - return mForcedAppStandbyEnabled && isRunAnyRestrictedLocked(uid, packageName); + if (exemptOnBatterySaver) { + return false; + } + return mForceAllAppsStandby; } }