Merge "[RCS UCE] Add a network response with Reason header info callback for the publish request and subscribe request." am: 77c5faf493

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1570560

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I37280c2f3bc3c9ec799d838720ba7bc1af33dcab
This commit is contained in:
James Lin
2021-02-05 00:12:34 +00:00
committed by Automerger Merge Worker
6 changed files with 91 additions and 2 deletions

View File

@@ -12394,11 +12394,13 @@ package android.telephony.ims.stub {
public static interface RcsCapabilityExchangeImplBase.PublishResponseCallback {
method public void onCommandError(int) throws android.telephony.ims.ImsException;
method public void onNetworkResponse(@IntRange(from=100, to=699) int, @NonNull String) throws android.telephony.ims.ImsException;
method public void onNetworkResponse(@IntRange(from=100, to=699) int, @NonNull String, @IntRange(from=100, to=699) int, @NonNull String) throws android.telephony.ims.ImsException;
}
public static interface RcsCapabilityExchangeImplBase.SubscribeResponseCallback {
method public void onCommandError(int) throws android.telephony.ims.ImsException;
method public void onNetworkResponse(@IntRange(from=100, to=699) int, @NonNull String) throws android.telephony.ims.ImsException;
method public void onNetworkResponse(@IntRange(from=100, to=699) int, @NonNull String, @IntRange(from=100, to=699) int, @NonNull String) throws android.telephony.ims.ImsException;
method public void onNotifyCapabilitiesUpdate(@NonNull java.util.List<java.lang.String>) throws android.telephony.ims.ImsException;
method public void onResourceTerminated(@NonNull java.util.List<android.util.Pair<android.net.Uri,java.lang.String>>) throws android.telephony.ims.ImsException;
method public void onTerminated(@NonNull String, long) throws android.telephony.ims.ImsException;

View File

@@ -26,4 +26,5 @@ import java.util.List;
oneway interface IPublishResponseCallback {
void onCommandError(int code);
void onNetworkResponse(int code, String reason);
void onNetworkRespHeader(int code, String reasonPhrase, int reasonHeaderCause, String reasonHeaderText);
}

View File

@@ -30,6 +30,7 @@ import java.util.Map;
oneway interface ISubscribeResponseCallback {
void onCommandError(int code);
void onNetworkResponse(int code, in String reason);
void onNetworkRespHeader(int code, String reasonPhrase, int reasonHeaderCause, String reasonHeaderText);
void onNotifyCapabilitiesUpdate(in List<String> pidfXmls);
void onResourceTerminated(in List<RcsContactTerminatedReason> uriTerminatedReason);
void onTerminated(in String reason, long retryAfterMilliseconds);

View File

@@ -34,10 +34,11 @@ public class RcsPublishResponseAidlWrapper implements PublishResponseCallback {
}
@Override
public void onCommandError(int code) {
public void onCommandError(int code) throws ImsException {
try {
mResponseBinder.onCommandError(code);
} catch (RemoteException e) {
throw new ImsException(e.getMessage(), ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
}
}
@@ -46,6 +47,18 @@ public class RcsPublishResponseAidlWrapper implements PublishResponseCallback {
try {
mResponseBinder.onNetworkResponse(code, reason);
} catch (RemoteException e) {
throw new ImsException(e.getMessage(), ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
}
}
@Override
public void onNetworkResponse(int code, String reasonPhrase, int reasonHeaderCause,
String reasonHeaderText) throws ImsException {
try {
mResponseBinder.onNetworkRespHeader(code, reasonPhrase, reasonHeaderCause,
reasonHeaderText);
} catch (RemoteException e) {
throw new ImsException(e.getMessage(), ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
}
}
}

View File

@@ -40,10 +40,11 @@ public class RcsSubscribeResponseAidlWrapper implements SubscribeResponseCallbac
}
@Override
public void onCommandError(int code) {
public void onCommandError(int code) throws ImsException {
try {
mResponseBinder.onCommandError(code);
} catch (RemoteException e) {
throw new ImsException(e.getMessage(), ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
}
}
@@ -52,6 +53,18 @@ public class RcsSubscribeResponseAidlWrapper implements SubscribeResponseCallbac
try {
mResponseBinder.onNetworkResponse(code, reason);
} catch (RemoteException e) {
throw new ImsException(e.getMessage(), ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
}
}
@Override
public void onNetworkResponse(int code, String reasonPhrase, int reasonHeaderCause,
String reasonHeaderText) throws ImsException {
try {
mResponseBinder.onNetworkRespHeader(code, reasonPhrase, reasonHeaderCause,
reasonHeaderText);
} catch (RemoteException e) {
throw new ImsException(e.getMessage(), ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
}
}
@@ -60,6 +73,7 @@ public class RcsSubscribeResponseAidlWrapper implements SubscribeResponseCallbac
try {
mResponseBinder.onNotifyCapabilitiesUpdate(pidfXmls);
} catch (RemoteException e) {
throw new ImsException(e.getMessage(), ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
}
}
@@ -69,6 +83,7 @@ public class RcsSubscribeResponseAidlWrapper implements SubscribeResponseCallbac
try {
mResponseBinder.onResourceTerminated(getTerminatedReasonList(uriTerminatedReason));
} catch (RemoteException e) {
throw new ImsException(e.getMessage(), ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
}
}
@@ -90,6 +105,7 @@ public class RcsSubscribeResponseAidlWrapper implements SubscribeResponseCallbac
try {
mResponseBinder.onTerminated(reason, retryAfterMilliseconds);
} catch (RemoteException e) {
throw new ImsException(e.getMessage(), ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
}
}
}

View File

@@ -140,6 +140,9 @@ public class RcsCapabilityExchangeImplBase {
* Provide the framework with a subsequent network response update to
* {@link #publishCapabilities(String, PublishResponseCallback)}.
*
* If this network response also contains a “Reason” header, then the
* {@link onNetworkResponse(int, String, int, String)} method should be used instead.
*
* @param sipCode The SIP response code sent from the network for the operation
* token specified.
* @param reason The optional reason response from the network. If there is a reason header
@@ -154,6 +157,31 @@ public class RcsCapabilityExchangeImplBase {
*/
void onNetworkResponse(@IntRange(from = 100, to = 699) int sipCode,
@NonNull String reason) throws ImsException;
/**
* Provide the framework with a subsequent network response update to
* {@link #publishCapabilities(RcsContactUceCapability, int)} that also
* includes a reason provided in the “reason” header. See RFC3326 for more
* information.
*
* @param sipCode The SIP response code sent from the network.
* @param reasonPhrase The optional reason response from the network. If the
* network provided no reason with the sip code, the string should be empty.
* @param reasonHeaderCause The “cause” parameter of the “reason” header
* included in the SIP message.
* @param reasonHeaderText The “text” parameter of the “reason” header
* included in the SIP message.
* @throws ImsException If this {@link RcsCapabilityExchangeImplBase} instance is
* not currently connected to the framework. This can happen if the
* {@link RcsFeature} is not
* {@link ImsFeature#STATE_READY} and the {@link RcsFeature} has not received
* the {@link ImsFeature#onFeatureReady()} callback. This may also happen in
* rare cases when the Telephony stack has crashed.
*/
void onNetworkResponse(@IntRange(from = 100, to = 699) int sipCode,
@NonNull String reasonPhrase,
@IntRange(from = 100, to = 699) int reasonHeaderCause,
@NonNull String reasonHeaderText) throws ImsException;
}
/**
@@ -222,6 +250,9 @@ public class RcsCapabilityExchangeImplBase {
* {@link #onResourceTerminated}, and {@link #onTerminated} as required for the
* subsequent NOTIFY responses to the subscription.
*
* If this network response also contains a “Reason” header, then the
* {@link onNetworkResponse(int, String, int, String)} method should be used instead.
*
* @param sipCode The SIP response code sent from the network for the operation
* token specified.
* @param reason The optional reason response from the network. If the network
@@ -235,6 +266,31 @@ public class RcsCapabilityExchangeImplBase {
void onNetworkResponse(@IntRange(from = 100, to = 699) int sipCode,
@NonNull String reason) throws ImsException;
/**
* Notify the framework of the response to the SUBSCRIBE request from
* {@link #subscribeForCapabilities(RcsContactUceCapability, int)} that also
* includes a reason provided in the “reason” header. See RFC3326 for more
* information.
*
* @param sipCode The SIP response code sent from the network,
* @param reasonPhrase The optional reason response from the network. If the
* network provided no reason with the sip code, the string should be empty.
* @param reasonHeaderCause The “cause” parameter of the “reason” header
* included in the SIP message.
* @param reasonHeaderText The “text” parameter of the “reason” header
* included in the SIP message.
* @throws ImsException If this {@link RcsCapabilityExchangeImplBase} instance is
* not currently connected to the framework. This can happen if the
* {@link RcsFeature} is not
* {@link ImsFeature#STATE_READY} and the {@link RcsFeature} has not received
* the {@link ImsFeature#onFeatureReady()} callback. This may also happen in
* rare cases when the Telephony stack has crashed.
*/
void onNetworkResponse(@IntRange(from = 100, to = 699) int sipCode,
@NonNull String reasonPhrase,
@IntRange(from = 100, to = 699) int reasonHeaderCause,
@NonNull String reasonHeaderText) throws ImsException;
/**
* Notify the framework of the latest XML PIDF documents included in the network response
* for the requested contacts' capabilities requested by the Framework using