Merge "NetworkPolicyManager: Add @SystemApi for mainlne module" am: c8b7cff7f4
Change-Id: Iba93c5f26010f647c78aef359e907d5f3b40fde0
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
@@ -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
|
||||
@@ -89,6 +92,7 @@ public class NetworkPolicyManager {
|
||||
*
|
||||
* See network-policy-restrictions.md for more info.
|
||||
*/
|
||||
|
||||
/**
|
||||
* No specific rule was set
|
||||
* @hide
|
||||
@@ -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
|
||||
@@ -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 */
|
||||
@@ -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) {
|
||||
@@ -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 {
|
||||
@@ -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) { }
|
||||
|
||||
Reference in New Issue
Block a user