Merge "Add Nullable IpConfiguration to ethernet update request" am: bc1479af8f am: f95355f826

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2025283

Change-Id: I16fab89269d4b689405e62a169f378373782b396
This commit is contained in:
Patrick Rohr
2022-03-17 07:43:02 +00:00
committed by Automerger Merge Worker

View File

@@ -33,17 +33,20 @@ import java.util.Objects;
*/ */
@SystemApi @SystemApi
public final class EthernetNetworkUpdateRequest implements Parcelable { public final class EthernetNetworkUpdateRequest implements Parcelable {
@NonNull @Nullable
private final IpConfiguration mIpConfig; private final IpConfiguration mIpConfig;
@Nullable @Nullable
private final NetworkCapabilities mNetworkCapabilities; private final NetworkCapabilities mNetworkCapabilities;
/** /**
* @return the new {@link IpConfiguration}. * Setting the {@link IpConfiguration} is optional in {@link EthernetNetworkUpdateRequest}.
* When set to null, the existing IpConfiguration is not updated.
*
* @return the new {@link IpConfiguration} or null.
*/ */
@NonNull @Nullable
public IpConfiguration getIpConfiguration() { public IpConfiguration getIpConfiguration() {
return new IpConfiguration(mIpConfig); return mIpConfig == null ? null : new IpConfiguration(mIpConfig);
} }
/** /**
@@ -57,9 +60,8 @@ public final class EthernetNetworkUpdateRequest implements Parcelable {
return mNetworkCapabilities == null ? null : new NetworkCapabilities(mNetworkCapabilities); return mNetworkCapabilities == null ? null : new NetworkCapabilities(mNetworkCapabilities);
} }
private EthernetNetworkUpdateRequest(@NonNull final IpConfiguration ipConfig, private EthernetNetworkUpdateRequest(@Nullable final IpConfiguration ipConfig,
@Nullable final NetworkCapabilities networkCapabilities) { @Nullable final NetworkCapabilities networkCapabilities) {
Objects.requireNonNull(ipConfig);
mIpConfig = ipConfig; mIpConfig = ipConfig;
mNetworkCapabilities = networkCapabilities; mNetworkCapabilities = networkCapabilities;
} }
@@ -90,7 +92,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 = null == request.mIpConfig
? null : new IpConfiguration(request.mIpConfig);
mBuilderNetworkCapabilities = null == request.mNetworkCapabilities mBuilderNetworkCapabilities = null == request.mNetworkCapabilities
? null : new NetworkCapabilities(request.mNetworkCapabilities); ? null : new NetworkCapabilities(request.mNetworkCapabilities);
} }
@@ -101,8 +104,8 @@ public final class EthernetNetworkUpdateRequest implements Parcelable {
* @return The builder to facilitate chaining. * @return The builder to facilitate chaining.
*/ */
@NonNull @NonNull
public Builder setIpConfiguration(@NonNull final IpConfiguration ipConfig) { public Builder setIpConfiguration(@Nullable final IpConfiguration ipConfig) {
mBuilderIpConfig = new IpConfiguration(ipConfig); mBuilderIpConfig = ipConfig == null ? null : new IpConfiguration(ipConfig);
return this; return this;
} }
@@ -119,9 +122,16 @@ public final class EthernetNetworkUpdateRequest implements Parcelable {
/** /**
* Build {@link EthernetNetworkUpdateRequest} return the current update request. * Build {@link EthernetNetworkUpdateRequest} return the current update request.
*
* @throws IllegalStateException when both mBuilderNetworkCapabilities and mBuilderIpConfig
* are null.
*/ */
@NonNull @NonNull
public EthernetNetworkUpdateRequest build() { public EthernetNetworkUpdateRequest build() {
if (mBuilderIpConfig == null && mBuilderNetworkCapabilities == null) {
throw new IllegalStateException(
"Cannot construct an empty EthernetNetworkUpdateRequest");
}
return new EthernetNetworkUpdateRequest(mBuilderIpConfig, mBuilderNetworkCapabilities); return new EthernetNetworkUpdateRequest(mBuilderIpConfig, mBuilderNetworkCapabilities);
} }
} }