Allowing for null net caps in updateConfiguration
Marking NetworkCapabilities as nullable in updateConfiguration and updating where needed to support this. This will allow callers of the ethernet network management updateConfiguration API to use it primarily for setting an ethernet network's IP configuration. Bug: 222565654 Bug: 220017952 Bug: 210485380 Test: atest EthernetNetworkUpdateRequestTest Change-Id: I1f80e950acbd078a6b3378e1fa5f1e4173112e79
This commit is contained in:
committed by
Patrick Rohr
parent
9a74429f56
commit
db3007caca
@@ -24,36 +24,52 @@ import android.os.Parcelable;
|
|||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
/** @hide */
|
/**
|
||||||
|
* Represents a request to update an existing Ethernet interface.
|
||||||
|
*
|
||||||
|
* @see EthernetManager#updateConfiguration
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
public final class EthernetNetworkUpdateRequest implements Parcelable {
|
public final class EthernetNetworkUpdateRequest implements Parcelable {
|
||||||
@NonNull
|
@NonNull
|
||||||
private final IpConfiguration mIpConfig;
|
private final IpConfiguration mIpConfig;
|
||||||
@NonNull
|
@Nullable
|
||||||
private final NetworkCapabilities mNetworkCapabilities;
|
private final NetworkCapabilities mNetworkCapabilities;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the new {@link IpConfiguration}.
|
||||||
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
public IpConfiguration getIpConfiguration() {
|
public IpConfiguration getIpConfiguration() {
|
||||||
return new IpConfiguration(mIpConfig);
|
return new IpConfiguration(mIpConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NonNull
|
/**
|
||||||
|
* Setting the {@link NetworkCapabilities} is optional in {@link EthernetNetworkUpdateRequest}.
|
||||||
|
* When set to null, the existing NetworkCapabilities are not updated.
|
||||||
|
*
|
||||||
|
* @return the new {@link NetworkCapabilities} or null.
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
public NetworkCapabilities getNetworkCapabilities() {
|
public NetworkCapabilities getNetworkCapabilities() {
|
||||||
return new NetworkCapabilities(mNetworkCapabilities);
|
return mNetworkCapabilities == null ? null : new NetworkCapabilities(mNetworkCapabilities);
|
||||||
}
|
}
|
||||||
|
|
||||||
private EthernetNetworkUpdateRequest(@NonNull final IpConfiguration ipConfig,
|
private EthernetNetworkUpdateRequest(@NonNull final IpConfiguration ipConfig,
|
||||||
@NonNull final NetworkCapabilities networkCapabilities) {
|
@Nullable final NetworkCapabilities networkCapabilities) {
|
||||||
Objects.requireNonNull(ipConfig);
|
Objects.requireNonNull(ipConfig);
|
||||||
Objects.requireNonNull(networkCapabilities);
|
mIpConfig = ipConfig;
|
||||||
mIpConfig = new IpConfiguration(ipConfig);
|
mNetworkCapabilities = networkCapabilities;
|
||||||
mNetworkCapabilities = new NetworkCapabilities(networkCapabilities);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private EthernetNetworkUpdateRequest(@NonNull final Parcel source) {
|
private EthernetNetworkUpdateRequest(@NonNull final Parcel source) {
|
||||||
Objects.requireNonNull(source);
|
Objects.requireNonNull(source);
|
||||||
mIpConfig = IpConfiguration.CREATOR.createFromParcel(source);
|
mIpConfig = source.readParcelable(IpConfiguration.class.getClassLoader(),
|
||||||
mNetworkCapabilities = NetworkCapabilities.CREATOR.createFromParcel(source);
|
IpConfiguration.class);
|
||||||
|
mNetworkCapabilities = source.readParcelable(NetworkCapabilities.class.getClassLoader(),
|
||||||
|
NetworkCapabilities.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -75,7 +91,8 @@ public final class EthernetNetworkUpdateRequest implements Parcelable {
|
|||||||
public Builder(@NonNull final EthernetNetworkUpdateRequest request) {
|
public Builder(@NonNull final EthernetNetworkUpdateRequest request) {
|
||||||
Objects.requireNonNull(request);
|
Objects.requireNonNull(request);
|
||||||
mBuilderIpConfig = new IpConfiguration(request.mIpConfig);
|
mBuilderIpConfig = new IpConfiguration(request.mIpConfig);
|
||||||
mBuilderNetworkCapabilities = new NetworkCapabilities(request.mNetworkCapabilities);
|
mBuilderNetworkCapabilities = null == request.mNetworkCapabilities
|
||||||
|
? null : new NetworkCapabilities(request.mNetworkCapabilities);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -85,7 +102,6 @@ public final class EthernetNetworkUpdateRequest implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
public Builder setIpConfiguration(@NonNull final IpConfiguration ipConfig) {
|
public Builder setIpConfiguration(@NonNull final IpConfiguration ipConfig) {
|
||||||
Objects.requireNonNull(ipConfig);
|
|
||||||
mBuilderIpConfig = new IpConfiguration(ipConfig);
|
mBuilderIpConfig = new IpConfiguration(ipConfig);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -96,9 +112,8 @@ public final class EthernetNetworkUpdateRequest implements Parcelable {
|
|||||||
* @return The builder to facilitate chaining.
|
* @return The builder to facilitate chaining.
|
||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
public Builder setNetworkCapabilities(@NonNull final NetworkCapabilities nc) {
|
public Builder setNetworkCapabilities(@Nullable final NetworkCapabilities nc) {
|
||||||
Objects.requireNonNull(nc);
|
mBuilderNetworkCapabilities = nc == null ? null : new NetworkCapabilities(nc);
|
||||||
mBuilderNetworkCapabilities = new NetworkCapabilities(nc);
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -135,8 +150,8 @@ public final class EthernetNetworkUpdateRequest implements Parcelable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeToParcel(@NonNull Parcel dest, int flags) {
|
public void writeToParcel(@NonNull Parcel dest, int flags) {
|
||||||
mIpConfig.writeToParcel(dest, flags);
|
dest.writeParcelable(mIpConfig, flags);
|
||||||
mNetworkCapabilities.writeToParcel(dest, flags);
|
dest.writeParcelable(mNetworkCapabilities, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user