From 12d2922a6e9c63ca890f8c9e44bb8f4a50024044 Mon Sep 17 00:00:00 2001 From: Sudheer Shanka Date: Fri, 24 Feb 2017 16:30:04 -0800 Subject: [PATCH] Fix default value for mUidState.get. In updateRulesForWhitelistedPowerSaveUL, we are using mUidState.get(uid). So if the uid didn't already exist, it will give 0 which represents PROCESS_STATE_PERSISTENT and this is inconsistent with it's other usages. Bug: 35766310 Test: verified that apps coming to foreground, while the battery saver is on, have access to network. Change-Id: I42a8455862e3a15e14825d9cf74e05a6f1dbe298 --- .../com/android/server/net/NetworkPolicyManagerService.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java index ac3a025a6fc0e..6458102147bcb 100644 --- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java +++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java @@ -2608,8 +2608,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { // (mPowerSaveTempWhitelistAppIds) for whitelisting, we can reuse their logic in this method. private void updateRulesForWhitelistedPowerSaveUL(int uid, boolean enabled, int chain) { if (enabled) { - if (isWhitelistedBatterySaverUL(uid) - || isProcStateAllowedWhileIdleOrPowerSaveMode(mUidState.get(uid))) { + if (isWhitelistedBatterySaverUL(uid) || isUidForegroundOnRestrictPowerUL(uid)) { setUidFirewallRule(chain, uid, FIREWALL_RULE_ALLOW); } else { setUidFirewallRule(chain, uid, FIREWALL_RULE_DEFAULT);