Merge "Update network state of apps leaving the whitelist" into mnc-dev

This commit is contained in:
Amith Yamasani
2015-06-12 20:26:41 +00:00
committed by Android (Google) Code Review

View File

@@ -376,8 +376,13 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub
void updatePowerSaveTempWhitelistLocked() {
try {
// Clear the states of the current whitelist
final int N = mPowerSaveTempWhitelistAppIds.size();
for (int i = 0; i < N; i++) {
mPowerSaveTempWhitelistAppIds.setValueAt(i, false);
}
// Update the states with the new whitelist
final int[] whitelist = mDeviceIdleController.getAppIdTempWhitelist();
mPowerSaveTempWhitelistAppIds.clear();
if (whitelist != null) {
for (int uid : whitelist) {
mPowerSaveTempWhitelistAppIds.put(uid, true);
@@ -387,6 +392,18 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub
}
}
/**
* Remove unnecessary entries in the temp whitelist
*/
void purgePowerSaveTempWhitelistLocked() {
final int N = mPowerSaveTempWhitelistAppIds.size();
for (int i = N - 1; i >= 0; i--) {
if (mPowerSaveTempWhitelistAppIds.valueAt(i) == false) {
mPowerSaveTempWhitelistAppIds.removeAt(i);
}
}
}
public void systemReady() {
if (!isBandwidthControlEnabled()) {
Slog.w(TAG, "bandwidth controls disabled, unable to enforce policy");
@@ -521,6 +538,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub
} else {
updatePowerSaveTempWhitelistLocked();
updateRulesForTempWhitelistChangeLocked();
purgePowerSaveTempWhitelistLocked();
}
}
}