Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8203ac16 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "[FUI09] Expose NetworkStateSnapshot as system API" am: 4dd42cdd

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

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I8eb6681328ad1f4a85bcc8c6c4b9446c23616b7a
parents 0e300026 4dd42cdd
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -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();
  }
+2 −2
Original line number Diff line number Diff line
@@ -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);
    }
+34 −13
Original line number Diff line number Diff line
@@ -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;

@@ -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();
    }
@@ -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);
    }
@@ -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);
    }
}
+2 −2
Original line number Diff line number Diff line
@@ -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);
            }
+3 −3
Original line number Diff line number Diff line
@@ -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