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

Commit 31e7ebdd authored by Frank Li's avatar Frank Li Committed by Gerrit Code Review
Browse files

Merge changes from topic "NetworkAgent02"

* changes:
  Fix cannot success verify count of the networkAgent Config items on R device
  [TL02]Remove hidden API usage of NetworkAgent
parents ac196a1e d5eb5cdc
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -217,6 +217,7 @@ package android.net {
    method public void markConnected();
    method public void onAddKeepalivePacketFilter(int, @NonNull android.net.KeepalivePacketData);
    method public void onAutomaticReconnectDisabled();
    method public void onBandwidthUpdateRequested();
    method public void onNetworkCreated();
    method public void onNetworkDisconnected();
    method public void onNetworkUnwanted();
@@ -236,6 +237,7 @@ package android.net {
    method public final void sendQosSessionAvailable(int, int, @NonNull android.net.QosSessionAttributes);
    method public final void sendQosSessionLost(int, int, int);
    method public final void sendSocketKeepaliveEvent(int, int);
    method @Deprecated public void setLegacySubtype(int, @NonNull String);
    method public final void setUnderlyingNetworks(@Nullable java.util.List<android.net.Network>);
    method public void unregister();
    field public static final int VALIDATION_STATUS_NOT_VALID = 2; // 0x2
@@ -256,7 +258,12 @@ package android.net {
  public static final class NetworkAgentConfig.Builder {
    ctor public NetworkAgentConfig.Builder();
    method @NonNull public android.net.NetworkAgentConfig build();
    method @NonNull public android.net.NetworkAgentConfig.Builder disableNat64Detection();
    method @NonNull public android.net.NetworkAgentConfig.Builder disableProvisioningNotification();
    method @NonNull public android.net.NetworkAgentConfig.Builder setExplicitlySelected(boolean);
    method @NonNull public android.net.NetworkAgentConfig.Builder setLegacyExtraInfo(@NonNull String);
    method @NonNull public android.net.NetworkAgentConfig.Builder setLegacySubType(int);
    method @NonNull public android.net.NetworkAgentConfig.Builder setLegacySubTypeName(@NonNull String);
    method @NonNull public android.net.NetworkAgentConfig.Builder setLegacyType(int);
    method @NonNull public android.net.NetworkAgentConfig.Builder setLegacyTypeName(@NonNull String);
    method @NonNull public android.net.NetworkAgentConfig.Builder setPartialConnectivityAcceptable(boolean);
@@ -405,6 +412,7 @@ package android.net {
  }

  public abstract class SocketKeepalive implements java.lang.AutoCloseable {
    field public static final int ERROR_NO_SUCH_SLOT = -33; // 0xffffffdf
    field public static final int SUCCESS = 0; // 0x0
  }

+4 −3
Original line number Diff line number Diff line
@@ -379,9 +379,8 @@ public abstract class NetworkAgent {
    public static final int CMD_NETWORK_DISCONNECTED = BASE + 23;

    private static NetworkInfo getLegacyNetworkInfo(final NetworkAgentConfig config) {
        // The subtype can be changed with (TODO) setLegacySubtype, but it starts
        // with 0 (TelephonyManager.NETWORK_TYPE_UNKNOWN) and an empty description.
        final NetworkInfo ni = new NetworkInfo(config.legacyType, 0, config.legacyTypeName, "");
        final NetworkInfo ni = new NetworkInfo(config.legacyType, config.legacySubType,
                config.legacyTypeName, config.legacySubTypeName);
        ni.setIsAvailable(true);
        ni.setDetailedState(NetworkInfo.DetailedState.CONNECTING, null /* reason */,
                config.getLegacyExtraInfo());
@@ -863,6 +862,7 @@ public abstract class NetworkAgent {
     * @hide
     */
    @Deprecated
    @SystemApi
    public void setLegacySubtype(final int legacySubtype, @NonNull final String legacySubtypeName) {
        mNetworkInfo.setSubtype(legacySubtype, legacySubtypeName);
        queueOrSendNetworkInfo(mNetworkInfo);
@@ -996,6 +996,7 @@ public abstract class NetworkAgent {
     * shall try to overwrite this method and produce a bandwidth update if capable.
     * @hide
     */
    @SystemApi
    public void onBandwidthUpdateRequested() {
        pollLceData();
    }
+42 −3
Original line number Diff line number Diff line
@@ -174,6 +174,12 @@ public final class NetworkAgentConfig implements Parcelable {
        return legacyType;
    }

    /**
     * The legacy Sub type of this network agent, or TYPE_NONE if unset.
     * @hide
     */
    public int legacySubType = ConnectivityManager.TYPE_NONE;

    /**
     * Set to true if the PRIVATE_DNS_BROKEN notification has shown for this network.
     * Reset this bit when private DNS mode is changed from strict mode to opportunistic/off mode.
@@ -199,6 +205,13 @@ public final class NetworkAgentConfig implements Parcelable {
        return legacyTypeName;
    }

    /**
     * The name of the legacy Sub network type. It's a free-form string.
     * @hide
     */
    @NonNull
    public String legacySubTypeName = "";

    /**
     * The legacy extra info of the agent. The extra info should only be :
     * <ul>
@@ -235,6 +248,8 @@ public final class NetworkAgentConfig implements Parcelable {
            skip464xlat = nac.skip464xlat;
            legacyType = nac.legacyType;
            legacyTypeName = nac.legacyTypeName;
            legacySubType = nac.legacySubType;
            legacySubTypeName = nac.legacySubTypeName;
            mLegacyExtraInfo = nac.mLegacyExtraInfo;
        }
    }
@@ -300,7 +315,6 @@ public final class NetworkAgentConfig implements Parcelable {
         * and reduce idle traffic on networks that are known to be IPv6-only without a NAT64.
         *
         * @return this builder, to facilitate chaining.
         * @hide
         */
        @NonNull
        public Builder disableNat64Detection() {
@@ -313,7 +327,6 @@ public final class NetworkAgentConfig implements Parcelable {
         * perform its own carrier-specific provisioning procedure.
         *
         * @return this builder, to facilitate chaining.
         * @hide
         */
        @NonNull
        public Builder disableProvisioningNotification() {
@@ -333,6 +346,18 @@ public final class NetworkAgentConfig implements Parcelable {
            return this;
        }

        /**
         * Sets the legacy sub-type for this network.
         *
         * @param legacySubType the type
         * @return this builder, to facilitate chaining.
         */
        @NonNull
        public Builder setLegacySubType(final int legacySubType) {
            mConfig.legacySubType = legacySubType;
            return this;
        }

        /**
         * Sets the name of the legacy type of the agent. It's a free-form string used in logging.
         * @param legacyTypeName the name
@@ -344,11 +369,21 @@ public final class NetworkAgentConfig implements Parcelable {
            return this;
        }

        /**
         * Sets the name of the legacy Sub-type of the agent. It's a free-form string.
         * @param legacySubTypeName the name
         * @return this builder, to facilitate chaining.
         */
        @NonNull
        public Builder setLegacySubTypeName(@NonNull String legacySubTypeName) {
            mConfig.legacySubTypeName = legacySubTypeName;
            return this;
        }

        /**
         * Sets the legacy extra info of the agent.
         * @param legacyExtraInfo the legacy extra info.
         * @return this builder, to facilitate chaining.
         * @hide
         */
        @NonNull
        public Builder setLegacyExtraInfo(@NonNull String legacyExtraInfo) {
@@ -435,6 +470,8 @@ public final class NetworkAgentConfig implements Parcelable {
        out.writeInt(skip464xlat ? 1 : 0);
        out.writeInt(legacyType);
        out.writeString(legacyTypeName);
        out.writeInt(legacySubType);
        out.writeString(legacySubTypeName);
        out.writeString(mLegacyExtraInfo);
    }

@@ -452,6 +489,8 @@ public final class NetworkAgentConfig implements Parcelable {
            networkAgentConfig.skip464xlat = in.readInt() != 0;
            networkAgentConfig.legacyType = in.readInt();
            networkAgentConfig.legacyTypeName = in.readString();
            networkAgentConfig.legacySubType = in.readInt();
            networkAgentConfig.legacySubTypeName = in.readString();
            networkAgentConfig.mLegacyExtraInfo = in.readString();
            return networkAgentConfig;
        }
+65 −19
Original line number Diff line number Diff line
@@ -55,36 +55,68 @@ public abstract class SocketKeepalive implements AutoCloseable {
    static final String TAG = "SocketKeepalive";

    /**
     * No errors.
     * Success. It indicates there is no error.
     * @hide
     */
    @SystemApi
    public static final int SUCCESS = 0;

    /** @hide */
    /**
     * No keepalive. This should only be internally as it indicates There is no keepalive.
     * It should not propagate to applications.
     * @hide
     */
    public static final int NO_KEEPALIVE = -1;

    /** @hide */
    /**
     * Data received.
     * @hide
     */
    public static final int DATA_RECEIVED = -2;

    /** @hide */
    /**
     * The binder died.
     * @hide
     */
    public static final int BINDER_DIED = -10;

    /** The specified {@code Network} is not connected. */
    /**
     * The invalid network. It indicates the specified {@code Network} is not connected.
     */
    public static final int ERROR_INVALID_NETWORK = -20;
    /** The specified IP addresses are invalid. For example, the specified source IP address is
     * not configured on the specified {@code Network}. */

    /**
     * The invalid IP addresses. Indicates the specified IP addresses are invalid.
     * For example, the specified source IP address is not configured on the
     * specified {@code Network}.
     */
    public static final int ERROR_INVALID_IP_ADDRESS = -21;
    /** The requested port is invalid. */

    /**
     * The port is invalid.
     */
    public static final int ERROR_INVALID_PORT = -22;
    /** The packet length is invalid (e.g., too long). */

    /**
     * The length is invalid (e.g. too long).
     */
    public static final int ERROR_INVALID_LENGTH = -23;
    /** The packet transmission interval is invalid (e.g., too short). */

    /**
     * The interval is invalid (e.g. too short).
     */
    public static final int ERROR_INVALID_INTERVAL = -24;
    /** The target socket is invalid. */

    /**
     * The socket is invalid.
     */
    public static final int ERROR_INVALID_SOCKET = -25;
    /** The target socket is not idle. */

    /**
     * The socket is not idle.
     */
    public static final int ERROR_SOCKET_NOT_IDLE = -26;

    /**
     * The stop reason is uninitialized. This should only be internally used as initial state
     * of stop reason, instead of propagating to application.
@@ -92,15 +124,29 @@ public abstract class SocketKeepalive implements AutoCloseable {
     */
    public static final int ERROR_STOP_REASON_UNINITIALIZED = -27;

    /** The device does not support this request. */
    /**
     * The request is unsupported.
     */
    public static final int ERROR_UNSUPPORTED = -30;
    /** @hide TODO: delete when telephony code has been updated. */
    public static final int ERROR_HARDWARE_UNSUPPORTED = ERROR_UNSUPPORTED;
    /** The hardware returned an error. */

    /**
     * There was a hardware error.
     */
    public static final int ERROR_HARDWARE_ERROR = -31;
    /** The limitation of resource is reached. */

    /**
     * Resources are insufficient (e.g. all hardware slots are in use).
     */
    public static final int ERROR_INSUFFICIENT_RESOURCES = -32;

    /**
     * There was no such slot. This should only be internally as it indicates
     * a programming error in the system server. It should not propagate to
     * applications.
     * @hide
     */
    @SystemApi
    public static final int ERROR_NO_SUCH_SLOT = -33;

    /** @hide */
    @Retention(RetentionPolicy.SOURCE)
@@ -111,7 +157,8 @@ public abstract class SocketKeepalive implements AutoCloseable {
            ERROR_INVALID_LENGTH,
            ERROR_INVALID_INTERVAL,
            ERROR_INVALID_SOCKET,
            ERROR_SOCKET_NOT_IDLE
            ERROR_SOCKET_NOT_IDLE,
            ERROR_NO_SUCH_SLOT
    })
    public @interface ErrorCode {}

@@ -122,7 +169,6 @@ public abstract class SocketKeepalive implements AutoCloseable {
            ERROR_INVALID_LENGTH,
            ERROR_UNSUPPORTED,
            ERROR_INSUFFICIENT_RESOURCES,
            ERROR_HARDWARE_UNSUPPORTED
    })
    public @interface KeepaliveEvent {}

+3 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import static android.net.SocketKeepalive.ERROR_INVALID_INTERVAL;
import static android.net.SocketKeepalive.ERROR_INVALID_IP_ADDRESS;
import static android.net.SocketKeepalive.ERROR_INVALID_NETWORK;
import static android.net.SocketKeepalive.ERROR_INVALID_SOCKET;
import static android.net.SocketKeepalive.ERROR_NO_SUCH_SLOT;
import static android.net.SocketKeepalive.ERROR_STOP_REASON_UNINITIALIZED;
import static android.net.SocketKeepalive.ERROR_UNSUPPORTED;
import static android.net.SocketKeepalive.MAX_INTERVAL_SEC;
@@ -518,6 +519,8 @@ public class KeepaliveTracker {
            }
        } else if (reason == ERROR_STOP_REASON_UNINITIALIZED) {
            throw new IllegalStateException("Unexpected stop reason: " + reason);
        } else if (reason == ERROR_NO_SUCH_SLOT) {
            throw new IllegalStateException("No such slot: " + reason);
        } else {
            notifyErrorCallback(ki.mCallback, reason);
        }
Loading