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

Commit f2ec298d authored by Wileen Chiu's avatar Wileen Chiu
Browse files

IMS: Propagate media profile changed message

- RTT Voice information will be passed to the UI via
  media profile changed message

- The RTT voice information - SPEECH/SILENCE, will be conveyed
  via the ImsStreamMediaProfile.hasRttAudioSpeech

- A connection event will be sent from frameworks to the UI -
  EVENT_RTT_AUDIO_INDICATION_CHANGED

- Add listeners, connection event and extras to propagate
  media profile changed to the UI

Test: Manual
Bug: 110976450
Change-Id: I34d2dd612915d65f5047986dabece968c78f0abe
parent a24ced9e
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -41453,10 +41453,12 @@ package android.telecom {
    field public static final int CAPABILITY_SWAP_CONFERENCE = 8; // 0x8
    field public static final java.lang.String EVENT_CALL_MERGE_FAILED = "android.telecom.event.CALL_MERGE_FAILED";
    field public static final java.lang.String EVENT_CALL_PULL_FAILED = "android.telecom.event.CALL_PULL_FAILED";
    field public static final java.lang.String EVENT_RTT_AUDIO_INDICATION_CHANGED = "android.telecom.event.RTT_AUDIO_INDICATION_CHANGED";
    field public static final java.lang.String EXTRA_ANSWERING_DROPS_FG_CALL = "android.telecom.extra.ANSWERING_DROPS_FG_CALL";
    field public static final java.lang.String EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME = "android.telecom.extra.ANSWERING_DROPS_FG_CALL_APP_NAME";
    field public static final java.lang.String EXTRA_CALL_SUBJECT = "android.telecom.extra.CALL_SUBJECT";
    field public static final java.lang.String EXTRA_CHILD_ADDRESS = "android.telecom.extra.CHILD_ADDRESS";
    field public static final java.lang.String EXTRA_IS_RTT_AUDIO_PRESENT = "android.telecom.extra.IS_RTT_AUDIO_PRESENT";
    field public static final java.lang.String EXTRA_LAST_FORWARDED_NUMBER = "android.telecom.extra.LAST_FORWARDED_NUMBER";
    field public static final java.lang.String EXTRA_SIP_INVITE = "android.telecom.extra.SIP_INVITE";
    field public static final int PROPERTY_HAS_CDMA_VOICE_PRIVACY = 32; // 0x20
+3 −0
Original line number Diff line number Diff line
@@ -6049,6 +6049,7 @@ package android.telephony.ims {
    method public void callSessionInviteParticipantsRequestDelivered();
    method public void callSessionInviteParticipantsRequestFailed(android.telephony.ims.ImsReasonInfo);
    method public void callSessionMayHandover(int, int);
    method public void callSessionRttAudioIndicatorChanged(android.telephony.ims.ImsStreamMediaProfile);
    method public void callSessionMergeComplete(android.telephony.ims.stub.ImsCallSessionImplBase);
    method public void callSessionMergeFailed(android.telephony.ims.ImsReasonInfo);
    method public void callSessionMergeStarted(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile);
@@ -6465,10 +6466,12 @@ package android.telephony.ims {
    method public int describeContents();
    method public int getAudioDirection();
    method public int getAudioQuality();
    method public boolean getRttAudioSpeech();
    method public int getRttMode();
    method public int getVideoDirection();
    method public int getVideoQuality();
    method public boolean isRttCall();
    method public void setRttAudioSpeech(boolean);
    method public void setRttMode(int);
    method public void writeToParcel(android.os.Parcel, int);
    field public static final int AUDIO_QUALITY_AMR = 1; // 0x1
+15 −0
Original line number Diff line number Diff line
@@ -504,6 +504,14 @@ public abstract class Connection extends Conferenceable {
    public static final String EXTRA_ORIGINAL_CONNECTION_ID =
            "android.telecom.extra.ORIGINAL_CONNECTION_ID";

    /**
     * Boolean connection extra key set on the extras passed to
     * {@link Connection#sendConnectionEvent} which indicates that audio is present
     * on the RTT call when the extra value is true.
     */
    public static final String EXTRA_IS_RTT_AUDIO_PRESENT =
            "android.telecom.extra.IS_RTT_AUDIO_PRESENT";

    /**
     * Connection event used to inform Telecom that it should play the on hold tone.  This is used
     * to play a tone when the peer puts the current call on hold.  Sent to Telecom via
@@ -619,6 +627,13 @@ public abstract class Connection extends Conferenceable {
     */
    public static final String EXTRA_SIP_INVITE = "android.telecom.extra.SIP_INVITE";

    /**
     * Connection event used to inform an {@link InCallService} that the RTT audio indication
     * has changed.
     */
    public static final String EVENT_RTT_AUDIO_INDICATION_CHANGED =
            "android.telecom.event.RTT_AUDIO_INDICATION_CHANGED";

    // Flag controlling whether PII is emitted into the logs
    private static final boolean PII_DEBUG = Log.isLoggable(android.util.Log.DEBUG);

+17 −0
Original line number Diff line number Diff line
@@ -443,6 +443,13 @@ public class ImsCallSession {
        public void callSessionRttMessageReceived(String rttMessage) {
            // no-op
        }

        /**
         * While in call, there has been a change in RTT audio indicator.
         */
        public void callSessionRttAudioIndicatorChanged(ImsStreamMediaProfile profile) {
            // no-op
        }
    }

    private final IImsCallSession miSession;
@@ -1397,6 +1404,16 @@ public class ImsCallSession {
                mListener.callSessionRttMessageReceived(rttMessage);
            }
        }

        /**
         * While in call, there has been a change in RTT audio indicator.
         */
        @Override
        public void callSessionRttAudioIndicatorChanged(ImsStreamMediaProfile profile) {
            if (mListener != null) {
                mListener.callSessionRttAudioIndicatorChanged(profile);
            }
        }
    }

    /**
+13 −0
Original line number Diff line number Diff line
@@ -599,5 +599,18 @@ public class ImsCallSessionListener {
            throw new RuntimeException(e);
        }
    }

    /**
     * While in call, there has been a change in RTT audio indicator.
     *
     * @param profile updated ImsStreamMediaProfile
     */
    public void callSessionRttAudioIndicatorChanged(ImsStreamMediaProfile profile) {
        try {
            mListener.callSessionRttAudioIndicatorChanged(profile);
        } catch (RemoteException e) {
            throw new RuntimeException(e);
        }
    }
}
Loading