Merge "Added a onRestrictBackgroundBlacklistChanged() callback." into nyc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
2c6a450fa2
@@ -23,5 +23,6 @@ oneway interface INetworkPolicyListener {
|
|||||||
void onMeteredIfacesChanged(in String[] meteredIfaces);
|
void onMeteredIfacesChanged(in String[] meteredIfaces);
|
||||||
void onRestrictBackgroundChanged(boolean restrictBackground);
|
void onRestrictBackgroundChanged(boolean restrictBackground);
|
||||||
void onRestrictBackgroundWhitelistChanged(int uid, boolean whitelisted);
|
void onRestrictBackgroundWhitelistChanged(int uid, boolean whitelisted);
|
||||||
|
void onRestrictBackgroundBlacklistChanged(int uid, boolean blacklisted);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -93,6 +93,9 @@ public class DataSaverController {
|
|||||||
@Override
|
@Override
|
||||||
public void onRestrictBackgroundWhitelistChanged(int uid, boolean whitelisted) {
|
public void onRestrictBackgroundWhitelistChanged(int uid, boolean whitelisted) {
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public void onRestrictBackgroundBlacklistChanged(int uid, boolean blacklisted) {
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public interface Listener {
|
public interface Listener {
|
||||||
|
|||||||
@@ -1445,6 +1445,14 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
+ whitelisted + ")");
|
+ whitelisted + ")");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public void onRestrictBackgroundBlacklistChanged(int uid, boolean blacklisted) {
|
||||||
|
if (LOGD_RULES) {
|
||||||
|
// caller is NPMS, since we only register with them
|
||||||
|
log("onRestrictBackgroundBlacklistChanged(uid=" + uid + ", blacklisted="
|
||||||
|
+ blacklisted + ")");
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -178,6 +178,11 @@ public class ConnectivityController extends StateController implements
|
|||||||
public void onRestrictBackgroundWhitelistChanged(int uid, boolean whitelisted) {
|
public void onRestrictBackgroundWhitelistChanged(int uid, boolean whitelisted) {
|
||||||
updateTrackedJobs(uid);
|
updateTrackedJobs(uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRestrictBackgroundBlacklistChanged(int uid, boolean blacklisted) {
|
||||||
|
updateTrackedJobs(uid);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -266,6 +266,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
|||||||
private static final int MSG_RESTRICT_BACKGROUND_WHITELIST_CHANGED = 9;
|
private static final int MSG_RESTRICT_BACKGROUND_WHITELIST_CHANGED = 9;
|
||||||
private static final int MSG_UPDATE_INTERFACE_QUOTA = 10;
|
private static final int MSG_UPDATE_INTERFACE_QUOTA = 10;
|
||||||
private static final int MSG_REMOVE_INTERFACE_QUOTA = 11;
|
private static final int MSG_REMOVE_INTERFACE_QUOTA = 11;
|
||||||
|
private static final int MSG_RESTRICT_BACKGROUND_BLACKLIST_CHANGED = 12;
|
||||||
|
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
private final IActivityManager mActivityManager;
|
private final IActivityManager mActivityManager;
|
||||||
@@ -1707,9 +1708,14 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
|||||||
private void setUidPolicyUncheckedLocked(int uid, int oldPolicy, int policy, boolean persist) {
|
private void setUidPolicyUncheckedLocked(int uid, int oldPolicy, int policy, boolean persist) {
|
||||||
setUidPolicyUncheckedLocked(uid, policy, persist);
|
setUidPolicyUncheckedLocked(uid, policy, persist);
|
||||||
|
|
||||||
|
final boolean isBlacklisted = policy == POLICY_REJECT_METERED_BACKGROUND;
|
||||||
|
mHandler.obtainMessage(MSG_RESTRICT_BACKGROUND_BLACKLIST_CHANGED, uid,
|
||||||
|
isBlacklisted ? 1 : 0).sendToTarget();
|
||||||
|
|
||||||
|
final boolean wasBlacklisted = oldPolicy == POLICY_REJECT_METERED_BACKGROUND;
|
||||||
// Checks if app was added or removed to the blacklist.
|
// Checks if app was added or removed to the blacklist.
|
||||||
if ((oldPolicy == POLICY_NONE && policy == POLICY_REJECT_METERED_BACKGROUND)
|
if ((oldPolicy == POLICY_NONE && isBlacklisted)
|
||||||
|| (oldPolicy == POLICY_REJECT_METERED_BACKGROUND && policy == POLICY_NONE)) {
|
|| (wasBlacklisted && policy == POLICY_NONE)) {
|
||||||
mHandler.obtainMessage(MSG_RESTRICT_BACKGROUND_WHITELIST_CHANGED, uid, 1, null)
|
mHandler.obtainMessage(MSG_RESTRICT_BACKGROUND_WHITELIST_CHANGED, uid, 1, null)
|
||||||
.sendToTarget();
|
.sendToTarget();
|
||||||
}
|
}
|
||||||
@@ -3096,6 +3102,16 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void dispatchRestrictBackgroundBlacklistChanged(INetworkPolicyListener listener,
|
||||||
|
int uid, boolean blacklisted) {
|
||||||
|
if (listener != null) {
|
||||||
|
try {
|
||||||
|
listener.onRestrictBackgroundBlacklistChanged(uid, blacklisted);
|
||||||
|
} catch (RemoteException ignored) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private Handler.Callback mHandlerCallback = new Handler.Callback() {
|
private Handler.Callback mHandlerCallback = new Handler.Callback() {
|
||||||
@Override
|
@Override
|
||||||
public boolean handleMessage(Message msg) {
|
public boolean handleMessage(Message msg) {
|
||||||
@@ -3186,7 +3202,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
|||||||
}
|
}
|
||||||
mListeners.finishBroadcast();
|
mListeners.finishBroadcast();
|
||||||
}
|
}
|
||||||
|
|
||||||
final PackageManager pm = mContext.getPackageManager();
|
final PackageManager pm = mContext.getPackageManager();
|
||||||
final String[] packages = pm.getPackagesForUid(uid);
|
final String[] packages = pm.getPackagesForUid(uid);
|
||||||
if (changed && packages != null) {
|
if (changed && packages != null) {
|
||||||
@@ -3202,6 +3217,21 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
case MSG_RESTRICT_BACKGROUND_BLACKLIST_CHANGED: {
|
||||||
|
final int uid = msg.arg1;
|
||||||
|
final boolean blacklisted = msg.arg2 == 1;
|
||||||
|
|
||||||
|
dispatchRestrictBackgroundBlacklistChanged(mConnectivityListener, uid,
|
||||||
|
blacklisted);
|
||||||
|
final int length = mListeners.beginBroadcast();
|
||||||
|
for (int i = 0; i < length; i++) {
|
||||||
|
final INetworkPolicyListener listener = mListeners.getBroadcastItem(i);
|
||||||
|
dispatchRestrictBackgroundBlacklistChanged(listener, uid,
|
||||||
|
blacklisted);
|
||||||
|
}
|
||||||
|
mListeners.finishBroadcast();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
case MSG_ADVISE_PERSIST_THRESHOLD: {
|
case MSG_ADVISE_PERSIST_THRESHOLD: {
|
||||||
final long lowestRule = (Long) msg.obj;
|
final long lowestRule = (Long) msg.obj;
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user