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

Commit 77fcc0da authored by Brad Ebinger's avatar Brad Ebinger Committed by Android (Google) Code Review
Browse files

Merge "Unhide @SystemApi Constructor" into pi-dev

parents 014432cb 37121d46
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -5556,6 +5556,7 @@ package android.telephony.euicc {
package android.telephony.ims {

  public final class ImsCallForwardInfo implements android.os.Parcelable {
    ctor public ImsCallForwardInfo(int, int, int, int, java.lang.String, int);
    method public int describeContents();
    method public int getCondition();
    method public java.lang.String getNumber();
@@ -5870,7 +5871,7 @@ package android.telephony.ims {
  }

  public final class ImsSsData implements android.os.Parcelable {
    ctor public ImsSsData();
    ctor public ImsSsData(int, int, int, int, int);
    method public int describeContents();
    method public boolean isTypeBarring();
    method public boolean isTypeCf();
@@ -5921,7 +5922,7 @@ package android.telephony.ims {
  }

  public final class ImsSsInfo implements android.os.Parcelable {
    ctor public ImsSsInfo();
    ctor public ImsSsInfo(int, java.lang.String);
    method public int describeContents();
    method public java.lang.String getIcbNum();
    method public int getStatus();
+20 −0
Original line number Diff line number Diff line
@@ -29,27 +29,47 @@ import android.os.Parcelable;
public final class ImsCallForwardInfo implements Parcelable {
    // Refer to ImsUtInterface#CDIV_CF_XXX
    /** @hide */
    // TODO: Make private, do not modify this field directly, use getter.
    public int mCondition;
    // 0: disabled, 1: enabled
    /** @hide */
    // TODO: Make private, do not modify this field directly, use getter.
    public int mStatus;
    // 0x91: International, 0x81: Unknown
    /** @hide */
    // TODO: Make private, do not modify this field directly, use getter.
    public int mToA;
    // Service class
    /** @hide */
    // TODO: Make private, do not modify this field directly, use getter.
    public int mServiceClass;
    // Number (it will not include the "sip" or "tel" URI scheme)
    /** @hide */
    // TODO: Make private, do not modify this field directly, use getter.
    public String mNumber;
    // No reply timer for CF
    /** @hide */
    // TODO: Make private, do not modify this field directly, use getter.
    public int mTimeSeconds;

    /** @hide */
    // TODO: Will be removed in the future, use public constructor instead.
    public ImsCallForwardInfo() {
    }

    /**
     * IMS Call Forward Information.
     */
    public ImsCallForwardInfo(int condition, int status, int toA, int serviceClass, String number,
            int replyTimerSec) {
        mCondition = condition;
        mStatus = status;
        mToA = toA;
        mServiceClass = serviceClass;
        mNumber = number;
        mTimeSeconds = replyTimerSec;
    }

    /** @hide */
    public ImsCallForwardInfo(Parcel in) {
        readFromParcel(in);
+271 −38
Original line number Diff line number Diff line
@@ -15,19 +15,24 @@
 */
package android.telephony.ims;

import android.annotation.IntDef;
import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/**
 * Provided STK Call Control Suplementary Service information
 * Provides STK Call Control Supplementary Service information.
 *
 * {@hide}
 */
@SystemApi
public final class ImsSsData implements Parcelable {

    //ServiceType
    // Supplementary Service Type
    // Call Forwarding
    public static final int SS_CFU = 0;
    public static final int SS_CF_BUSY = 1;
    public static final int SS_CF_NO_REPLY = 2;
@@ -35,12 +40,16 @@ public final class ImsSsData implements Parcelable {
    public static final int SS_CF_ALL = 4;
    public static final int SS_CF_ALL_CONDITIONAL = 5;
    public static final int SS_CFUT = 6;
    // Called Line Presentation
    public static final int SS_CLIP = 7;
    public static final int SS_CLIR = 8;
    public static final int SS_COLP = 9;
    public static final int SS_COLR = 10;
    // Calling Name Presentation
    public static final int SS_CNAP = 11;
    // Call Waiting
    public static final int SS_WAIT = 12;
    // Call Barring
    public static final int SS_BAOC = 13;
    public static final int SS_BAOIC = 14;
    public static final int SS_BAOIC_EXC_HOME = 15;
@@ -52,14 +61,14 @@ public final class ImsSsData implements Parcelable {
    public static final int SS_INCOMING_BARRING_DN = 21;
    public static final int SS_INCOMING_BARRING_ANONYMOUS = 22;

    //SSRequestType
    //Supplementary Service Request Types
    public static final int SS_ACTIVATION = 0;
    public static final int SS_DEACTIVATION = 1;
    public static final int SS_INTERROGATION = 2;
    public static final int SS_REGISTRATION = 3;
    public static final int SS_ERASURE = 4;

    //TeleserviceType
    // Supplementary Service Teleservice Type
    public static final int SS_ALL_TELE_AND_BEARER_SERVICES = 0;
    public static final int SS_ALL_TELESEVICES = 1;
    public static final int SS_TELEPHONY = 2;
@@ -67,40 +76,226 @@ public final class ImsSsData implements Parcelable {
    public static final int SS_SMS_SERVICES = 4;
    public static final int SS_ALL_TELESERVICES_EXCEPT_SMS = 5;

    // Refer to ServiceType
    // Service Class of Supplementary Service
    // See 27.007 +CCFC or +CLCK
    /** @hide */
    public int serviceType;
    // Refere to SSRequestType
    public static final int SERVICE_CLASS_NONE = 0; // no user input
    /** @hide */
    public int requestType;
    // Refer to TeleserviceType
    public static final int SERVICE_CLASS_VOICE = 1;
    /** @hide */
    public int teleserviceType;
    // Service Class
    public static final int SERVICE_CLASS_DATA = (1 << 1);
    /** @hide */
    public int serviceClass;
    // Error information
    public static final int SERVICE_CLASS_FAX = (1 << 2);
    /** @hide */
    public int result;

    public static final int SERVICE_CLASS_SMS = (1 << 3);
    /** @hide */
    public int[] ssInfo; /* Valid for all supplementary services.
                             This field will be empty for RequestType SS_INTERROGATION
                             and ServiceType SS_CF_*, SS_INCOMING_BARRING_DN,
                             SS_INCOMING_BARRING_ANONYMOUS.*/
    public static final int SERVICE_CLASS_DATA_SYNC = (1 << 4);
    /** @hide */
    public static final int SERVICE_CLASS_DATA_ASYNC = (1 << 5);
    /** @hide */
    public static final int SERVICE_CLASS_PACKET = (1 << 6);
    /** @hide */
    public static final int SERVICE_CLASS_PAD = (1 << 7);

    /**
     * Result code used if the operation was successful. See {@link #result}.
     * @hide
     */
    public static final int RESULT_SUCCESS = 0;

    /** @hide */
    public ImsCallForwardInfo[] cfInfo; /* Valid only for supplementary services
                                            ServiceType SS_CF_* and RequestType SS_INTERROGATION */
    @IntDef(flag = true, prefix = { "SS_" }, value = {
            SS_CFU,
            SS_CF_BUSY,
            SS_CF_NO_REPLY,
            SS_CF_NOT_REACHABLE,
            SS_CF_ALL,
            SS_CF_ALL_CONDITIONAL,
            SS_CFUT,
            SS_CLIP,
            SS_CLIR,
            SS_COLP,
            SS_COLR,
            SS_CNAP,
            SS_WAIT,
            SS_BAOC,
            SS_BAOIC,
            SS_BAOIC_EXC_HOME,
            SS_BAIC,
            SS_BAIC_ROAMING,
            SS_ALL_BARRING,
            SS_OUTGOING_BARRING,
            SS_INCOMING_BARRING,
            SS_INCOMING_BARRING_DN,
            SS_INCOMING_BARRING_ANONYMOUS
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface ServiceType{}

    /** @hide */
    public ImsSsInfo[] imsSsInfo;   /* Valid only for ServiceType SS_INCOMING_BARRING_DN and
                                        ServiceType SS_INCOMING_BARRING_ANONYMOUS */
    @IntDef(flag = true, prefix = { "SERVICE_CLASS" }, value = {
            SERVICE_CLASS_NONE,
            SERVICE_CLASS_VOICE,
            SERVICE_CLASS_DATA,
            SERVICE_CLASS_FAX,
            SERVICE_CLASS_SMS,
            SERVICE_CLASS_DATA_SYNC,
            SERVICE_CLASS_DATA_ASYNC,
            SERVICE_CLASS_PACKET,
            SERVICE_CLASS_PAD
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface ServiceClass{}

    /**
     * The Service type of this Supplementary service. Valid values include:
     *     SS_CFU,
     *     SS_CF_BUSY,
     *     SS_CF_NO_REPLY,
     *     SS_CF_NOT_REACHABLE,
     *     SS_CF_ALL,
     *     SS_CF_ALL_CONDITIONAL,
     *     SS_CFUT,
     *     SS_CLIP,
     *     SS_CLIR,
     *     SS_COLP,
     *     SS_COLR,
     *     SS_CNAP,
     *     SS_WAIT,
     *     SS_BAOC,
     *     SS_BAOIC,
     *     SS_BAOIC_EXC_HOME,
     *     SS_BAIC,
     *     SS_BAIC_ROAMING,
     *     SS_ALL_BARRING,
     *     SS_OUTGOING_BARRING,
     *     SS_INCOMING_BARRING,
     *     SS_INCOMING_BARRING_DN,
     *     SS_INCOMING_BARRING_ANONYMOUS
     *
     * @hide
     */
    // TODO: Make final, do not modify this field directly!
    public int serviceType;

    /**
     * Supplementary Service request Type. Valid values are:
     *     SS_ACTIVATION,
     *     SS_DEACTIVATION,
     *     SS_INTERROGATION,
     *     SS_REGISTRATION,
     *     SS_ERASURE
     *
     * @hide
     */
    // TODO: Make final, do not modify this field directly!
    public int requestType;

    /**
     * Supplementary Service teleservice type:
     *     SS_TELESERVICE_ALL_TELE_AND_BEARER,
     *     SS_TELESERVICE_ALL_TELESEVICES,
     *     SS_TELESERVICE_TELEPHONY,
     *     SS_TELESERVICE_ALL_DATA,
     *     SS_TELESERVICE_SMS,
     *     SS_TELESERVICE_ALL_TELESERVICES_EXCEPT_SMS
     *
     * @hide
     */
    // TODO: Make this param final! Do not try to modify this param directly.
    public int teleserviceType;

    /**
     * Supplementary Service service class. Valid values are:
     *     SERVICE_CLASS_NONE,
     *     SERVICE_CLASS_VOICE,
     *     SERVICE_CLASS_DATA,
     *     SERVICE_CLASS_FAX,
     *     SERVICE_CLASS_SMS,
     *     SERVICE_CLASS_DATA_SYNC,
     *     SERVICE_CLASS_DATA_ASYNC,
     *     SERVICE_CLASS_PACKET,
     *     SERVICE_CLASS_PAD
     *
     * @hide
     */
    // TODO: Make this param final! Do not try to modify this param directly.
    public int serviceClass;

    /**
     * Result of Supplementary Service operation. Valid values are:
     *     RESULT_SUCCESS if the result is success, or
     *     ImsReasonInfo code if the result is a failure.
     *
     * @hide
     */
    // TODO: Make this param final! Do not try to modify this param directly.
    public final int result;

    private int[] mSsInfo;
    private ImsCallForwardInfo[] mCfInfo;
    private ImsSsInfo[] mImsSsInfo;

    public ImsSsData() {}
    /**
     * Generate IMS Supplementary Service information.
     * @param serviceType The Supplementary Service type. Valid entries:
     *     SS_CFU,
     *     SS_CF_BUSY,
     *     SS_CF_NO_REPLY,
     *     SS_CF_NOT_REACHABLE,
     *     SS_CF_ALL,
     *     SS_CF_ALL_CONDITIONAL,
     *     SS_CFUT,
     *     SS_CLIP,
     *     SS_CLIR,
     *     SS_COLP,
     *     SS_COLR,
     *     SS_CNAP,
     *     SS_WAIT,
     *     SS_BAOC,
     *     SS_BAOIC,
     *     SS_BAOIC_EXC_HOME,
     *     SS_BAIC,
     *     SS_BAIC_ROAMING,
     *     SS_ALL_BARRING,
     *     SS_OUTGOING_BARRING,
     *     SS_INCOMING_BARRING,
     *     SS_INCOMING_BARRING_DN,
     *     SS_INCOMING_BARRING_ANONYMOUS
     * @param requestType Supplementary Service request Type. Valid values are:
     *     SS_ACTIVATION,
     *     SS_DEACTIVATION,
     *     SS_INTERROGATION,
     *     SS_REGISTRATION,
     *     SS_ERASURE
     * @param teleserviceType Supplementary Service teleservice type:
     *     SS_TELESERVICE_ALL_TELE_AND_BEARER,
     *     SS_TELESERVICE_ALL_TELESEVICES,
     *     SS_TELESERVICE_TELEPHONY,
     *     SS_TELESERVICE_ALL_DATA,
     *     SS_TELESERVICE_SMS,
     *     SS_TELESERVICE_ALL_TELESERVICES_EXCEPT_SMS
     * @param serviceClass Supplementary Service service class. See See 27.007 +CCFC or +CLCK.
     * @param result Result of Supplementary Service operation. Valid values are 0 if the result is
     *               success, or ImsReasonInfo code if the result is a failure.
     */
    public ImsSsData(@ServiceType int serviceType, int requestType, int teleserviceType,
            @ServiceClass int serviceClass, int result) {
        this.serviceType = serviceType;
        this.requestType = requestType;
        this.teleserviceType = teleserviceType;
        this.serviceClass = serviceClass;
        this.result = result;
    }

    private ImsSsData(Parcel in) {
        readFromParcel(in);
        serviceType = in.readInt();
        requestType = in.readInt();
        teleserviceType = in.readInt();
        serviceClass = in.readInt();
        result = in.readInt();
        mSsInfo = in.createIntArray();
        mCfInfo = (ImsCallForwardInfo[])in.readParcelableArray(this.getClass().getClassLoader());
    }

    public static final Creator<ImsSsData> CREATOR = new Creator<ImsSsData>() {
@@ -122,18 +317,8 @@ public final class ImsSsData implements Parcelable {
        out.writeInt(teleserviceType);
        out.writeInt(serviceClass);
        out.writeInt(result);
        out.writeIntArray(ssInfo);
        out.writeParcelableArray(cfInfo, 0);
    }

    private void readFromParcel(Parcel in) {
        serviceType = in.readInt();
        requestType = in.readInt();
        teleserviceType = in.readInt();
        serviceClass = in.readInt();
        result = in.readInt();
        ssInfo = in.createIntArray();
        cfInfo = (ImsCallForwardInfo[])in.readParcelableArray(this.getClass().getClassLoader());
        out.writeIntArray(mSsInfo);
        out.writeParcelableArray(mCfInfo, 0);
    }

    @Override
@@ -200,7 +385,55 @@ public final class ImsSsData implements Parcelable {
    }

    public boolean isTypeInterrogation() {
        return (requestType == SS_INTERROGATION);
        return (serviceType == SS_INTERROGATION);
    }

    /** @hide */
    public void setSuppServiceInfo(int[] ssInfo) {
        mSsInfo = ssInfo;
    }

    /** @hide */
    public void setImsSpecificSuppServiceInfo(ImsSsInfo[] imsSsInfo) {
        mImsSsInfo = imsSsInfo;
    }

    /** @hide */
    public void setCallForwardingInfo(ImsCallForwardInfo[] cfInfo) {
        mCfInfo = cfInfo;
    }

    /**
     * This field will be null for RequestType SS_INTERROGATION
     * and ServiceType SS_CF_*, SS_INCOMING_BARRING_DN,
     * SS_INCOMING_BARRING_ANONYMOUS.
     *
     * @hide
     */
    public int[] getSuppServiceInfo() {
        return mSsInfo;
    }

    /**
     * Valid only for ServiceTypes
     *  - SS_INCOMING_BARRING_DN and
     *  - ServiceType SS_INCOMING_BARRING_ANONYMOUS.
     *  Will be null otherwise.
     * @hide
     */
    public ImsSsInfo[] getImsSpecificSuppServiceInfo() {
        return mImsSsInfo;
    }

    /**
     * Valid only for supplementary services
     * - ServiceType SS_CF_* and
     * - RequestType SS_INTERROGATION.
     * Will be null otherwise.
     * @hide
     **/
    public ImsCallForwardInfo[] getCallForwardInfo() {
        return mCfInfo;
    }

    public String toString() {
+24 −0
Original line number Diff line number Diff line
@@ -36,13 +36,31 @@ public final class ImsSsInfo implements Parcelable {

    // 0: disabled, 1: enabled
    /** @hide */
    // TODO: Make private, do not modify this field directly, use getter!
    public int mStatus;
    /** @hide */
    // TODO: Make private, do not modify this field directly, use getter!
    public String mIcbNum;

    /**@hide*/
    // TODO: Remove! Do not use this constructor, instead use public version.
    public ImsSsInfo() {
    }

    /**
     *
     * @param status The status of the service registration of activation/deactiviation. Valid
     *    entries include:
     *    {@link #NOT_REGISTERED},
     *    {@link #DISABLED},
     *    {@link #ENABLED}
     * @param icbNum The Incoming barring number.
     */
    public ImsSsInfo(int status, String icbNum) {
        mStatus = status;
        mIcbNum = icbNum;
    }

    private ImsSsInfo(Parcel in) {
        readFromParcel(in);
    }
@@ -81,6 +99,12 @@ public final class ImsSsInfo implements Parcelable {
        }
    };

    /**
     * @return Supplementary Service Configuration status. Valid Values are:
     *     {@link #NOT_REGISTERED},
     *     {@link #DISABLED},
     *     {@link #ENABLED}
     */
    public int getStatus() {
        return mStatus;
    }