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

Commit 75641038 authored by Steven Liu's avatar Steven Liu Committed by Android (Google) Code Review
Browse files

Merge "Add carrier ID field for WifiConfiguration and PasspointConfiguration"

parents 2bbe7de4 48b101f5
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -4746,6 +4746,7 @@ package android.net.wifi {
    method @Deprecated public boolean isEphemeral();
    method @Deprecated public boolean isNoInternetAccessExpected();
    field @Deprecated public boolean allowAutojoin;
    field @Deprecated public int carrierId;
    field @Deprecated public String creatorName;
    field @Deprecated public int creatorUid;
    field @Deprecated public String lastUpdateName;
@@ -4852,6 +4853,10 @@ package android.net.wifi {
    field public int numUsage;
  }
  public static final class WifiNetworkSuggestion.Builder {
    method @NonNull @RequiresPermission(android.Manifest.permission.NETWORK_CARRIER_PROVISIONING) public android.net.wifi.WifiNetworkSuggestion.Builder setCarrierId(int);
  }
  public class WifiScanner {
    method @Deprecated public void configureWifiChange(int, int, int, int, int, android.net.wifi.WifiScanner.BssidInfo[]);
    method @Deprecated public void configureWifiChange(android.net.wifi.WifiScanner.WifiChangeSettings);
+13 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import android.os.Parcel;
import android.os.Parcelable;
import android.os.SystemClock;
import android.os.UserHandle;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.BackupUtils;
import android.util.Log;
@@ -729,6 +730,14 @@ public class WifiConfiguration implements Parcelable {
    @SystemApi
    public String lastUpdateName;

    /**
     * The carrier ID identifies the operator who provides this network configuration.
     *    see {@link TelephonyManager#getSimCarrierId()}
     * @hide
     */
    @SystemApi
    public int carrierId = TelephonyManager.UNKNOWN_CARRIER_ID;

    /**
     * @hide
     * Status of user approval for connection
@@ -1850,6 +1859,7 @@ public class WifiConfiguration implements Parcelable {
                .append(" PRIO: ").append(this.priority)
                .append(" HIDDEN: ").append(this.hiddenSSID)
                .append(" PMF: ").append(this.requirePMF)
                .append("CarrierId: ").append(this.carrierId)
                .append('\n');


@@ -2443,6 +2453,7 @@ public class WifiConfiguration implements Parcelable {
            randomizedMacExpirationTimeMs = source.randomizedMacExpirationTimeMs;
            requirePMF = source.requirePMF;
            updateIdentifier = source.updateIdentifier;
            carrierId = source.carrierId;
        }
    }

@@ -2517,6 +2528,7 @@ public class WifiConfiguration implements Parcelable {
        dest.writeInt(macRandomizationSetting);
        dest.writeInt(osu ? 1 : 0);
        dest.writeLong(randomizedMacExpirationTimeMs);
        dest.writeInt(carrierId);
    }

    /** Implement the Parcelable interface {@hide} */
@@ -2593,6 +2605,7 @@ public class WifiConfiguration implements Parcelable {
                config.macRandomizationSetting = in.readInt();
                config.osu = in.readInt() != 0;
                config.randomizedMacExpirationTimeMs = in.readLong();
                config.carrierId = in.readInt();
                return config;
            }

+19 −0
Original line number Diff line number Diff line
@@ -1263,4 +1263,23 @@ public class WifiEnterpriseConfig implements Parcelable {
    public @Ocsp int getOcsp() {
        return mOcsp;
    }

    /**
     * If the current authentication method needs SIM card.
     * @return true if the credential information require SIM card for current authentication
     * method, otherwise it returns false.
     * @hide
     */
    public boolean requireSimCredential() {
        if (mEapMethod == Eap.SIM || mEapMethod == Eap.AKA || mEapMethod == Eap.AKA_PRIME) {
            return true;
        }
        if (mEapMethod == Eap.PEAP) {
            if (mPhase2Method == Phase2.SIM || mPhase2Method == Phase2.AKA
                    || mPhase2Method == Phase2.AKA_PRIME) {
                return true;
            }
        }
        return false;
    }
}
+29 −0
Original line number Diff line number Diff line
@@ -21,12 +21,15 @@ import static com.android.internal.util.Preconditions.checkNotNull;
import android.annotation.IntRange;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.annotation.SystemApi;
import android.app.ActivityThread;
import android.net.MacAddress;
import android.net.wifi.hotspot2.PasspointConfiguration;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.Process;
import android.telephony.TelephonyManager;
import android.text.TextUtils;

import java.nio.charset.CharsetEncoder;
@@ -107,6 +110,12 @@ public final class WifiNetworkSuggestion implements Parcelable {
         */
        private int mPriority;

        /**
         * The carrier ID identifies the operator who provides this network configuration.
         *    see {@link TelephonyManager#getSimCarrierId()}
         */
        private int mCarrierId;

        public Builder() {
            mSsid = null;
            mBssid =  null;
@@ -121,6 +130,7 @@ public final class WifiNetworkSuggestion implements Parcelable {
            mIsUserInteractionRequired = false;
            mIsMetered = false;
            mPriority = UNASSIGNED_PRIORITY;
            mCarrierId = TelephonyManager.UNKNOWN_CARRIER_ID;
        }

        /**
@@ -257,6 +267,23 @@ public final class WifiNetworkSuggestion implements Parcelable {
            return this;
        }

        /**
         * Set the carrier ID of the network operator. The carrier ID associates a Suggested
         * network with a specific carrier (and therefore SIM). The carrier ID must be provided
         * for any network which uses the SIM-based authentication: e.g. EAP-SIM, EAP-AKA,
         * EAP-AKA', and EAP-PEAP with SIM-based phase 2 authentication.
         * @param carrierId see {@link TelephonyManager#getSimCarrierId()}.
         * @return Instance of {@link Builder} to enable chaining of the builder method.
         *
         * @hide
         */
        @SystemApi
        @RequiresPermission(android.Manifest.permission.NETWORK_CARRIER_PROVISIONING)
        public @NonNull Builder setCarrierId(int carrierId) {
            mCarrierId = carrierId;
            return this;
        }

        /**
         * Specifies whether this represents a hidden network.
         * <p>
@@ -380,6 +407,7 @@ public final class WifiNetworkSuggestion implements Parcelable {
            wifiConfiguration.meteredOverride =
                    mIsMetered ? WifiConfiguration.METERED_OVERRIDE_METERED
                            : WifiConfiguration.METERED_OVERRIDE_NONE;
            wifiConfiguration.carrierId = mCarrierId;
            return wifiConfiguration;
        }

@@ -405,6 +433,7 @@ public final class WifiNetworkSuggestion implements Parcelable {
            wifiConfiguration.meteredOverride =
                    mIsMetered ? WifiConfiguration.METERED_OVERRIDE_METERED
                            : WifiConfiguration.METERED_OVERRIDE_NONE;
            mPasspointConfiguration.setCarrierId(mCarrierId);
            return wifiConfiguration;
        }

+31 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.net.wifi.hotspot2.pps.UpdateParameter;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;

@@ -397,6 +398,30 @@ public final class PasspointConfiguration implements Parcelable {
        return mServiceFriendlyNames.get(mServiceFriendlyNames.keySet().stream().findFirst().get());
    }

    /**
     * The carrier ID identifies the operator who provides this network configuration.
     *    see {@link TelephonyManager#getSimCarrierId()}
     */
    private int mCarrierId = TelephonyManager.UNKNOWN_CARRIER_ID;

    /**
     * Set the carrier ID associated with current configuration.
     * @param carrierId {@code mCarrierId}
     * @hide
     */
    public void setCarrierId(int carrierId) {
        this.mCarrierId = carrierId;
    }

    /**
     * Get the carrier ID associated with current configuration.
     * @return {@code mCarrierId}
     * @hide
     */
    public int getCarrierId() {
        return mCarrierId;
    }

    /**
     * Constructor for creating PasspointConfiguration with default values.
     */
@@ -438,6 +463,7 @@ public final class PasspointConfiguration implements Parcelable {
        mUsageLimitUsageTimePeriodInMinutes = source.mUsageLimitUsageTimePeriodInMinutes;
        mServiceFriendlyNames = source.mServiceFriendlyNames;
        mAaaServerTrustedNames = source.mAaaServerTrustedNames;
        mCarrierId = source.mCarrierId;
    }

    @Override
@@ -466,6 +492,7 @@ public final class PasspointConfiguration implements Parcelable {
        bundle.putSerializable("serviceFriendlyNames",
                (HashMap<String, String>) mServiceFriendlyNames);
        dest.writeBundle(bundle);
        dest.writeInt(mCarrierId);
    }

    @Override
@@ -495,6 +522,7 @@ public final class PasspointConfiguration implements Parcelable {
                && mUsageLimitStartTimeInMillis == that.mUsageLimitStartTimeInMillis
                && mUsageLimitDataLimit == that.mUsageLimitDataLimit
                && mUsageLimitTimeLimitInMinutes == that.mUsageLimitTimeLimitInMinutes
                && mCarrierId == that.mCarrierId
                && (mServiceFriendlyNames == null ? that.mServiceFriendlyNames == null
                : mServiceFriendlyNames.equals(that.mServiceFriendlyNames));
    }
@@ -505,7 +533,7 @@ public final class PasspointConfiguration implements Parcelable {
                mUpdateIdentifier, mCredentialPriority, mSubscriptionCreationTimeInMillis,
                mSubscriptionExpirationTimeInMillis, mUsageLimitUsageTimePeriodInMinutes,
                mUsageLimitStartTimeInMillis, mUsageLimitDataLimit, mUsageLimitTimeLimitInMinutes,
                mServiceFriendlyNames);
                mServiceFriendlyNames, mCarrierId);
    }

    @Override
@@ -558,6 +586,7 @@ public final class PasspointConfiguration implements Parcelable {
        if (mServiceFriendlyNames != null) {
            builder.append("ServiceFriendlyNames: ").append(mServiceFriendlyNames);
        }
        builder.append("CarrierId:" + mCarrierId);
        return builder.toString();
    }

@@ -662,6 +691,7 @@ public final class PasspointConfiguration implements Parcelable {
                Map<String, String> friendlyNamesMap = (HashMap) bundle.getSerializable(
                        "serviceFriendlyNames");
                config.setServiceFriendlyNames(friendlyNamesMap);
                config.mCarrierId = in.readInt();
                return config;
            }