Loading core/api/module-lib-current.txt +12 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,18 @@ package android.net { method public int getResourceId(); } public final class NetworkStateSnapshot implements android.os.Parcelable { ctor public NetworkStateSnapshot(@NonNull android.net.Network, @NonNull android.net.NetworkCapabilities, @NonNull android.net.LinkProperties, @Nullable String, int); method public int describeContents(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkStateSnapshot> CREATOR; field public final int legacyType; field @NonNull public final android.net.LinkProperties linkProperties; field @NonNull public final android.net.Network network; field @NonNull public final android.net.NetworkCapabilities networkCapabilities; field @Nullable public final String subscriberId; } public class NetworkWatchlistManager { method @Nullable public byte[] getWatchlistConfigHash(); } Loading core/java/android/net/NetworkIdentity.java +2 −2 Original line number Diff line number Diff line Loading @@ -187,8 +187,8 @@ public class NetworkIdentity implements Comparable<NetworkIdentity> { // TODO: Delete this function after NetworkPolicyManagerService finishes the migration. public static NetworkIdentity buildNetworkIdentity(Context context, NetworkState state, boolean defaultNetwork, @NetworkType int subType) { final NetworkStateSnapshot snapshot = new NetworkStateSnapshot(state.linkProperties, state.networkCapabilities, state.network, state.subscriberId, final NetworkStateSnapshot snapshot = new NetworkStateSnapshot(state.network, state.networkCapabilities, state.linkProperties, state.subscriberId, state.legacyNetworkType); return buildNetworkIdentity(context, snapshot, defaultNetwork, subType); } Loading core/java/android/net/NetworkStateSnapshot.java +34 −13 Original line number Diff line number Diff line Loading @@ -16,8 +16,11 @@ package android.net; import static android.annotation.SystemApi.Client.MODULE_LIBRARIES; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.os.Parcel; import android.os.Parcelable; Loading @@ -28,31 +31,49 @@ import java.util.Objects; * * @hide */ @SystemApi(client = MODULE_LIBRARIES) public final class NetworkStateSnapshot implements Parcelable { /** The network associated with this snapshot. */ @NonNull public final LinkProperties linkProperties; public final Network network; /** The {@link NetworkCapabilities} of the network associated with this snapshot. */ @NonNull public final NetworkCapabilities networkCapabilities; /** The {@link LinkProperties} of the network associated with this snapshot. */ @NonNull public final Network network; public final LinkProperties linkProperties; /** * The Subscriber Id of the network associated with this snapshot. See * {@link android.telephony.TelephonyManager#getSubscriberId()}. */ @Nullable public final String subscriberId; /** * The legacy type of the network associated with this snapshot. See * {@code ConnectivityManager#TYPE_*}. */ public final int legacyType; public NetworkStateSnapshot(@NonNull LinkProperties linkProperties, @NonNull NetworkCapabilities networkCapabilities, @NonNull Network network, public NetworkStateSnapshot(@NonNull Network network, @NonNull NetworkCapabilities networkCapabilities, @NonNull LinkProperties linkProperties, @Nullable String subscriberId, int legacyType) { this.linkProperties = Objects.requireNonNull(linkProperties); this.networkCapabilities = Objects.requireNonNull(networkCapabilities); this.network = Objects.requireNonNull(network); this.networkCapabilities = Objects.requireNonNull(networkCapabilities); this.linkProperties = Objects.requireNonNull(linkProperties); this.subscriberId = subscriberId; this.legacyType = legacyType; } /** @hide */ public NetworkStateSnapshot(@NonNull Parcel in) { linkProperties = in.readParcelable(null); networkCapabilities = in.readParcelable(null); network = in.readParcelable(null); networkCapabilities = in.readParcelable(null); linkProperties = in.readParcelable(null); subscriberId = in.readString(); legacyType = in.readInt(); } Loading @@ -64,9 +85,9 @@ public final class NetworkStateSnapshot implements Parcelable { @Override public void writeToParcel(@NonNull Parcel out, int flags) { out.writeParcelable(linkProperties, flags); out.writeParcelable(networkCapabilities, flags); out.writeParcelable(network, flags); out.writeParcelable(networkCapabilities, flags); out.writeParcelable(linkProperties, flags); out.writeString(subscriberId); out.writeInt(legacyType); } Loading @@ -93,14 +114,14 @@ public final class NetworkStateSnapshot implements Parcelable { if (!(o instanceof NetworkStateSnapshot)) return false; NetworkStateSnapshot that = (NetworkStateSnapshot) o; return legacyType == that.legacyType && Objects.equals(linkProperties, that.linkProperties) && Objects.equals(networkCapabilities, that.networkCapabilities) && Objects.equals(network, that.network) && Objects.equals(networkCapabilities, that.networkCapabilities) && Objects.equals(linkProperties, that.linkProperties) && Objects.equals(subscriberId, that.subscriberId); } @Override public int hashCode() { return Objects.hash(linkProperties, networkCapabilities, network, subscriberId, legacyType); return Objects.hash(network, networkCapabilities, linkProperties, subscriberId, legacyType); } } services/core/java/com/android/server/ConnectivityService.java +2 −2 Original line number Diff line number Diff line Loading @@ -7952,8 +7952,8 @@ public class ConnectivityService extends IConnectivityManager.Stub final ArrayList<NetworkStateSnapshot> snapshots = new ArrayList<>(); // TODO: Directly use NetworkStateSnapshot when feasible. for (final NetworkState state : getAllNetworkState()) { final NetworkStateSnapshot snapshot = new NetworkStateSnapshot(state.linkProperties, state.networkCapabilities, state.network, state.subscriberId, final NetworkStateSnapshot snapshot = new NetworkStateSnapshot(state.network, state.networkCapabilities, state.linkProperties, state.subscriberId, state.legacyNetworkType); snapshots.add(snapshot); } Loading tests/net/common/java/android/net/NetworkStateSnapshotTest.kt +3 −3 Original line number Diff line number Diff line Loading @@ -63,10 +63,10 @@ class NetworkStateSnapshotTest { @Test fun testParcelUnparcel() { val emptySnapshot = NetworkStateSnapshot(LinkProperties(), NetworkCapabilities(), Network(TEST_NETID), null, TYPE_NONE) val emptySnapshot = NetworkStateSnapshot(Network(TEST_NETID), NetworkCapabilities(), LinkProperties(), null, TYPE_NONE) val snapshot = NetworkStateSnapshot( TEST_LINK_PROPERTIES, TEST_CAPABILITIES, Network(TEST_NETID), TEST_IMSI, TYPE_WIFI) Network(TEST_NETID), TEST_CAPABILITIES, TEST_LINK_PROPERTIES, TEST_IMSI, TYPE_WIFI) assertParcelSane(emptySnapshot, 5) assertParcelSane(snapshot, 5) } Loading Loading
core/api/module-lib-current.txt +12 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,18 @@ package android.net { method public int getResourceId(); } public final class NetworkStateSnapshot implements android.os.Parcelable { ctor public NetworkStateSnapshot(@NonNull android.net.Network, @NonNull android.net.NetworkCapabilities, @NonNull android.net.LinkProperties, @Nullable String, int); method public int describeContents(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkStateSnapshot> CREATOR; field public final int legacyType; field @NonNull public final android.net.LinkProperties linkProperties; field @NonNull public final android.net.Network network; field @NonNull public final android.net.NetworkCapabilities networkCapabilities; field @Nullable public final String subscriberId; } public class NetworkWatchlistManager { method @Nullable public byte[] getWatchlistConfigHash(); } Loading
core/java/android/net/NetworkIdentity.java +2 −2 Original line number Diff line number Diff line Loading @@ -187,8 +187,8 @@ public class NetworkIdentity implements Comparable<NetworkIdentity> { // TODO: Delete this function after NetworkPolicyManagerService finishes the migration. public static NetworkIdentity buildNetworkIdentity(Context context, NetworkState state, boolean defaultNetwork, @NetworkType int subType) { final NetworkStateSnapshot snapshot = new NetworkStateSnapshot(state.linkProperties, state.networkCapabilities, state.network, state.subscriberId, final NetworkStateSnapshot snapshot = new NetworkStateSnapshot(state.network, state.networkCapabilities, state.linkProperties, state.subscriberId, state.legacyNetworkType); return buildNetworkIdentity(context, snapshot, defaultNetwork, subType); } Loading
core/java/android/net/NetworkStateSnapshot.java +34 −13 Original line number Diff line number Diff line Loading @@ -16,8 +16,11 @@ package android.net; import static android.annotation.SystemApi.Client.MODULE_LIBRARIES; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.os.Parcel; import android.os.Parcelable; Loading @@ -28,31 +31,49 @@ import java.util.Objects; * * @hide */ @SystemApi(client = MODULE_LIBRARIES) public final class NetworkStateSnapshot implements Parcelable { /** The network associated with this snapshot. */ @NonNull public final LinkProperties linkProperties; public final Network network; /** The {@link NetworkCapabilities} of the network associated with this snapshot. */ @NonNull public final NetworkCapabilities networkCapabilities; /** The {@link LinkProperties} of the network associated with this snapshot. */ @NonNull public final Network network; public final LinkProperties linkProperties; /** * The Subscriber Id of the network associated with this snapshot. See * {@link android.telephony.TelephonyManager#getSubscriberId()}. */ @Nullable public final String subscriberId; /** * The legacy type of the network associated with this snapshot. See * {@code ConnectivityManager#TYPE_*}. */ public final int legacyType; public NetworkStateSnapshot(@NonNull LinkProperties linkProperties, @NonNull NetworkCapabilities networkCapabilities, @NonNull Network network, public NetworkStateSnapshot(@NonNull Network network, @NonNull NetworkCapabilities networkCapabilities, @NonNull LinkProperties linkProperties, @Nullable String subscriberId, int legacyType) { this.linkProperties = Objects.requireNonNull(linkProperties); this.networkCapabilities = Objects.requireNonNull(networkCapabilities); this.network = Objects.requireNonNull(network); this.networkCapabilities = Objects.requireNonNull(networkCapabilities); this.linkProperties = Objects.requireNonNull(linkProperties); this.subscriberId = subscriberId; this.legacyType = legacyType; } /** @hide */ public NetworkStateSnapshot(@NonNull Parcel in) { linkProperties = in.readParcelable(null); networkCapabilities = in.readParcelable(null); network = in.readParcelable(null); networkCapabilities = in.readParcelable(null); linkProperties = in.readParcelable(null); subscriberId = in.readString(); legacyType = in.readInt(); } Loading @@ -64,9 +85,9 @@ public final class NetworkStateSnapshot implements Parcelable { @Override public void writeToParcel(@NonNull Parcel out, int flags) { out.writeParcelable(linkProperties, flags); out.writeParcelable(networkCapabilities, flags); out.writeParcelable(network, flags); out.writeParcelable(networkCapabilities, flags); out.writeParcelable(linkProperties, flags); out.writeString(subscriberId); out.writeInt(legacyType); } Loading @@ -93,14 +114,14 @@ public final class NetworkStateSnapshot implements Parcelable { if (!(o instanceof NetworkStateSnapshot)) return false; NetworkStateSnapshot that = (NetworkStateSnapshot) o; return legacyType == that.legacyType && Objects.equals(linkProperties, that.linkProperties) && Objects.equals(networkCapabilities, that.networkCapabilities) && Objects.equals(network, that.network) && Objects.equals(networkCapabilities, that.networkCapabilities) && Objects.equals(linkProperties, that.linkProperties) && Objects.equals(subscriberId, that.subscriberId); } @Override public int hashCode() { return Objects.hash(linkProperties, networkCapabilities, network, subscriberId, legacyType); return Objects.hash(network, networkCapabilities, linkProperties, subscriberId, legacyType); } }
services/core/java/com/android/server/ConnectivityService.java +2 −2 Original line number Diff line number Diff line Loading @@ -7952,8 +7952,8 @@ public class ConnectivityService extends IConnectivityManager.Stub final ArrayList<NetworkStateSnapshot> snapshots = new ArrayList<>(); // TODO: Directly use NetworkStateSnapshot when feasible. for (final NetworkState state : getAllNetworkState()) { final NetworkStateSnapshot snapshot = new NetworkStateSnapshot(state.linkProperties, state.networkCapabilities, state.network, state.subscriberId, final NetworkStateSnapshot snapshot = new NetworkStateSnapshot(state.network, state.networkCapabilities, state.linkProperties, state.subscriberId, state.legacyNetworkType); snapshots.add(snapshot); } Loading
tests/net/common/java/android/net/NetworkStateSnapshotTest.kt +3 −3 Original line number Diff line number Diff line Loading @@ -63,10 +63,10 @@ class NetworkStateSnapshotTest { @Test fun testParcelUnparcel() { val emptySnapshot = NetworkStateSnapshot(LinkProperties(), NetworkCapabilities(), Network(TEST_NETID), null, TYPE_NONE) val emptySnapshot = NetworkStateSnapshot(Network(TEST_NETID), NetworkCapabilities(), LinkProperties(), null, TYPE_NONE) val snapshot = NetworkStateSnapshot( TEST_LINK_PROPERTIES, TEST_CAPABILITIES, Network(TEST_NETID), TEST_IMSI, TYPE_WIFI) Network(TEST_NETID), TEST_CAPABILITIES, TEST_LINK_PROPERTIES, TEST_IMSI, TYPE_WIFI) assertParcelSane(emptySnapshot, 5) assertParcelSane(snapshot, 5) } Loading