Loading api/system-current.txt +8 −0 Original line number Diff line number Diff line Loading @@ -4613,12 +4613,20 @@ package android.net { public class NetworkPolicyManager { method @NonNull public android.telephony.SubscriptionPlan[] getSubscriptionPlans(int, @NonNull String); method @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY) public void registerSubscriptionCallback(@NonNull android.net.NetworkPolicyManager.SubscriptionCallback); method public void setSubscriptionOverride(int, int, int, long, @NonNull String); method public void setSubscriptionPlans(int, @NonNull android.telephony.SubscriptionPlan[], @NonNull String); method @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY) public void unregisterSubscriptionCallback(@NonNull android.net.NetworkPolicyManager.SubscriptionCallback); field public static final int SUBSCRIPTION_OVERRIDE_CONGESTED = 2; // 0x2 field public static final int SUBSCRIPTION_OVERRIDE_UNMETERED = 1; // 0x1 } public static class NetworkPolicyManager.SubscriptionCallback { ctor public NetworkPolicyManager.SubscriptionCallback(); method public void onSubscriptionOverride(int, int, int); method public void onSubscriptionPlansChanged(int, @NonNull android.telephony.SubscriptionPlan[]); } public class NetworkProvider { ctor public NetworkProvider(@NonNull android.content.Context, @NonNull android.os.Looper, @NonNull String); method @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public void declareNetworkRequestUnfulfillable(@NonNull android.net.NetworkRequest); Loading core/java/android/net/NetworkPolicyManager.java +83 −2 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static android.content.pm.PackageManager.GET_SIGNATURES; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SystemService; import android.app.ActivityManager; Loading @@ -46,11 +47,13 @@ import java.lang.annotation.RetentionPolicy; import java.time.ZonedDateTime; import java.util.HashSet; import java.util.Iterator; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; /** * Manager for creating and modifying network policy rules. * * {@hide} * @hide */ @SystemService(Context.NETWORK_POLICY_SERVICE) @SystemApi Loading Loading @@ -89,6 +92,7 @@ public class NetworkPolicyManager { * * See network-policy-restrictions.md for more info. */ /** * No specific rule was set * @hide Loading Loading @@ -120,6 +124,7 @@ public class NetworkPolicyManager { * @hide */ public static final int RULE_REJECT_ALL = 1 << 6; /** * Mask used to get the {@code RULE_xxx_METERED} rules * @hide Loading @@ -133,7 +138,6 @@ public class NetworkPolicyManager { /** @hide */ public static final int FIREWALL_RULE_DEFAULT = 0; /** @hide */ public static final String FIREWALL_CHAIN_NAME_NONE = "none"; /** @hide */ Loading Loading @@ -180,6 +184,9 @@ public class NetworkPolicyManager { @UnsupportedAppUsage private INetworkPolicyManager mService; private final Map<SubscriptionCallback, SubscriptionCallbackProxy> mCallbackMap = new ConcurrentHashMap<>(); /** @hide */ public NetworkPolicyManager(Context context, INetworkPolicyManager service) { if (service == null) { Loading Loading @@ -285,6 +292,35 @@ public class NetworkPolicyManager { } } /** @hide */ @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY) @SystemApi public void registerSubscriptionCallback(@NonNull SubscriptionCallback callback) { if (callback == null) { throw new NullPointerException("Callback cannot be null."); } final SubscriptionCallbackProxy callbackProxy = new SubscriptionCallbackProxy(callback); if (null != mCallbackMap.putIfAbsent(callback, callbackProxy)) { throw new IllegalArgumentException("Callback is already registered."); } registerListener(callbackProxy); } /** @hide */ @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY) @SystemApi public void unregisterSubscriptionCallback(@NonNull SubscriptionCallback callback) { if (callback == null) { throw new NullPointerException("Callback cannot be null."); } final SubscriptionCallbackProxy callbackProxy = mCallbackMap.remove(callback); if (callbackProxy == null) return; unregisterListener(callbackProxy); } /** @hide */ public void setNetworkPolicies(NetworkPolicy[] policies) { try { Loading Loading @@ -512,6 +548,51 @@ public class NetworkPolicyManager { return WifiInfo.sanitizeSsid(ssid); } /** @hide */ @SystemApi public static class SubscriptionCallback { /** * Notify clients of a new override about a given subscription. * * @param subId the subscriber this override applies to. * @param overrideMask a bitmask that specifies which of the overrides is set. * @param overrideValue a bitmask that specifies the override values. */ public void onSubscriptionOverride(int subId, @SubscriptionOverrideMask int overrideMask, @SubscriptionOverrideMask int overrideValue) {} /** * Notify of subscription plans change about a given subscription. * * @param subId the subscriber id that got subscription plans change. * @param plans the list of subscription plans. */ public void onSubscriptionPlansChanged(int subId, @NonNull SubscriptionPlan[] plans) {} } /** * SubscriptionCallback proxy for SubscriptionCallback object. * @hide */ public class SubscriptionCallbackProxy extends Listener { private final SubscriptionCallback mCallback; SubscriptionCallbackProxy(SubscriptionCallback callback) { mCallback = callback; } @Override public void onSubscriptionOverride(int subId, @SubscriptionOverrideMask int overrideMask, @SubscriptionOverrideMask int overrideValue) { mCallback.onSubscriptionOverride(subId, overrideMask, overrideValue); } @Override public void onSubscriptionPlansChanged(int subId, SubscriptionPlan[] plans) { mCallback.onSubscriptionPlansChanged(subId, plans); } } /** {@hide} */ public static class Listener extends INetworkPolicyListener.Stub { @Override public void onUidRulesChanged(int uid, int uidRules) { } Loading Loading
api/system-current.txt +8 −0 Original line number Diff line number Diff line Loading @@ -4613,12 +4613,20 @@ package android.net { public class NetworkPolicyManager { method @NonNull public android.telephony.SubscriptionPlan[] getSubscriptionPlans(int, @NonNull String); method @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY) public void registerSubscriptionCallback(@NonNull android.net.NetworkPolicyManager.SubscriptionCallback); method public void setSubscriptionOverride(int, int, int, long, @NonNull String); method public void setSubscriptionPlans(int, @NonNull android.telephony.SubscriptionPlan[], @NonNull String); method @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY) public void unregisterSubscriptionCallback(@NonNull android.net.NetworkPolicyManager.SubscriptionCallback); field public static final int SUBSCRIPTION_OVERRIDE_CONGESTED = 2; // 0x2 field public static final int SUBSCRIPTION_OVERRIDE_UNMETERED = 1; // 0x1 } public static class NetworkPolicyManager.SubscriptionCallback { ctor public NetworkPolicyManager.SubscriptionCallback(); method public void onSubscriptionOverride(int, int, int); method public void onSubscriptionPlansChanged(int, @NonNull android.telephony.SubscriptionPlan[]); } public class NetworkProvider { ctor public NetworkProvider(@NonNull android.content.Context, @NonNull android.os.Looper, @NonNull String); method @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public void declareNetworkRequestUnfulfillable(@NonNull android.net.NetworkRequest); Loading
core/java/android/net/NetworkPolicyManager.java +83 −2 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static android.content.pm.PackageManager.GET_SIGNATURES; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SystemService; import android.app.ActivityManager; Loading @@ -46,11 +47,13 @@ import java.lang.annotation.RetentionPolicy; import java.time.ZonedDateTime; import java.util.HashSet; import java.util.Iterator; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; /** * Manager for creating and modifying network policy rules. * * {@hide} * @hide */ @SystemService(Context.NETWORK_POLICY_SERVICE) @SystemApi Loading Loading @@ -89,6 +92,7 @@ public class NetworkPolicyManager { * * See network-policy-restrictions.md for more info. */ /** * No specific rule was set * @hide Loading Loading @@ -120,6 +124,7 @@ public class NetworkPolicyManager { * @hide */ public static final int RULE_REJECT_ALL = 1 << 6; /** * Mask used to get the {@code RULE_xxx_METERED} rules * @hide Loading @@ -133,7 +138,6 @@ public class NetworkPolicyManager { /** @hide */ public static final int FIREWALL_RULE_DEFAULT = 0; /** @hide */ public static final String FIREWALL_CHAIN_NAME_NONE = "none"; /** @hide */ Loading Loading @@ -180,6 +184,9 @@ public class NetworkPolicyManager { @UnsupportedAppUsage private INetworkPolicyManager mService; private final Map<SubscriptionCallback, SubscriptionCallbackProxy> mCallbackMap = new ConcurrentHashMap<>(); /** @hide */ public NetworkPolicyManager(Context context, INetworkPolicyManager service) { if (service == null) { Loading Loading @@ -285,6 +292,35 @@ public class NetworkPolicyManager { } } /** @hide */ @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY) @SystemApi public void registerSubscriptionCallback(@NonNull SubscriptionCallback callback) { if (callback == null) { throw new NullPointerException("Callback cannot be null."); } final SubscriptionCallbackProxy callbackProxy = new SubscriptionCallbackProxy(callback); if (null != mCallbackMap.putIfAbsent(callback, callbackProxy)) { throw new IllegalArgumentException("Callback is already registered."); } registerListener(callbackProxy); } /** @hide */ @RequiresPermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY) @SystemApi public void unregisterSubscriptionCallback(@NonNull SubscriptionCallback callback) { if (callback == null) { throw new NullPointerException("Callback cannot be null."); } final SubscriptionCallbackProxy callbackProxy = mCallbackMap.remove(callback); if (callbackProxy == null) return; unregisterListener(callbackProxy); } /** @hide */ public void setNetworkPolicies(NetworkPolicy[] policies) { try { Loading Loading @@ -512,6 +548,51 @@ public class NetworkPolicyManager { return WifiInfo.sanitizeSsid(ssid); } /** @hide */ @SystemApi public static class SubscriptionCallback { /** * Notify clients of a new override about a given subscription. * * @param subId the subscriber this override applies to. * @param overrideMask a bitmask that specifies which of the overrides is set. * @param overrideValue a bitmask that specifies the override values. */ public void onSubscriptionOverride(int subId, @SubscriptionOverrideMask int overrideMask, @SubscriptionOverrideMask int overrideValue) {} /** * Notify of subscription plans change about a given subscription. * * @param subId the subscriber id that got subscription plans change. * @param plans the list of subscription plans. */ public void onSubscriptionPlansChanged(int subId, @NonNull SubscriptionPlan[] plans) {} } /** * SubscriptionCallback proxy for SubscriptionCallback object. * @hide */ public class SubscriptionCallbackProxy extends Listener { private final SubscriptionCallback mCallback; SubscriptionCallbackProxy(SubscriptionCallback callback) { mCallback = callback; } @Override public void onSubscriptionOverride(int subId, @SubscriptionOverrideMask int overrideMask, @SubscriptionOverrideMask int overrideValue) { mCallback.onSubscriptionOverride(subId, overrideMask, overrideValue); } @Override public void onSubscriptionPlansChanged(int subId, SubscriptionPlan[] plans) { mCallback.onSubscriptionPlansChanged(subId, plans); } } /** {@hide} */ public static class Listener extends INetworkPolicyListener.Stub { @Override public void onUidRulesChanged(int uid, int uidRules) { } Loading