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

Commit 39aa78bb authored by Kamaljeet Maini's avatar Kamaljeet Maini Committed by Gerrit Code Review
Browse files

NetworkManagement: Add ability to restrict app WiFi background data access

Settings/SETTINGS-87

Change-Id: I49124f24d27cde349519ca19ffc39675c897c47c
parent 7f49f3b1
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -53,6 +53,8 @@ public class NetworkPolicyManager {
    public static final int POLICY_REJECT_ON_WLAN = 0x8000;
    /** Reject application network traffic on cellular network **/
    public static final int POLICY_REJECT_ON_DATA = 0x10000;
    /** Reject application background network traffic on WiFi network **/
    public static final int POLICY_REJECT_ON_WLAN_BACKGROUND = 0x20000;

    /* RULE_* are not masks and they must be exclusive */
    public static final int RULE_UNKNOWN = -1;
+3 −1
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ import static android.net.NetworkPolicyManager.POLICY_NONE;
import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
import static android.net.NetworkPolicyManager.POLICY_REJECT_ON_DATA;
import static android.net.NetworkPolicyManager.POLICY_REJECT_ON_WLAN;
import static android.net.NetworkPolicyManager.POLICY_REJECT_ON_WLAN_BACKGROUND;
import static android.net.NetworkPolicyManager.RULE_ALLOW_ALL;
import static android.net.NetworkPolicyManager.RULE_REJECT_ALL;
import static android.net.NetworkPolicyManager.RULE_REJECT_METERED;
@@ -2400,7 +2401,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
        }

        try {
            mNetworkManager.restrictAppOnWlan(uid, (uidPolicy & POLICY_REJECT_ON_WLAN) != 0);
            mNetworkManager.restrictAppOnWlan(uid, (uidPolicy & POLICY_REJECT_ON_WLAN) != 0 ||
                    (((uidPolicy & POLICY_REJECT_ON_WLAN_BACKGROUND) != 0) && !uidForeground));
            mNetworkManager.restrictAppOnData(uid, (uidPolicy & POLICY_REJECT_ON_DATA) != 0);
        } catch (RemoteException e) {
            // ignored; service lives in system_server