From 3af0294c36e432914f07dbc6f209ac75321ca0cf Mon Sep 17 00:00:00 2001 From: Sudheer Shanka Date: Wed, 12 Apr 2017 14:29:14 -0700 Subject: [PATCH] Update NPMS internal state when app idle parole state is changed. Fixes: 37250313 Test: 1. cts-tradefed run singleCommand cts-dev --module CtsHostsideNetworkTests -t \ com.android.cts.net.HostsideRestrictBackgroundNetworkTests 2. runtest -c com.android.server.NetworkPolicyManagerServiceTest frameworks-services Change-Id: I5fcac397116a07fe9015b7dabf5bca57b0b23176 --- .../android/server/net/NetworkPolicyManagerService.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java index 2e499f175650f..9157c4e8f2cad 100644 --- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java +++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java @@ -2992,7 +2992,12 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { // Skip if it had no restrictions to begin with if ((oldRules & MASK_ALL_NETWORKS) == 0) continue; } - updateRulesForPowerRestrictionsUL(uid, oldRules, paroled); + final int newUidRules = updateRulesForPowerRestrictionsUL(uid, oldRules, paroled); + if (newUidRules == RULE_NONE) { + mUidRules.delete(uid); + } else { + mUidRules.put(uid, newUidRules); + } } }