Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3b91df7c authored by Felipe Leme's avatar Felipe Leme Committed by android-build-merger
Browse files

Merge "Added a onRestrictBackgroundBlacklistChanged() callback." into nyc-dev

am: 2c6a450f

* commit '2c6a450f':
  Added a onRestrictBackgroundBlacklistChanged() callback.

Change-Id: Id9cb27070e1e72b12c5ade60b637e63319021f90
parents 225d2219 2c6a450f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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);

}
+3 −0
Original line number Diff line number Diff line
@@ -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 {
+8 −0
Original line number Diff line number Diff line
@@ -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 + ")");
            }
        }
    };

    /**
+5 −0
Original line number Diff line number Diff line
@@ -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
+33 −3
Original line number Diff line number Diff line
@@ -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;
@@ -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();
        }
@@ -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) {
@@ -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) {
@@ -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 {