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

Commit b1d490dd authored by Junho Yoon's avatar Junho Yoon Committed by Android (Google) Code Review
Browse files

Merge "Modify specific IMS MmTel interface to system API" into main

parents e5ccb239 1ae17042
Loading
Loading
Loading
Loading
+43 −0
Original line number Diff line number Diff line
@@ -16844,8 +16844,11 @@ package android.telephony.ims {
    method public void callSessionRttMessageReceived(String);
    method public void callSessionRttModifyRequestReceived(android.telephony.ims.ImsCallProfile);
    method public void callSessionRttModifyResponseReceived(int);
    method @FlaggedApi("com.android.internal.telephony.flags.support_ims_mmtel_interface") public final void callSessionSendAnbrQuery(int, int, @IntRange(from=0) int);
    method public void callSessionSuppServiceReceived(android.telephony.ims.ImsSuppServiceNotification);
    method public void callSessionTerminated(android.telephony.ims.ImsReasonInfo);
    method @FlaggedApi("com.android.internal.telephony.flags.support_ims_mmtel_interface") public void callSessionTransferFailed(@NonNull android.telephony.ims.ImsReasonInfo);
    method @FlaggedApi("com.android.internal.telephony.flags.support_ims_mmtel_interface") public void callSessionTransferred();
    method public void callSessionTtyModeReceived(int);
    method public void callSessionUpdateFailed(android.telephony.ims.ImsReasonInfo);
    method public void callSessionUpdateReceived(android.telephony.ims.ImsCallProfile);
@@ -17650,6 +17653,26 @@ package android.telephony.ims.feature {
    method public int getRadioTech();
  }
  @FlaggedApi("com.android.internal.telephony.flags.support_ims_mmtel_interface") public final class ConnectionFailureInfo implements android.os.Parcelable {
    method public int describeContents();
    method public int getCauseCode();
    method public int getReason();
    method public int getWaitTimeMillis();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.feature.ConnectionFailureInfo> CREATOR;
    field public static final int REASON_ACCESS_DENIED = 1; // 0x1
    field public static final int REASON_NAS_FAILURE = 2; // 0x2
    field public static final int REASON_NONE = 0; // 0x0
    field public static final int REASON_NO_SERVICE = 7; // 0x7
    field public static final int REASON_PDN_NOT_AVAILABLE = 8; // 0x8
    field public static final int REASON_RACH_FAILURE = 3; // 0x3
    field public static final int REASON_RF_BUSY = 9; // 0x9
    field public static final int REASON_RLC_FAILURE = 4; // 0x4
    field public static final int REASON_RRC_REJECT = 5; // 0x5
    field public static final int REASON_RRC_TIMEOUT = 6; // 0x6
    field public static final int REASON_UNSPECIFIED = 65535; // 0xffff
  }
  public abstract class ImsFeature {
    ctor public ImsFeature();
    method public abstract void changeEnabledCapabilities(android.telephony.ims.feature.CapabilityChangeRequest, android.telephony.ims.feature.ImsFeature.CapabilityCallbackProxy);
@@ -17676,6 +17699,11 @@ package android.telephony.ims.feature {
    method public void onChangeCapabilityConfigurationError(int, int, int);
  }
  @FlaggedApi("com.android.internal.telephony.flags.support_ims_mmtel_interface") public interface ImsTrafficSessionCallback {
    method public void onError(@NonNull android.telephony.ims.feature.ConnectionFailureInfo);
    method public void onReady();
  }
  public class MmTelFeature extends android.telephony.ims.feature.ImsFeature {
    ctor public MmTelFeature();
    ctor public MmTelFeature(@NonNull java.util.concurrent.Executor);
@@ -17688,6 +17716,7 @@ package android.telephony.ims.feature {
    method @NonNull public android.telephony.ims.stub.ImsMultiEndpointImplBase getMultiEndpoint();
    method @NonNull public android.telephony.ims.stub.ImsSmsImplBase getSmsImplementation();
    method @NonNull public android.telephony.ims.stub.ImsUtImplBase getUt();
    method @FlaggedApi("com.android.internal.telephony.flags.support_ims_mmtel_interface") public final void modifyImsTrafficSession(int, @NonNull android.telephony.ims.feature.ImsTrafficSessionCallback);
    method public final void notifyCapabilitiesStatusChanged(@NonNull android.telephony.ims.feature.MmTelFeature.MmTelCapabilities);
    method @Deprecated public final void notifyIncomingCall(@NonNull android.telephony.ims.stub.ImsCallSessionImplBase, @NonNull android.os.Bundle);
    method @Nullable public final android.telephony.ims.ImsCallSessionListener notifyIncomingCall(@NonNull android.telephony.ims.stub.ImsCallSessionImplBase, @NonNull String, @NonNull android.os.Bundle);
@@ -17708,10 +17737,24 @@ package android.telephony.ims.feature {
    method public void setTerminalBasedCallWaitingStatus(boolean);
    method public void setUiTtyMode(int, @Nullable android.os.Message);
    method public int shouldProcessCall(@NonNull String[]);
    method @FlaggedApi("com.android.internal.telephony.flags.support_ims_mmtel_interface") public final void startImsTrafficSession(int, int, int, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.feature.ImsTrafficSessionCallback);
    method @FlaggedApi("com.android.internal.telephony.flags.support_ims_mmtel_interface") public final void stopImsTrafficSession(@NonNull android.telephony.ims.feature.ImsTrafficSessionCallback);
    method @FlaggedApi("com.android.internal.telephony.flags.support_ims_mmtel_interface") public final void triggerEpsFallback(int);
    field public static final int AUDIO_HANDLER_ANDROID = 0; // 0x0
    field public static final int AUDIO_HANDLER_BASEBAND = 1; // 0x1
    field @FlaggedApi("com.android.internal.telephony.flags.support_ims_mmtel_interface") public static final int EPS_FALLBACK_REASON_NO_NETWORK_RESPONSE = 2; // 0x2
    field @FlaggedApi("com.android.internal.telephony.flags.support_ims_mmtel_interface") public static final int EPS_FALLBACK_REASON_NO_NETWORK_TRIGGER = 1; // 0x1
    field public static final String EXTRA_IS_UNKNOWN_CALL = "android.telephony.ims.feature.extra.IS_UNKNOWN_CALL";
    field public static final String EXTRA_IS_USSD = "android.telephony.ims.feature.extra.IS_USSD";
    field @FlaggedApi("com.android.internal.telephony.flags.support_ims_mmtel_interface") public static final int IMS_TRAFFIC_DIRECTION_INCOMING = 0; // 0x0
    field @FlaggedApi("com.android.internal.telephony.flags.support_ims_mmtel_interface") public static final int IMS_TRAFFIC_DIRECTION_OUTGOING = 1; // 0x1
    field @FlaggedApi("com.android.internal.telephony.flags.support_ims_mmtel_interface") public static final int IMS_TRAFFIC_TYPE_EMERGENCY = 0; // 0x0
    field @FlaggedApi("com.android.internal.telephony.flags.support_ims_mmtel_interface") public static final int IMS_TRAFFIC_TYPE_EMERGENCY_SMS = 1; // 0x1
    field @FlaggedApi("com.android.internal.telephony.flags.support_ims_mmtel_interface") public static final int IMS_TRAFFIC_TYPE_REGISTRATION = 5; // 0x5
    field @FlaggedApi("com.android.internal.telephony.flags.support_ims_mmtel_interface") public static final int IMS_TRAFFIC_TYPE_SMS = 4; // 0x4
    field @FlaggedApi("com.android.internal.telephony.flags.support_ims_mmtel_interface") public static final int IMS_TRAFFIC_TYPE_UT_XCAP = 6; // 0x6
    field @FlaggedApi("com.android.internal.telephony.flags.support_ims_mmtel_interface") public static final int IMS_TRAFFIC_TYPE_VIDEO = 3; // 0x3
    field @FlaggedApi("com.android.internal.telephony.flags.support_ims_mmtel_interface") public static final int IMS_TRAFFIC_TYPE_VOICE = 2; // 0x2
    field public static final int PROCESS_CALL_CSFB = 1; // 0x1
    field public static final int PROCESS_CALL_IMS = 0; // 0x0
  }
+7 −5
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package android.telephony.ims;

import android.annotation.FlaggedApi;
import android.annotation.IntRange;
import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -31,6 +32,7 @@ import android.telephony.ims.stub.ImsCallSessionImplBase.MediaStreamType;
import android.util.Log;

import com.android.ims.internal.IImsCallSession;
import com.android.internal.telephony.flags.Flags;

import java.util.ArrayList;
import java.util.Objects;
@@ -802,8 +804,8 @@ public class ImsCallSessionListener {

    /**
     * Notifies the result of transfer request.
     * @hide
     */
    @FlaggedApi(Flags.FLAG_SUPPORT_IMS_MMTEL_INTERFACE)
    public void callSessionTransferred() {
        try {
            mListener.callSessionTransferred();
@@ -813,13 +815,13 @@ public class ImsCallSessionListener {
    }

    /**
     * Notifies the result of transfer request.
     * Notifies the result of the transfer request failure.
     *
     * @param reasonInfo {@link ImsReasonInfo} containing a reason for the
     * session transfer failure
     * @hide
     */
    public void callSessionTransferFailed(ImsReasonInfo reasonInfo) {
    @FlaggedApi(Flags.FLAG_SUPPORT_IMS_MMTEL_INTERFACE)
    public void callSessionTransferFailed(@NonNull ImsReasonInfo reasonInfo) {
        try {
            mListener.callSessionTransferFailed(reasonInfo);
        } catch (RemoteException e) {
@@ -839,8 +841,8 @@ public class ImsCallSessionListener {
     * @param bitsPerSecond This value is the bitrate requested by the other party UE through
     *        RTP CMR, RTCPAPP or TMMBR, and ImsStack converts this value to the MAC bitrate
     *        (defined in TS36.321, range: 0 ~ 8000 kbit/s).
     * @hide
     */
    @FlaggedApi(Flags.FLAG_SUPPORT_IMS_MMTEL_INTERFACE)
    public final void callSessionSendAnbrQuery(@MediaStreamType int mediaType,
                @MediaStreamDirection int direction, @IntRange(from = 0) int bitsPerSecond) {
        Log.d(TAG, "callSessionSendAnbrQuery in imscallsessonListener");
+9 −1
Original line number Diff line number Diff line
@@ -16,12 +16,16 @@

package android.telephony.ims.feature;

import android.annotation.FlaggedApi;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.SparseArray;

import com.android.internal.telephony.flags.Flags;

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

@@ -30,6 +34,8 @@ import java.lang.annotation.RetentionPolicy;
 *
 * @hide
 */
@FlaggedApi(Flags.FLAG_SUPPORT_IMS_MMTEL_INTERFACE)
@SystemApi
public final class ConnectionFailureInfo implements Parcelable {

    /** @hide */
@@ -67,7 +73,7 @@ public final class ConnectionFailureInfo implements Parcelable {
    public static final int REASON_RRC_TIMEOUT = 6;
    /** Device currently not in service */
    public static final int REASON_NO_SERVICE = 7;
    /** The PDN is no more active */
    /** The PDN is no longer active */
    public static final int REASON_PDN_NOT_AVAILABLE = 8;
    /** Radio resource is busy with another subscription */
    public static final int REASON_RF_BUSY = 9;
@@ -135,6 +141,8 @@ public final class ConnectionFailureInfo implements Parcelable {

    /**
     * @return the cause code from the network or modem specific to the failure.
     *         See 3GPP TS 24.401 Annex A (Cause values for EPS mobility management) and
     *         3GPP TS 24.501 Annex A (Cause values for 5GS mobility management).
     */
    public int getCauseCode() {
        return mCauseCode;
+8 −2
Original line number Diff line number Diff line
@@ -16,20 +16,26 @@

package android.telephony.ims.feature;

import android.annotation.FlaggedApi;
import android.annotation.NonNull;
import android.annotation.SystemApi;

import com.android.internal.telephony.flags.Flags;

/**
 * A callback class used to receive the result of {@link MmTelFeature#startImsTrafficSession}.
 * @hide
 */
@FlaggedApi(Flags.FLAG_SUPPORT_IMS_MMTEL_INTERFACE)
@SystemApi
public interface ImsTrafficSessionCallback {

    /** The modem is ready to process the IMS traffic. */
    void onReady();

    /**
     * Notifies that any IMS traffic is not sent to network due to any failure
     * on cellular networks. IMS service shall call {@link MmTelFeature#stopImsTrafficSession()}
     * Notifies that any IMS traffic can not be sent to the network due to the provided cellular
     * network failure. IMS service shall call {@link MmTelFeature#stopImsTrafficSession()}
     * when receiving this callback.
     *
     * @param info The information of the failure.
+33 −1
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package android.telephony.ims.feature;

import static com.android.internal.telephony.flags.Flags.FLAG_SUPPORT_IMS_MMTEL_INTERFACE;

import android.annotation.CallbackExecutor;
import android.annotation.FlaggedApi;
import android.annotation.IntDef;
@@ -964,6 +966,8 @@ public class MmTelFeature extends ImsFeature {
     *
     * @hide
     */
    @FlaggedApi(FLAG_SUPPORT_IMS_MMTEL_INTERFACE)
    @SystemApi
    public static final int EPS_FALLBACK_REASON_NO_NETWORK_TRIGGER = 1;

    /**
@@ -976,6 +980,8 @@ public class MmTelFeature extends ImsFeature {
     *
     * @hide
     */
    @FlaggedApi(FLAG_SUPPORT_IMS_MMTEL_INTERFACE)
    @SystemApi
    public static final int EPS_FALLBACK_REASON_NO_NETWORK_RESPONSE = 2;

    /** @hide */
@@ -1003,36 +1009,50 @@ public class MmTelFeature extends ImsFeature {
     * Emergency call
     * @hide
     */
    @FlaggedApi(FLAG_SUPPORT_IMS_MMTEL_INTERFACE)
    @SystemApi
    public static final int IMS_TRAFFIC_TYPE_EMERGENCY = 0;
    /**
     * Emergency SMS
     * @hide
     */
    @FlaggedApi(FLAG_SUPPORT_IMS_MMTEL_INTERFACE)
    @SystemApi
    public static final int IMS_TRAFFIC_TYPE_EMERGENCY_SMS = 1;
    /**
     * Voice call
     * @hide
     */
    @FlaggedApi(FLAG_SUPPORT_IMS_MMTEL_INTERFACE)
    @SystemApi
    public static final int IMS_TRAFFIC_TYPE_VOICE = 2;
    /**
     * Video call
     * @hide
     */
    @FlaggedApi(FLAG_SUPPORT_IMS_MMTEL_INTERFACE)
    @SystemApi
    public static final int IMS_TRAFFIC_TYPE_VIDEO = 3;
    /**
     * SMS over IMS
     * @hide
     */
    @FlaggedApi(FLAG_SUPPORT_IMS_MMTEL_INTERFACE)
    @SystemApi
    public static final int IMS_TRAFFIC_TYPE_SMS = 4;
    /**
     * IMS registration and subscription for reg event package (signaling)
     * @hide
     */
    @FlaggedApi(FLAG_SUPPORT_IMS_MMTEL_INTERFACE)
    @SystemApi
    public static final int IMS_TRAFFIC_TYPE_REGISTRATION = 5;
    /**
     * Ut/XCAP (XML Configuration Access Protocol)
     * @hide
     */
    @FlaggedApi(FLAG_SUPPORT_IMS_MMTEL_INTERFACE)
    @SystemApi
    public static final int IMS_TRAFFIC_TYPE_UT_XCAP = 6;

    /** @hide */
@@ -1046,11 +1066,15 @@ public class MmTelFeature extends ImsFeature {
     * Indicates that the traffic is an incoming traffic.
     * @hide
     */
    @FlaggedApi(FLAG_SUPPORT_IMS_MMTEL_INTERFACE)
    @SystemApi
    public static final int IMS_TRAFFIC_DIRECTION_INCOMING = 0;
    /**
     * Indicates that the traffic is an outgoing traffic.
     * @hide
     */
    @FlaggedApi(FLAG_SUPPORT_IMS_MMTEL_INTERFACE)
    @SystemApi
    public static final int IMS_TRAFFIC_DIRECTION_OUTGOING = 1;

    private IImsMmTelListener mListener;
@@ -1291,9 +1315,11 @@ public class MmTelFeature extends ImsFeature {
    /**
     * Triggers the EPS fallback procedure.
     *
     * @param reason specifies the reason that causes EPS fallback.
     * @param reason specifies the reason that EPS fallback was triggered.
     * @hide
     */
    @FlaggedApi(FLAG_SUPPORT_IMS_MMTEL_INTERFACE)
    @SystemApi
    public final void triggerEpsFallback(@EpsFallbackReason int reason) {
        IImsMmTelListener listener = getListener();
        if (listener == null) {
@@ -1344,6 +1370,8 @@ public class MmTelFeature extends ImsFeature {
     *
     * @hide
     */
    @FlaggedApi(FLAG_SUPPORT_IMS_MMTEL_INTERFACE)
    @SystemApi
    public final void startImsTrafficSession(@ImsTrafficType int trafficType,
            @AccessNetworkConstants.RadioAccessNetworkType int accessNetworkType,
            @ImsTrafficDirection int trafficDirection,
@@ -1387,6 +1415,8 @@ public class MmTelFeature extends ImsFeature {
     *
     * @hide
     */
    @FlaggedApi(FLAG_SUPPORT_IMS_MMTEL_INTERFACE)
    @SystemApi
    public final void modifyImsTrafficSession(
            @AccessNetworkConstants.RadioAccessNetworkType int accessNetworkType,
            @NonNull ImsTrafficSessionCallback callback) {
@@ -1417,6 +1447,8 @@ public class MmTelFeature extends ImsFeature {
     *
     * @hide
     */
    @FlaggedApi(FLAG_SUPPORT_IMS_MMTEL_INTERFACE)
    @SystemApi
    public final void stopImsTrafficSession(@NonNull ImsTrafficSessionCallback callback) {
        IImsMmTelListener listener = getListener();
        if (listener == null) {