diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 8763b93f31..53b29427b2 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -33,6 +33,7 @@ import static android.net.NetworkPolicyManager.RULE_ALLOW_METERED; import static android.net.NetworkPolicyManager.MASK_METERED_NETWORKS; import static android.net.NetworkPolicyManager.MASK_ALL_NETWORKS; import static android.net.NetworkPolicyManager.RULE_NONE; +import static android.net.NetworkPolicyManager.RULE_REJECT_ALL; import static android.net.NetworkPolicyManager.RULE_REJECT_METERED; import static android.net.NetworkPolicyManager.RULE_TEMPORARY_ALLOW_METERED; import static android.net.NetworkPolicyManager.uidRulesToString; @@ -218,9 +219,6 @@ public class ConnectivityService extends IConnectivityManager.Stub /** Flag indicating if background data is restricted. */ @GuardedBy("mRulesLock") private boolean mRestrictBackground; - /** Flag indicating if background data is restricted due to battery savings. */ - @GuardedBy("mRulesLock") - private boolean mRestrictPower; final private Context mContext; private int mNetworkPreference; @@ -669,7 +667,6 @@ public class ConnectivityService extends IConnectivityManager.Stub try { mPolicyManager.setConnectivityListener(mPolicyListener); mRestrictBackground = mPolicyManager.getRestrictBackground(); - mRestrictPower = mPolicyManager.getRestrictPower(); } catch (RemoteException e) { // ouch, no rules updates means some processes may never get network loge("unable to register INetworkPolicyListener" + e); @@ -942,13 +939,11 @@ public class ConnectivityService extends IConnectivityManager.Stub + ": " + allowed); } } - // ...then Battery Saver Mode. - if (allowed && mRestrictPower) { - allowed = (uidRules & RULE_ALLOW_ALL) != 0; + // ...then power restrictions. + if (allowed) { + allowed = (uidRules & RULE_REJECT_ALL) == 0; if (LOGD_RULES) Log.d(TAG, "allowed status for uid " + uid + " when" - + " mRestrictPower=" + mRestrictPower - + ", whitelisted=" + ((uidRules & RULE_ALLOW_ALL) != 0) - + ": " + allowed); + + " rule is " + uidRulesToString(uidRules) + ": " + allowed); } return !allowed; } @@ -1400,7 +1395,11 @@ public class ConnectivityService extends IConnectivityManager.Stub final int oldRules = mUidRules.get(uid, RULE_NONE); if (oldRules == uidRules) return; - mUidRules.put(uid, uidRules); + if (uidRules == RULE_NONE) { + mUidRules.delete(uid); + } else { + mUidRules.put(uid, uidRules); + } } // TODO: notify UID when it has requested targeted updates @@ -1438,18 +1437,6 @@ public class ConnectivityService extends IConnectivityManager.Stub } } - @Override - public void onRestrictPowerChanged(boolean restrictPower) { - // caller is NPMS, since we only register with them - if (LOGD_RULES) { - log("onRestrictPowerChanged(restrictPower=" + restrictPower + ")"); - } - - synchronized (mRulesLock) { - mRestrictPower = restrictPower; - } - } - @Override public void onRestrictBackgroundWhitelistChanged(int uid, boolean whitelisted) { if (LOGD_RULES) { @@ -1891,10 +1878,6 @@ public class ConnectivityService extends IConnectivityManager.Stub pw.println(mRestrictBackground); pw.println(); - pw.print("Restrict power: "); - pw.println(mRestrictPower); - pw.println(); - pw.println("Status for known UIDs:"); pw.increaseIndent(); final int size = mUidRules.size();