Merge "Add callSessionIntiating + callSessionInitatingFailed"

This commit is contained in:
Daniel Bright
2021-01-05 21:55:59 +00:00
committed by Gerrit Code Review
4 changed files with 87 additions and 7 deletions

View File

@@ -11126,7 +11126,9 @@ package android.telephony.ims {
method public void callSessionHoldFailed(android.telephony.ims.ImsReasonInfo); method public void callSessionHoldFailed(android.telephony.ims.ImsReasonInfo);
method public void callSessionHoldReceived(android.telephony.ims.ImsCallProfile); method public void callSessionHoldReceived(android.telephony.ims.ImsCallProfile);
method public void callSessionInitiated(android.telephony.ims.ImsCallProfile); method public void callSessionInitiated(android.telephony.ims.ImsCallProfile);
method public void callSessionInitiatedFailed(android.telephony.ims.ImsReasonInfo); method @Deprecated public void callSessionInitiatedFailed(android.telephony.ims.ImsReasonInfo);
method public void callSessionInitiating(@NonNull android.telephony.ims.ImsCallProfile);
method public void callSessionInitiatingFailed(@NonNull android.telephony.ims.ImsReasonInfo);
method public void callSessionInviteParticipantsRequestDelivered(); method public void callSessionInviteParticipantsRequestDelivered();
method public void callSessionInviteParticipantsRequestFailed(android.telephony.ims.ImsReasonInfo); method public void callSessionInviteParticipantsRequestFailed(android.telephony.ims.ImsReasonInfo);
method @Deprecated public void callSessionMayHandover(int, int); method @Deprecated public void callSessionMayHandover(int, int);

View File

@@ -101,10 +101,29 @@ public class ImsCallSession {
*/ */
public static class Listener { public static class Listener {
/** /**
* Called when a request is sent out to initiate a new session * Called when the session is initiating.
* and 1xx response is received from the network.
* *
* @param session the session object that carries out the IMS session * see: {@link ImsCallSessionListener#callSessionInitiating(ImsCallProfile)}
*/
public void callSessionInitiating(ImsCallSession session,
ImsCallProfile profile) {
// no-op
}
/**
* Called when the session failed before initiating was called.
*
* see: {@link ImsCallSessionListener#callSessionInitiatingFailed(ImsReasonInfo)}
*/
public void callSessionInitiatingFailed(ImsCallSession session,
ImsReasonInfo reasonInfo) {
// no-op
}
/**
* Called when the session is progressing.
*
* see: {@link ImsCallSessionListener#callSessionProgressing(ImsStreamMediaProfile)}
*/ */
public void callSessionProgressing(ImsCallSession session, public void callSessionProgressing(ImsCallSession session,
ImsStreamMediaProfile profile) { ImsStreamMediaProfile profile) {
@@ -1178,6 +1197,13 @@ public class ImsCallSession {
/** /**
* Notifies the result of the basic session operation (setup / terminate). * Notifies the result of the basic session operation (setup / terminate).
*/ */
@Override
public void callSessionInitiating(ImsCallProfile profile) {
if (mListener != null) {
mListener.callSessionInitiating(ImsCallSession.this, profile);
}
}
@Override @Override
public void callSessionProgressing(ImsStreamMediaProfile profile) { public void callSessionProgressing(ImsStreamMediaProfile profile) {
if (mListener != null) { if (mListener != null) {
@@ -1192,6 +1218,13 @@ public class ImsCallSession {
} }
} }
@Override
public void callSessionInitiatingFailed(ImsReasonInfo reasonInfo) {
if (mListener != null) {
mListener.callSessionStartFailed(ImsCallSession.this, reasonInfo);
}
}
@Override @Override
public void callSessionInitiatedFailed(ImsReasonInfo reasonInfo) { public void callSessionInitiatedFailed(ImsReasonInfo reasonInfo) {
if (mListener != null) { if (mListener != null) {

View File

@@ -53,8 +53,45 @@ public class ImsCallSessionListener {
} }
/** /**
* A request has been sent out to initiate a new IMS call session and a 1xx response has been * Called when the network first begins to establish the call session and is now connecting
* received from the network. * to the remote party. This must be called once after {@link ImsCallSessionImplBase#start} and
* before any other method on this listener. After this is called,
* {@link #callSessionProgressing(ImsStreamMediaProfile)} must be called to communicate any
* further updates.
* <p/>
* Once this is called, {@link #callSessionTerminated} must be called
* to end the call session. In the event that the session failed before the remote party
* was contacted, {@link #callSessionInitiatingFailed} must be called.
*
* @param profile the associated {@link ImsCallProfile}.
*/
public void callSessionInitiating(@NonNull ImsCallProfile profile) {
try {
mListener.callSessionInitiating(profile);
} catch (RemoteException e) {
e.rethrowFromSystemServer();
}
}
/**
* The IMS call session establishment has failed while initiating.
*
* @param reasonInfo {@link ImsReasonInfo} detailing the reason of the IMS call session
* establishment failure.
*/
public void callSessionInitiatingFailed(@NonNull ImsReasonInfo reasonInfo) {
try {
mListener.callSessionInitiatingFailed(reasonInfo);
} catch (RemoteException e) {
e.rethrowFromSystemServer();
}
}
/**
* Called after the network has contacted the remote party and the call state should move to
* ALERTING.
*
* @param profile the associated {@link ImsCallProfile}.
*/ */
public void callSessionProgressing(ImsStreamMediaProfile profile) { public void callSessionProgressing(ImsStreamMediaProfile profile) {
try { try {
@@ -65,7 +102,8 @@ public class ImsCallSessionListener {
} }
/** /**
* The IMS call session has been initiated. * Called once the outgoing IMS call session has been begun between the local and remote party.
* The call state should move to ACTIVE.
* *
* @param profile the associated {@link ImsCallProfile}. * @param profile the associated {@link ImsCallProfile}.
*/ */
@@ -82,7 +120,12 @@ public class ImsCallSessionListener {
* *
* @param reasonInfo {@link ImsReasonInfo} detailing the reason of the IMS call session * @param reasonInfo {@link ImsReasonInfo} detailing the reason of the IMS call session
* establishment failure. * establishment failure.
* @deprecated {@link #callSessionInitiated(ImsCallProfile)} is called immediately after
* the session is first started which meant that there was no time in which a call to this
* method was technically valid. This method is replaced starting Android S in favor of
* {@link #callSessionInitiatingFailed(ImsReasonInfo)}.
*/ */
@Deprecated
public void callSessionInitiatedFailed(ImsReasonInfo reasonInfo) { public void callSessionInitiatedFailed(ImsReasonInfo reasonInfo) {
try { try {
mListener.callSessionInitiatedFailed(reasonInfo); mListener.callSessionInitiatedFailed(reasonInfo);

View File

@@ -37,6 +37,8 @@ oneway interface IImsCallSessionListener {
/** /**
* Notifies the result of the basic session operation (setup / terminate). * Notifies the result of the basic session operation (setup / terminate).
*/ */
void callSessionInitiating(in ImsCallProfile profile);
void callSessionInitiatingFailed(in ImsReasonInfo reasonInfo);
void callSessionProgressing(in ImsStreamMediaProfile profile); void callSessionProgressing(in ImsStreamMediaProfile profile);
void callSessionInitiated(in ImsCallProfile profile); void callSessionInitiated(in ImsCallProfile profile);
void callSessionInitiatedFailed(in ImsReasonInfo reasonInfo); void callSessionInitiatedFailed(in ImsReasonInfo reasonInfo);