Merge "Fixed connectivity state in some power saving scenarios." into nyc-dev am: bc26d925c6 am: cc02a95cbd
am: 492e99b2be
* commit '492e99b2bed9a09d42e8c2ce548aedd4974b73be':
Fixed connectivity state in some power saving scenarios.
Change-Id: Idd27e581b208a0d80d8fa6a4d7cf75eac82a32fd
This commit is contained in:
@@ -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_METERED_NETWORKS;
|
||||||
import static android.net.NetworkPolicyManager.MASK_ALL_NETWORKS;
|
import static android.net.NetworkPolicyManager.MASK_ALL_NETWORKS;
|
||||||
import static android.net.NetworkPolicyManager.RULE_NONE;
|
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_REJECT_METERED;
|
||||||
import static android.net.NetworkPolicyManager.RULE_TEMPORARY_ALLOW_METERED;
|
import static android.net.NetworkPolicyManager.RULE_TEMPORARY_ALLOW_METERED;
|
||||||
import static android.net.NetworkPolicyManager.uidRulesToString;
|
import static android.net.NetworkPolicyManager.uidRulesToString;
|
||||||
@@ -218,9 +219,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
/** Flag indicating if background data is restricted. */
|
/** Flag indicating if background data is restricted. */
|
||||||
@GuardedBy("mRulesLock")
|
@GuardedBy("mRulesLock")
|
||||||
private boolean mRestrictBackground;
|
private boolean mRestrictBackground;
|
||||||
/** Flag indicating if background data is restricted due to battery savings. */
|
|
||||||
@GuardedBy("mRulesLock")
|
|
||||||
private boolean mRestrictPower;
|
|
||||||
|
|
||||||
final private Context mContext;
|
final private Context mContext;
|
||||||
private int mNetworkPreference;
|
private int mNetworkPreference;
|
||||||
@@ -669,7 +667,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
try {
|
try {
|
||||||
mPolicyManager.setConnectivityListener(mPolicyListener);
|
mPolicyManager.setConnectivityListener(mPolicyListener);
|
||||||
mRestrictBackground = mPolicyManager.getRestrictBackground();
|
mRestrictBackground = mPolicyManager.getRestrictBackground();
|
||||||
mRestrictPower = mPolicyManager.getRestrictPower();
|
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
// ouch, no rules updates means some processes may never get network
|
// ouch, no rules updates means some processes may never get network
|
||||||
loge("unable to register INetworkPolicyListener" + e);
|
loge("unable to register INetworkPolicyListener" + e);
|
||||||
@@ -942,13 +939,11 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
+ ": " + allowed);
|
+ ": " + allowed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ...then Battery Saver Mode.
|
// ...then power restrictions.
|
||||||
if (allowed && mRestrictPower) {
|
if (allowed) {
|
||||||
allowed = (uidRules & RULE_ALLOW_ALL) != 0;
|
allowed = (uidRules & RULE_REJECT_ALL) == 0;
|
||||||
if (LOGD_RULES) Log.d(TAG, "allowed status for uid " + uid + " when"
|
if (LOGD_RULES) Log.d(TAG, "allowed status for uid " + uid + " when"
|
||||||
+ " mRestrictPower=" + mRestrictPower
|
+ " rule is " + uidRulesToString(uidRules) + ": " + allowed);
|
||||||
+ ", whitelisted=" + ((uidRules & RULE_ALLOW_ALL) != 0)
|
|
||||||
+ ": " + allowed);
|
|
||||||
}
|
}
|
||||||
return !allowed;
|
return !allowed;
|
||||||
}
|
}
|
||||||
@@ -1400,7 +1395,11 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
final int oldRules = mUidRules.get(uid, RULE_NONE);
|
final int oldRules = mUidRules.get(uid, RULE_NONE);
|
||||||
if (oldRules == uidRules) return;
|
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
|
// 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
|
@Override
|
||||||
public void onRestrictBackgroundWhitelistChanged(int uid, boolean whitelisted) {
|
public void onRestrictBackgroundWhitelistChanged(int uid, boolean whitelisted) {
|
||||||
if (LOGD_RULES) {
|
if (LOGD_RULES) {
|
||||||
@@ -1894,10 +1881,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
pw.println(mRestrictBackground);
|
pw.println(mRestrictBackground);
|
||||||
pw.println();
|
pw.println();
|
||||||
|
|
||||||
pw.print("Restrict power: ");
|
|
||||||
pw.println(mRestrictPower);
|
|
||||||
pw.println();
|
|
||||||
|
|
||||||
pw.println("Status for known UIDs:");
|
pw.println("Status for known UIDs:");
|
||||||
pw.increaseIndent();
|
pw.increaseIndent();
|
||||||
final int size = mUidRules.size();
|
final int size = mUidRules.size();
|
||||||
|
|||||||
Reference in New Issue
Block a user