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

Commit 3057634f authored by Sooraj Sasindran's avatar Sooraj Sasindran Committed by Android (Google) Code Review
Browse files

Merge "Provide network bands in AvailableNetworkInfo"

parents 01458f27 40e6f909
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -44135,9 +44135,10 @@ package android.telephony {
  }
  public final class AvailableNetworkInfo implements android.os.Parcelable {
    ctor public AvailableNetworkInfo(int, int, java.util.List<java.lang.String>);
    ctor public AvailableNetworkInfo(int, int, @NonNull java.util.List<java.lang.String>, @NonNull java.util.List<java.lang.Integer>);
    method public int describeContents();
    method public java.util.List<java.lang.String> getMccMncs();
    method @NonNull public java.util.List<java.lang.Integer> getBands();
    method @NonNull public java.util.List<java.lang.String> getMccMncs();
    method public int getPriority();
    method public int getSubId();
    method public void writeToParcel(android.os.Parcel, int);
+39 −11
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package android.telephony;

import android.annotation.NonNull;
import android.os.Parcel;
import android.os.Parcelable;

@@ -62,10 +63,21 @@ public final class AvailableNetworkInfo implements Parcelable {
    /**
     * Describes the List of PLMN ids (MCC-MNC) associated with mSubId.
     * If this entry is left empty, then the platform software will not scan the network
     * to revalidate the input.
     * to revalidate the input else platform will scan and verify specified PLMNs are available.
     */
    private ArrayList<String> mMccMncs;

    /**
     * Returns the frequency bands associated with the {@link #getMccMncs() MCC/MNCs}.
     * Opportunistic network service will use these bands to scan.
     *
     * When no specific bands are specified (empty array or null) CBRS band (B48) will be
     * used for network scan.
     *
     * See {@link AccessNetworkConstants} for details.
     */
    private ArrayList<Integer> mBands;

    /**
     * Return subscription Id of the available network.
     * This value must be one of the entry retrieved from
@@ -91,10 +103,20 @@ public final class AvailableNetworkInfo implements Parcelable {
     * to revalidate the input.
     * @return list of PLMN ids
     */
    public List<String> getMccMncs() {
    public @NonNull List<String> getMccMncs() {
        return (List<String>) mMccMncs.clone();
    }

    /**
     * Returns the frequency bands that need to be scanned by opportunistic network service
     *
     * The returned value is defined in either of {@link AccessNetworkConstants.GeranBand},
     * {@link AccessNetworkConstants.UtranBand} and {@link AccessNetworkConstants.EutranBand}
     */
    public @NonNull List<Integer> getBands() {
        return (List<Integer>) mBands.clone();
    }

    @Override
    public int describeContents() {
        return 0;
@@ -105,6 +127,7 @@ public final class AvailableNetworkInfo implements Parcelable {
        dest.writeInt(mSubId);
        dest.writeInt(mPriority);
        dest.writeStringList(mMccMncs);
        dest.writeList(mBands);
    }

    private AvailableNetworkInfo(Parcel in) {
@@ -112,12 +135,16 @@ public final class AvailableNetworkInfo implements Parcelable {
        mPriority = in.readInt();
        mMccMncs = new ArrayList<>();
        in.readStringList(mMccMncs);
        mBands = new ArrayList<>();
        in.readList(mBands, Integer.class.getClassLoader());
    }

    public AvailableNetworkInfo(int subId, int priority, List<String> mccMncs) {
    public AvailableNetworkInfo(int subId, int priority, @NonNull List<String> mccMncs,
            @NonNull List<Integer> bands) {
        mSubId = subId;
        mPriority = priority;
        mMccMncs = new ArrayList<String>(mccMncs);
        mBands = new ArrayList<Integer>(bands);
    }

    @Override
@@ -137,12 +164,13 @@ public final class AvailableNetworkInfo implements Parcelable {
        return (mSubId == ani.mSubId
            && mPriority == ani.mPriority
            && (((mMccMncs != null)
                && mMccMncs.equals(ani.mMccMncs))));
            && mMccMncs.equals(ani.mMccMncs)))
            && mBands.equals(ani.mBands));
    }

    @Override
    public int hashCode() {
        return Objects.hash(mSubId, mPriority, mMccMncs);
        return Objects.hash(mSubId, mPriority, mMccMncs, mBands);
    }

    public static final @android.annotation.NonNull Parcelable.Creator<AvailableNetworkInfo> CREATOR =
@@ -163,7 +191,7 @@ public final class AvailableNetworkInfo implements Parcelable {
        return ("AvailableNetworkInfo:"
            + " mSubId: " + mSubId
            + " mPriority: " + mPriority
                + " mMccMncs: " + Arrays.toString(mMccMncs.toArray()));
            + " mMccMncs: " + Arrays.toString(mMccMncs.toArray())
            + " mBands: " + Arrays.toString(mBands.toArray()));
    }
}
+5 −5
Original line number Diff line number Diff line
@@ -10305,11 +10305,11 @@ public class TelephonyManager {
    /**
     * Update availability of a list of networks in the current location.
     *
     * This api should be called by opportunistic network selection app to inform
     * OpportunisticNetwork Service about the availability of a network at the current location.
     * This information will be used by OpportunisticNetwork service to decide to attach to the
     * network opportunistically.
     * If an empty list is passed, it is assumed that no network is available.
     * This api should be called to inform OpportunisticNetwork Service about the availability
     * of a network at the current location. This information will be used by OpportunisticNetwork
     * service to decide to attach to the network opportunistically. If an empty list is passed,
     * it is assumed that no network is available and will result in disabling the modem stack
     * to save power.
     * Requires that the calling app has carrier privileges on both primary and
     * secondary subscriptions (see {@link #hasCarrierPrivileges}), or has permission
     * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}.