Merge "Allowing for null net caps in updateConfiguration"

This commit is contained in:
Patrick Rohr
2022-03-09 09:16:29 +00:00
committed by Gerrit Code Review
2 changed files with 34 additions and 19 deletions

View File

@@ -7089,7 +7089,7 @@ package android.net {
public final class EthernetNetworkUpdateRequest implements android.os.Parcelable { public final class EthernetNetworkUpdateRequest implements android.os.Parcelable {
method public int describeContents(); method public int describeContents();
method @NonNull public android.net.IpConfiguration getIpConfiguration(); method @NonNull public android.net.IpConfiguration getIpConfiguration();
method @NonNull public android.net.NetworkCapabilities getNetworkCapabilities(); method @Nullable public android.net.NetworkCapabilities getNetworkCapabilities();
method public void writeToParcel(@NonNull android.os.Parcel, int); method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.net.EthernetNetworkUpdateRequest> CREATOR; field @NonNull public static final android.os.Parcelable.Creator<android.net.EthernetNetworkUpdateRequest> CREATOR;
} }
@@ -7099,7 +7099,7 @@ package android.net {
ctor public EthernetNetworkUpdateRequest.Builder(@NonNull android.net.EthernetNetworkUpdateRequest); ctor public EthernetNetworkUpdateRequest.Builder(@NonNull android.net.EthernetNetworkUpdateRequest);
method @NonNull public android.net.EthernetNetworkUpdateRequest build(); method @NonNull public android.net.EthernetNetworkUpdateRequest build();
method @NonNull public android.net.EthernetNetworkUpdateRequest.Builder setIpConfiguration(@NonNull android.net.IpConfiguration); method @NonNull public android.net.EthernetNetworkUpdateRequest.Builder setIpConfiguration(@NonNull android.net.IpConfiguration);
method @NonNull public android.net.EthernetNetworkUpdateRequest.Builder setNetworkCapabilities(@NonNull android.net.NetworkCapabilities); method @NonNull public android.net.EthernetNetworkUpdateRequest.Builder setNetworkCapabilities(@Nullable android.net.NetworkCapabilities);
} }
public final class MatchAllNetworkSpecifier extends android.net.NetworkSpecifier implements android.os.Parcelable { public final class MatchAllNetworkSpecifier extends android.net.NetworkSpecifier implements android.os.Parcelable {

View File

@@ -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