Loading core/java/android/net/INetworkPolicyListener.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -23,5 +23,6 @@ oneway interface INetworkPolicyListener { void onMeteredIfacesChanged(in String[] meteredIfaces); void onRestrictBackgroundChanged(boolean restrictBackground); void onRestrictBackgroundWhitelistChanged(int uid, boolean whitelisted); void onRestrictBackgroundBlacklistChanged(int uid, boolean blacklisted); } packages/SystemUI/src/com/android/systemui/statusbar/policy/DataSaverController.java +3 −0 Original line number Diff line number Diff line Loading @@ -93,6 +93,9 @@ public class DataSaverController { @Override public void onRestrictBackgroundWhitelistChanged(int uid, boolean whitelisted) { } @Override public void onRestrictBackgroundBlacklistChanged(int uid, boolean blacklisted) { } }; public interface Listener { Loading services/core/java/com/android/server/ConnectivityService.java +8 −0 Original line number Diff line number Diff line Loading @@ -1445,6 +1445,14 @@ public class ConnectivityService extends IConnectivityManager.Stub + 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 + ")"); } } }; /** Loading services/core/java/com/android/server/job/controllers/ConnectivityController.java +5 −0 Original line number Diff line number Diff line Loading @@ -178,6 +178,11 @@ public class ConnectivityController extends StateController implements public void onRestrictBackgroundWhitelistChanged(int uid, boolean whitelisted) { updateTrackedJobs(uid); } @Override public void onRestrictBackgroundBlacklistChanged(int uid, boolean blacklisted) { updateTrackedJobs(uid); } }; @Override Loading services/core/java/com/android/server/net/NetworkPolicyManagerService.java +33 −3 Original line number Diff line number Diff line Loading @@ -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_UPDATE_INTERFACE_QUOTA = 10; 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 IActivityManager mActivityManager; Loading Loading @@ -1707,9 +1708,14 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { private void setUidPolicyUncheckedLocked(int uid, int oldPolicy, int policy, boolean 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. if ((oldPolicy == POLICY_NONE && policy == POLICY_REJECT_METERED_BACKGROUND) || (oldPolicy == POLICY_REJECT_METERED_BACKGROUND && policy == POLICY_NONE)) { if ((oldPolicy == POLICY_NONE && isBlacklisted) || (wasBlacklisted && policy == POLICY_NONE)) { mHandler.obtainMessage(MSG_RESTRICT_BACKGROUND_WHITELIST_CHANGED, uid, 1, null) .sendToTarget(); } Loading Loading @@ -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() { @Override public boolean handleMessage(Message msg) { Loading Loading @@ -3186,7 +3202,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } mListeners.finishBroadcast(); } final PackageManager pm = mContext.getPackageManager(); final String[] packages = pm.getPackagesForUid(uid); if (changed && packages != null) { Loading @@ -3202,6 +3217,21 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } 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: { final long lowestRule = (Long) msg.obj; try { Loading Loading
core/java/android/net/INetworkPolicyListener.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -23,5 +23,6 @@ oneway interface INetworkPolicyListener { void onMeteredIfacesChanged(in String[] meteredIfaces); void onRestrictBackgroundChanged(boolean restrictBackground); void onRestrictBackgroundWhitelistChanged(int uid, boolean whitelisted); void onRestrictBackgroundBlacklistChanged(int uid, boolean blacklisted); }
packages/SystemUI/src/com/android/systemui/statusbar/policy/DataSaverController.java +3 −0 Original line number Diff line number Diff line Loading @@ -93,6 +93,9 @@ public class DataSaverController { @Override public void onRestrictBackgroundWhitelistChanged(int uid, boolean whitelisted) { } @Override public void onRestrictBackgroundBlacklistChanged(int uid, boolean blacklisted) { } }; public interface Listener { Loading
services/core/java/com/android/server/ConnectivityService.java +8 −0 Original line number Diff line number Diff line Loading @@ -1445,6 +1445,14 @@ public class ConnectivityService extends IConnectivityManager.Stub + 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 + ")"); } } }; /** Loading
services/core/java/com/android/server/job/controllers/ConnectivityController.java +5 −0 Original line number Diff line number Diff line Loading @@ -178,6 +178,11 @@ public class ConnectivityController extends StateController implements public void onRestrictBackgroundWhitelistChanged(int uid, boolean whitelisted) { updateTrackedJobs(uid); } @Override public void onRestrictBackgroundBlacklistChanged(int uid, boolean blacklisted) { updateTrackedJobs(uid); } }; @Override Loading
services/core/java/com/android/server/net/NetworkPolicyManagerService.java +33 −3 Original line number Diff line number Diff line Loading @@ -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_UPDATE_INTERFACE_QUOTA = 10; 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 IActivityManager mActivityManager; Loading Loading @@ -1707,9 +1708,14 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { private void setUidPolicyUncheckedLocked(int uid, int oldPolicy, int policy, boolean 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. if ((oldPolicy == POLICY_NONE && policy == POLICY_REJECT_METERED_BACKGROUND) || (oldPolicy == POLICY_REJECT_METERED_BACKGROUND && policy == POLICY_NONE)) { if ((oldPolicy == POLICY_NONE && isBlacklisted) || (wasBlacklisted && policy == POLICY_NONE)) { mHandler.obtainMessage(MSG_RESTRICT_BACKGROUND_WHITELIST_CHANGED, uid, 1, null) .sendToTarget(); } Loading Loading @@ -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() { @Override public boolean handleMessage(Message msg) { Loading Loading @@ -3186,7 +3202,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } mListeners.finishBroadcast(); } final PackageManager pm = mContext.getPackageManager(); final String[] packages = pm.getPackagesForUid(uid); if (changed && packages != null) { Loading @@ -3202,6 +3217,21 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } 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: { final long lowestRule = (Long) msg.obj; try { Loading