Merge "NetworkPolicyManager: Add @SystemApi for mainlne module"
This commit is contained in:
@@ -4613,12 +4613,20 @@ package android.net {
|
|||||||
|
|
||||||
public class NetworkPolicyManager {
|
public class NetworkPolicyManager {
|
||||||
method @NonNull public android.telephony.SubscriptionPlan[] getSubscriptionPlans(int, @NonNull String);
|
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 setSubscriptionOverride(int, int, int, long, @NonNull String);
|
||||||
method public void setSubscriptionPlans(int, @NonNull android.telephony.SubscriptionPlan[], @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_CONGESTED = 2; // 0x2
|
||||||
field public static final int SUBSCRIPTION_OVERRIDE_UNMETERED = 1; // 0x1
|
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 {
|
public class NetworkProvider {
|
||||||
ctor public NetworkProvider(@NonNull android.content.Context, @NonNull android.os.Looper, @NonNull String);
|
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);
|
method @RequiresPermission(android.Manifest.permission.NETWORK_FACTORY) public void declareNetworkRequestUnfulfillable(@NonNull android.net.NetworkRequest);
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import static android.content.pm.PackageManager.GET_SIGNATURES;
|
|||||||
|
|
||||||
import android.annotation.IntDef;
|
import android.annotation.IntDef;
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
|
import android.annotation.RequiresPermission;
|
||||||
import android.annotation.SystemApi;
|
import android.annotation.SystemApi;
|
||||||
import android.annotation.SystemService;
|
import android.annotation.SystemService;
|
||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
@@ -46,11 +47,13 @@ import java.lang.annotation.RetentionPolicy;
|
|||||||
import java.time.ZonedDateTime;
|
import java.time.ZonedDateTime;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Manager for creating and modifying network policy rules.
|
* Manager for creating and modifying network policy rules.
|
||||||
*
|
*
|
||||||
* {@hide}
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemService(Context.NETWORK_POLICY_SERVICE)
|
@SystemService(Context.NETWORK_POLICY_SERVICE)
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@@ -89,6 +92,7 @@ public class NetworkPolicyManager {
|
|||||||
*
|
*
|
||||||
* See network-policy-restrictions.md for more info.
|
* See network-policy-restrictions.md for more info.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* No specific rule was set
|
* No specific rule was set
|
||||||
* @hide
|
* @hide
|
||||||
@@ -120,6 +124,7 @@ public class NetworkPolicyManager {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
public static final int RULE_REJECT_ALL = 1 << 6;
|
public static final int RULE_REJECT_ALL = 1 << 6;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mask used to get the {@code RULE_xxx_METERED} rules
|
* Mask used to get the {@code RULE_xxx_METERED} rules
|
||||||
* @hide
|
* @hide
|
||||||
@@ -133,7 +138,6 @@ public class NetworkPolicyManager {
|
|||||||
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
public static final int FIREWALL_RULE_DEFAULT = 0;
|
public static final int FIREWALL_RULE_DEFAULT = 0;
|
||||||
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
public static final String FIREWALL_CHAIN_NAME_NONE = "none";
|
public static final String FIREWALL_CHAIN_NAME_NONE = "none";
|
||||||
/** @hide */
|
/** @hide */
|
||||||
@@ -180,6 +184,9 @@ public class NetworkPolicyManager {
|
|||||||
@UnsupportedAppUsage
|
@UnsupportedAppUsage
|
||||||
private INetworkPolicyManager mService;
|
private INetworkPolicyManager mService;
|
||||||
|
|
||||||
|
private final Map<SubscriptionCallback, SubscriptionCallbackProxy>
|
||||||
|
mCallbackMap = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
public NetworkPolicyManager(Context context, INetworkPolicyManager service) {
|
public NetworkPolicyManager(Context context, INetworkPolicyManager service) {
|
||||||
if (service == null) {
|
if (service == null) {
|
||||||
@@ -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 */
|
/** @hide */
|
||||||
public void setNetworkPolicies(NetworkPolicy[] policies) {
|
public void setNetworkPolicies(NetworkPolicy[] policies) {
|
||||||
try {
|
try {
|
||||||
@@ -512,6 +548,51 @@ public class NetworkPolicyManager {
|
|||||||
return WifiInfo.sanitizeSsid(ssid);
|
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} */
|
/** {@hide} */
|
||||||
public static class Listener extends INetworkPolicyListener.Stub {
|
public static class Listener extends INetworkPolicyListener.Stub {
|
||||||
@Override public void onUidRulesChanged(int uid, int uidRules) { }
|
@Override public void onUidRulesChanged(int uid, int uidRules) { }
|
||||||
|
|||||||
Reference in New Issue
Block a user