Add a systemapi constructor for NetworkAgent am: 0900154ef5 am: 1021194560
Change-Id: I091a6c7d8e92c22ca9393b5c974fcda5356d4102
This commit is contained in:
@@ -262,32 +262,60 @@ public abstract class NetworkAgent {
|
||||
*/
|
||||
public static final int CMD_REMOVE_KEEPALIVE_PACKET_FILTER = BASE + 17;
|
||||
|
||||
// TODO : remove these two constructors. They are a stopgap measure to help sheperding a number
|
||||
// of dependent changes that would conflict throughout the automerger graph. Having these
|
||||
// temporarily helps with the process of going through with all these dependent changes across
|
||||
// the entire tree.
|
||||
/** @hide TODO: decide which of these to expose. */
|
||||
/** @hide TODO: remove and replace usage with the public constructor. */
|
||||
public NetworkAgent(Looper looper, Context context, String logTag, NetworkInfo ni,
|
||||
NetworkCapabilities nc, LinkProperties lp, int score) {
|
||||
this(looper, context, logTag, ni, nc, lp, score, null, NetworkProvider.ID_NONE);
|
||||
}
|
||||
|
||||
/** @hide TODO: decide which of these to expose. */
|
||||
/** @hide TODO: remove and replace usage with the public constructor. */
|
||||
public NetworkAgent(Looper looper, Context context, String logTag, NetworkInfo ni,
|
||||
NetworkCapabilities nc, LinkProperties lp, int score, NetworkAgentConfig config) {
|
||||
this(looper, context, logTag, ni, nc, lp, score, config, NetworkProvider.ID_NONE);
|
||||
}
|
||||
|
||||
/** @hide TODO: decide which of these to expose. */
|
||||
/** @hide TODO: remove and replace usage with the public constructor. */
|
||||
public NetworkAgent(Looper looper, Context context, String logTag, NetworkInfo ni,
|
||||
NetworkCapabilities nc, LinkProperties lp, int score, int providerId) {
|
||||
this(looper, context, logTag, ni, nc, lp, score, null, providerId);
|
||||
}
|
||||
|
||||
/** @hide TODO: decide which of these to expose. */
|
||||
/** @hide TODO: remove and replace usage with the public constructor. */
|
||||
public NetworkAgent(Looper looper, Context context, String logTag, NetworkInfo ni,
|
||||
NetworkCapabilities nc, LinkProperties lp, int score, NetworkAgentConfig config,
|
||||
int providerId) {
|
||||
this(looper, context, logTag, nc, lp, score, config, providerId, ni);
|
||||
}
|
||||
|
||||
private static NetworkInfo getLegacyNetworkInfo(final NetworkAgentConfig config) {
|
||||
// The subtype can be changed with (TODO) setLegacySubtype, but it starts
|
||||
// with the type and an empty description.
|
||||
return new NetworkInfo(config.legacyType, config.legacyType, config.legacyTypeName, "");
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new network agent.
|
||||
* @param context a {@link Context} to get system services from.
|
||||
* @param looper the {@link Looper} on which to invoke the callbacks.
|
||||
* @param logTag the tag for logs
|
||||
* @param nc the initial {@link NetworkCapabilities} of this network. Update with
|
||||
* sendNetworkCapabilities.
|
||||
* @param lp the initial {@link LinkProperties} of this network. Update with sendLinkProperties.
|
||||
* @param score the initial score of this network. Update with sendNetworkScore.
|
||||
* @param config an immutable {@link NetworkAgentConfig} for this agent.
|
||||
* @param provider the {@link NetworkProvider} managing this agent.
|
||||
*/
|
||||
public NetworkAgent(@NonNull Context context, @NonNull Looper looper, @NonNull String logTag,
|
||||
@NonNull NetworkCapabilities nc, @NonNull LinkProperties lp, int score,
|
||||
@NonNull NetworkAgentConfig config, @Nullable NetworkProvider provider) {
|
||||
this(looper, context, logTag, nc, lp, score, config,
|
||||
provider == null ? NetworkProvider.ID_NONE : provider.getProviderId(),
|
||||
getLegacyNetworkInfo(config));
|
||||
}
|
||||
|
||||
private NetworkAgent(Looper looper, Context context, String logTag, NetworkCapabilities nc,
|
||||
LinkProperties lp, int score, NetworkAgentConfig config, int providerId,
|
||||
NetworkInfo ni) {
|
||||
mHandler = new NetworkAgentHandler(looper);
|
||||
LOG_TAG = logTag;
|
||||
mContext = context;
|
||||
|
||||
@@ -21,12 +21,11 @@ import android.annotation.Nullable;
|
||||
import android.annotation.SystemApi;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import android.text.TextUtils;
|
||||
|
||||
/**
|
||||
* Allows a network transport to provide the system with policy and configuration information about
|
||||
* a particular network when registering a {@link NetworkAgent}. This information cannot change once
|
||||
* the agent is registered.
|
||||
* a particular network when registering a {@link NetworkAgent}.
|
||||
* @note This information cannot change once the agent is registered.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@@ -119,6 +118,19 @@ public final class NetworkAgentConfig implements Parcelable {
|
||||
return !skip464xlat;
|
||||
}
|
||||
|
||||
/**
|
||||
* The legacy type of this network agent, or TYPE_NONE if unset.
|
||||
* @hide
|
||||
*/
|
||||
public int legacyType = ConnectivityManager.TYPE_NONE;
|
||||
|
||||
/**
|
||||
* @return the legacy type
|
||||
*/
|
||||
public int getLegacyType() {
|
||||
return legacyType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set to true if the PRIVATE_DNS_BROKEN notification has shown for this network.
|
||||
* Reset this bit when private DNS mode is changed from strict mode to opportunistic/off mode.
|
||||
@@ -127,6 +139,21 @@ public final class NetworkAgentConfig implements Parcelable {
|
||||
*/
|
||||
public boolean hasShownBroken;
|
||||
|
||||
/**
|
||||
* The name of the legacy network type. It's a free-form string used in logging.
|
||||
* @hide
|
||||
*/
|
||||
@NonNull
|
||||
public String legacyTypeName = "";
|
||||
|
||||
/**
|
||||
* @return the name of the legacy network type. It's a free-form string used in logging.
|
||||
*/
|
||||
@NonNull
|
||||
public String getLegacyTypeName() {
|
||||
return legacyTypeName;
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
public NetworkAgentConfig() {
|
||||
}
|
||||
@@ -140,6 +167,8 @@ public final class NetworkAgentConfig implements Parcelable {
|
||||
subscriberId = nac.subscriberId;
|
||||
provisioningNotificationDisabled = nac.provisioningNotificationDisabled;
|
||||
skip464xlat = nac.skip464xlat;
|
||||
legacyType = nac.legacyType;
|
||||
legacyTypeName = nac.legacyTypeName;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -184,6 +213,29 @@ public final class NetworkAgentConfig implements Parcelable {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the legacy type for this network.
|
||||
*
|
||||
* @param legacyType the type
|
||||
* @return this builder, to facilitate chaining.
|
||||
*/
|
||||
@NonNull
|
||||
public Builder setLegacyType(int legacyType) {
|
||||
mConfig.legacyType = legacyType;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the name of the legacy type of the agent. It's a free-form string used in logging.
|
||||
* @param legacyTypeName the name
|
||||
* @return this builder, to facilitate chaining.
|
||||
*/
|
||||
@NonNull
|
||||
public Builder setLegacyTypeName(@NonNull String legacyTypeName) {
|
||||
mConfig.legacyTypeName = legacyTypeName;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the constructed {@link NetworkAgentConfig} object.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user