aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHyunho <hhshin@google.com>2022-11-02 01:10:09 +0000
committerHyunho <hhshin@google.com>2022-12-13 11:27:04 +0000
commit09c468419841562de2a67f25f82715b0b3e6e58d (patch)
treebf5036e98b340f21f4c52c2e1f3be870c4129159 /src
parent31f3630abbcb1118e616906523d6adcd5c76773b (diff)
downloadims-09c468419841562de2a67f25f82715b0b3e6e58d.tar.gz
Changed the interface between the caller and the framework for subscriptions.
In order to more debug issues during the subscription, the caller should have access to the sip information. To access the sip information, using the created SipDetails class. The existing interface change to set the SipDetails class as a parameter. Bug: b/238192079 Test: cts CtsTelephonyTestCases:RcsUceAdapterTest Test: atest UceControllerTest SubscribeCoordinatorTest SubscribeRequestTest UceRequestManagerTest Change-Id: Iadb98971b7b12911d079bc4a9c99f2cd7e7ee78e
Diffstat (limited to 'src')
-rw-r--r--src/java/com/android/ims/rcs/uce/UceController.java12
-rw-r--r--src/java/com/android/ims/rcs/uce/eab/EabBulkCapabilityUpdater.java5
-rw-r--r--src/java/com/android/ims/rcs/uce/request/CapabilityRequestResponse.java34
-rw-r--r--src/java/com/android/ims/rcs/uce/request/OptionsRequestCoordinator.java4
-rw-r--r--src/java/com/android/ims/rcs/uce/request/SubscribeRequest.java32
-rw-r--r--src/java/com/android/ims/rcs/uce/request/SubscribeRequestCoordinator.java39
-rw-r--r--src/java/com/android/ims/rcs/uce/request/UceRequestCoordinator.java51
-rw-r--r--src/java/com/android/ims/rcs/uce/request/UceRequestManager.java8
8 files changed, 129 insertions, 56 deletions
diff --git a/src/java/com/android/ims/rcs/uce/UceController.java b/src/java/com/android/ims/rcs/uce/UceController.java
index 429b5518..aeab0611 100644
--- a/src/java/com/android/ims/rcs/uce/UceController.java
+++ b/src/java/com/android/ims/rcs/uce/UceController.java
@@ -635,14 +635,14 @@ public class UceController {
if (uriList == null || uriList.isEmpty() || c == null) {
logw("requestCapabilities: parameter is empty");
if (c != null) {
- c.onError(RcsUceAdapter.ERROR_GENERIC_FAILURE, 0L);
+ c.onError(RcsUceAdapter.ERROR_GENERIC_FAILURE, 0L, null);
}
return;
}
if (isUnavailable()) {
logw("requestCapabilities: controller is unavailable");
- c.onError(RcsUceAdapter.ERROR_GENERIC_FAILURE, 0L);
+ c.onError(RcsUceAdapter.ERROR_GENERIC_FAILURE, 0L, null);
return;
}
@@ -655,7 +655,7 @@ public class UceController {
long retryAfterMillis = deviceStateResult.getRequestRetryAfterMillis();
logw("requestCapabilities: The device is disallowed, deviceState= " + deviceState +
", errorCode=" + errorCode + ", retryAfterMillis=" + retryAfterMillis);
- c.onError(errorCode, retryAfterMillis);
+ c.onError(errorCode, retryAfterMillis, null);
return;
}
@@ -674,14 +674,14 @@ public class UceController {
if (uri == null || c == null) {
logw("requestAvailability: parameter is empty");
if (c != null) {
- c.onError(RcsUceAdapter.ERROR_GENERIC_FAILURE, 0L);
+ c.onError(RcsUceAdapter.ERROR_GENERIC_FAILURE, 0L, null);
}
return;
}
if (isUnavailable()) {
logw("requestAvailability: controller is unavailable");
- c.onError(RcsUceAdapter.ERROR_GENERIC_FAILURE, 0L);
+ c.onError(RcsUceAdapter.ERROR_GENERIC_FAILURE, 0L, null);
return;
}
@@ -694,7 +694,7 @@ public class UceController {
long retryAfterMillis = deviceStateResult.getRequestRetryAfterMillis();
logw("requestAvailability: The device is disallowed, deviceState= " + deviceState +
", errorCode=" + errorCode + ", retryAfterMillis=" + retryAfterMillis);
- c.onError(errorCode, retryAfterMillis);
+ c.onError(errorCode, retryAfterMillis, null);
return;
}
diff --git a/src/java/com/android/ims/rcs/uce/eab/EabBulkCapabilityUpdater.java b/src/java/com/android/ims/rcs/uce/eab/EabBulkCapabilityUpdater.java
index b4406fdd..738a4fc8 100644
--- a/src/java/com/android/ims/rcs/uce/eab/EabBulkCapabilityUpdater.java
+++ b/src/java/com/android/ims/rcs/uce/eab/EabBulkCapabilityUpdater.java
@@ -37,6 +37,7 @@ import android.telephony.CarrierConfigManager;
import android.telephony.ims.ImsManager;
import android.telephony.ims.ImsRcsManager;
import android.telephony.ims.RcsContactUceCapability;
+import android.telephony.ims.SipDetails;
import android.telephony.ims.aidl.IRcsUceControllerCallback;
import android.util.Log;
@@ -142,12 +143,12 @@ public final class EabBulkCapabilityUpdater {
}
@Override
- public void onComplete() {
+ public void onComplete(SipDetails details) {
Log.d(TAG, "onComplete");
}
@Override
- public void onError(int errorCode, long retryAfterMilliseconds) {
+ public void onError(int errorCode, long retryAfterMilliseconds, SipDetails details) {
Log.d(TAG, "Refresh capabilities failed. Error code: " + errorCode
+ ", retryAfterMilliseconds: " + retryAfterMilliseconds);
if (retryAfterMilliseconds != 0) {
diff --git a/src/java/com/android/ims/rcs/uce/request/CapabilityRequestResponse.java b/src/java/com/android/ims/rcs/uce/request/CapabilityRequestResponse.java
index 97371b8b..6da31301 100644
--- a/src/java/com/android/ims/rcs/uce/request/CapabilityRequestResponse.java
+++ b/src/java/com/android/ims/rcs/uce/request/CapabilityRequestResponse.java
@@ -16,11 +16,14 @@
package com.android.ims.rcs.uce.request;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.net.Uri;
import android.telephony.ims.RcsContactTerminatedReason;
import android.telephony.ims.RcsContactUceCapability;
import android.telephony.ims.RcsUceAdapter;
import android.telephony.ims.RcsUceAdapter.ErrorCode;
+import android.telephony.ims.SipDetails;
import android.telephony.ims.stub.RcsCapabilityExchangeImplBase;
import android.telephony.ims.stub.RcsCapabilityExchangeImplBase.CommandCode;
import android.text.TextUtils;
@@ -85,6 +88,9 @@ public class CapabilityRequestResponse {
// The collection to record whether the request contacts have received the capabilities updated.
private Map<Uri, Boolean> mContactCapsReceived;
+ // The SIP detail information of the network response.
+ private Optional<SipDetails> mSipDetails;
+
public CapabilityRequestResponse() {
mRequestInternalError = Optional.empty();
mCommandError = Optional.empty();
@@ -99,6 +105,7 @@ public class CapabilityRequestResponse {
mUpdatedCapabilityList = new ArrayList<>();
mRemoteCaps = new HashSet<>();
mContactCapsReceived = new HashMap<>();
+ mSipDetails = Optional.empty();
}
/**
@@ -169,12 +176,20 @@ public class CapabilityRequestResponse {
/**
* Set the network response of this request which is sent by the network.
*/
- public synchronized void setNetworkResponseCode(int sipCode, String reasonPhrase,
- int reasonHeaderCause, String reasonHeaderText) {
- mNetworkRespSipCode = Optional.of(sipCode);
- mReasonPhrase = Optional.ofNullable(reasonPhrase);
- mReasonHeaderCause = Optional.of(reasonHeaderCause);
- mReasonHeaderText = Optional.ofNullable(reasonHeaderText);
+ public synchronized void setSipDetails(@NonNull SipDetails details) {
+ setNetworkResponseCode(details.getResponseCode(), details.getResponsePhrase());
+ if (details.getReasonHeaderCause() != 0) {
+ mReasonHeaderCause = Optional.of(details.getReasonHeaderCause());
+ } else {
+ mReasonHeaderCause = Optional.empty();
+ }
+ if (TextUtils.isEmpty(details.getReasonHeaderText())) {
+ mReasonHeaderText = Optional.empty();
+ } else {
+ mReasonHeaderText = Optional.ofNullable(details.getReasonHeaderText());
+ }
+
+ mSipDetails = Optional.ofNullable(details);
}
// Get the sip code of the network response.
@@ -239,6 +254,13 @@ public class CapabilityRequestResponse {
}
/**
+ * Retrieve the SIP information which received from the network.
+ */
+ public Optional<SipDetails> getSipDetails() {
+ return mSipDetails;
+ }
+
+ /**
* Add the capabilities which are retrieved from the cache.
*/
public synchronized void addCachedCapabilities(List<RcsContactUceCapability> capabilityList) {
diff --git a/src/java/com/android/ims/rcs/uce/request/OptionsRequestCoordinator.java b/src/java/com/android/ims/rcs/uce/request/OptionsRequestCoordinator.java
index a2660931..b2db1788 100644
--- a/src/java/com/android/ims/rcs/uce/request/OptionsRequestCoordinator.java
+++ b/src/java/com/android/ims/rcs/uce/request/OptionsRequestCoordinator.java
@@ -315,7 +315,7 @@ public class OptionsRequestCoordinator extends UceRequestCoordinator {
private void triggerCompletedCallback() {
try {
logd("triggerCompletedCallback");
- mCapabilitiesCallback.onComplete();
+ mCapabilitiesCallback.onComplete(null);
} catch (RemoteException e) {
logw("triggerCompletedCallback exception: " + e);
} finally {
@@ -329,7 +329,7 @@ public class OptionsRequestCoordinator extends UceRequestCoordinator {
private void triggerErrorCallback(int errorCode, long retryAfterMillis) {
try {
logd("triggerErrorCallback: errorCode=" + errorCode + ", retry=" + retryAfterMillis);
- mCapabilitiesCallback.onError(errorCode, retryAfterMillis);
+ mCapabilitiesCallback.onError(errorCode, retryAfterMillis, null);
} catch (RemoteException e) {
logw("triggerErrorCallback exception: " + e);
} finally {
diff --git a/src/java/com/android/ims/rcs/uce/request/SubscribeRequest.java b/src/java/com/android/ims/rcs/uce/request/SubscribeRequest.java
index bee71771..a306eb42 100644
--- a/src/java/com/android/ims/rcs/uce/request/SubscribeRequest.java
+++ b/src/java/com/android/ims/rcs/uce/request/SubscribeRequest.java
@@ -17,11 +17,13 @@
package com.android.ims.rcs.uce.request;
import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.net.Uri;
import android.os.RemoteException;
import android.telephony.ims.RcsContactTerminatedReason;
import android.telephony.ims.RcsContactUceCapability;
import android.telephony.ims.RcsUceAdapter;
+import android.telephony.ims.SipDetails;
import android.telephony.ims.aidl.ISubscribeResponseCallback;
import android.telephony.ims.stub.RcsCapabilityExchangeImplBase.CommandCode;
@@ -53,14 +55,8 @@ public class SubscribeRequest extends CapabilityRequest {
SubscribeRequest.this.onCommandError(code);
}
@Override
- public void onNetworkResponse(int code, String reason) {
- SubscribeRequest.this.onNetworkResponse(code, reason);
- }
- @Override
- public void onNetworkRespHeader(int code, String reasonPhrase,
- int reasonHeaderCause, String reasonHeaderText) {
- SubscribeRequest.this.onNetworkResponse(code, reasonPhrase, reasonHeaderCause,
- reasonHeaderText);
+ public void onNetworkResponse(@NonNull SipDetails details) {
+ SubscribeRequest.this.onNetworkResponse(details);
}
@Override
public void onNotifyCapabilitiesUpdate(List<String> pidfXmls) {
@@ -135,28 +131,14 @@ public class SubscribeRequest extends CapabilityRequest {
}
// Receive the network response callback which is triggered by ISubscribeResponseCallback.
- private void onNetworkResponse(int sipCode, String reason) {
- logd("onNetworkResponse: code=" + sipCode + ", reason=" + reason);
- if (mIsFinished) {
- logw("onNetworkResponse: request is already finished");
- return;
- }
- mRequestResponse.setNetworkResponseCode(sipCode, reason);
- mRequestManagerCallback.notifyNetworkResponse(mCoordinatorId, mTaskId);
- }
+ private void onNetworkResponse(@NonNull SipDetails details) {
+ logd("onNetworkResponse: sip details=" + details.toString());
- // Receive the network response callback which is triggered by ISubscribeResponseCallback.
- private void onNetworkResponse(int sipCode, String reasonPhrase,
- int reasonHeaderCause, String reasonHeaderText) {
- logd("onNetworkResponse: code=" + sipCode + ", reasonPhrase=" + reasonPhrase +
- ", reasonHeaderCause=" + reasonHeaderCause +
- ", reasonHeaderText=" + reasonHeaderText);
if (mIsFinished) {
logw("onNetworkResponse: request is already finished");
return;
}
- mRequestResponse.setNetworkResponseCode(sipCode, reasonPhrase, reasonHeaderCause,
- reasonHeaderText);
+ mRequestResponse.setSipDetails(details);
mRequestManagerCallback.notifyNetworkResponse(mCoordinatorId, mTaskId);
}
diff --git a/src/java/com/android/ims/rcs/uce/request/SubscribeRequestCoordinator.java b/src/java/com/android/ims/rcs/uce/request/SubscribeRequestCoordinator.java
index 2d1736c6..26143f94 100644
--- a/src/java/com/android/ims/rcs/uce/request/SubscribeRequestCoordinator.java
+++ b/src/java/com/android/ims/rcs/uce/request/SubscribeRequestCoordinator.java
@@ -18,10 +18,12 @@ package com.android.ims.rcs.uce.request;
import static android.telephony.ims.stub.RcsCapabilityExchangeImplBase.COMMAND_CODE_GENERIC_FAILURE;
+import android.annotation.Nullable;
import android.net.Uri;
import android.os.RemoteException;
import android.telephony.ims.RcsContactUceCapability;
import android.telephony.ims.RcsUceAdapter;
+import android.telephony.ims.SipDetails;
import android.telephony.ims.aidl.IRcsUceControllerCallback;
import com.android.ims.rcs.uce.UceDeviceState.DeviceStateResult;
@@ -111,21 +113,25 @@ public class SubscribeRequestCoordinator extends UceRequestCoordinator {
private static final RequestResultCreator sNetworkRespErrorCreator = (taskId, response,
requestMgrCallback) -> {
DeviceStateResult deviceState = requestMgrCallback.getDeviceState();
+ SipDetails details = response.getSipDetails().orElse(null);
if (deviceState.isRequestForbidden()) {
int errorCode = deviceState.getErrorCode().orElse(RcsUceAdapter.ERROR_FORBIDDEN);
long retryAfter = deviceState.getRequestRetryAfterMillis();
- return RequestResult.createFailedResult(taskId, errorCode, retryAfter);
+ return RequestResult.createFailedResult(taskId, errorCode, retryAfter, details);
} else {
int errorCode = CapabilityRequestResponse.getCapabilityErrorFromSipCode(response);
long retryAfter = response.getRetryAfterMillis();
- return RequestResult.createFailedResult(taskId, errorCode, retryAfter);
+ return RequestResult.createFailedResult(taskId, errorCode, retryAfter, details);
}
};
// The RequestResult creator of the network response is not 200 OK, however, we can to treat
// it as a successful result and finish the request
private static final RequestResultCreator sNetworkRespSuccessfulCreator = (taskId, response,
- requestMgrCallback) -> RequestResult.createSuccessResult(taskId);
+ requestMgrCallback) -> {
+ SipDetails detail = response.getSipDetails().orElse(null);
+ return RequestResult.createSuccessResult(taskId, detail);
+ };
// The RequestResult creator of the request terminated.
private static final RequestResultCreator sTerminatedCreator = (taskId, response,
@@ -134,6 +140,7 @@ public class SubscribeRequestCoordinator extends UceRequestCoordinator {
TerminatedResult terminatedResult = SubscriptionTerminatedHelper.getAnalysisResult(
response.getTerminatedReason(), response.getRetryAfterMillis(),
response.haveAllRequestCapsUpdatedBeenReceived());
+ SipDetails details = response.getSipDetails().orElse(null);
if (terminatedResult.getErrorCode().isPresent()) {
// If the terminated error code is present, it means that the request is failed.
int errorCode = terminatedResult.getErrorCode().get();
@@ -143,9 +150,9 @@ public class SubscribeRequestCoordinator extends UceRequestCoordinator {
// If the network response is failed or the retryAfter is not 0, this request is failed.
long retryAfterMillis = response.getRetryAfterMillis();
int errorCode = CapabilityRequestResponse.getCapabilityErrorFromSipCode(response);
- return RequestResult.createFailedResult(taskId, errorCode, retryAfterMillis);
+ return RequestResult.createFailedResult(taskId, errorCode, retryAfterMillis, details);
} else {
- return RequestResult.createSuccessResult(taskId);
+ return RequestResult.createSuccessResult(taskId, details);
}
};
@@ -540,14 +547,23 @@ public class SubscribeRequestCoordinator extends UceRequestCoordinator {
.max(Comparator.comparingLong(result ->
result.getRetryMillis().orElse(-1L)));
+ Optional<RequestResult> optDebugInfoResult = mFinishedRequests.values().stream()
+ .filter(result -> !result.getSipDetails().isEmpty())
+ .findFirst();
+
+ SipDetails details = null;
+ if (optDebugInfoResult.isPresent()) {
+ RequestResult result = optDebugInfoResult.get();
+ details = result.getSipDetails().orElse(null);
+ }
// Trigger the callback
if (optRequestResult.isPresent()) {
RequestResult result = optRequestResult.get();
int errorCode = result.getErrorCode().orElse(DEFAULT_ERROR_CODE);
long retryAfter = result.getRetryMillis().orElse(0L);
- triggerErrorCallback(errorCode, retryAfter);
+ triggerErrorCallback(errorCode, retryAfter, details);
} else {
- triggerCompletedCallback();
+ triggerCompletedCallback(details);
}
// Notify UceRequestManager to remove this instance from the collection.
@@ -574,10 +590,10 @@ public class SubscribeRequestCoordinator extends UceRequestCoordinator {
/**
* Trigger the onComplete callback to notify the request is completed.
*/
- private void triggerCompletedCallback() {
+ private void triggerCompletedCallback(@Nullable SipDetails details) {
try {
logd("triggerCompletedCallback");
- mCapabilitiesCallback.onComplete();
+ mCapabilitiesCallback.onComplete(details);
} catch (RemoteException e) {
logw("triggerCompletedCallback exception: " + e);
} finally {
@@ -588,10 +604,11 @@ public class SubscribeRequestCoordinator extends UceRequestCoordinator {
/**
* Trigger the onError callback to notify the request is failed.
*/
- private void triggerErrorCallback(int errorCode, long retryAfterMillis) {
+ private void triggerErrorCallback(int errorCode, long retryAfterMillis,
+ @Nullable SipDetails details) {
try {
logd("triggerErrorCallback: errorCode=" + errorCode + ", retry=" + retryAfterMillis);
- mCapabilitiesCallback.onError(errorCode, retryAfterMillis);
+ mCapabilitiesCallback.onError(errorCode, retryAfterMillis, details);
} catch (RemoteException e) {
logw("triggerErrorCallback exception: " + e);
} finally {
diff --git a/src/java/com/android/ims/rcs/uce/request/UceRequestCoordinator.java b/src/java/com/android/ims/rcs/uce/request/UceRequestCoordinator.java
index eea4fbe3..5d3a35da 100644
--- a/src/java/com/android/ims/rcs/uce/request/UceRequestCoordinator.java
+++ b/src/java/com/android/ims/rcs/uce/request/UceRequestCoordinator.java
@@ -20,6 +20,7 @@ import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.telephony.ims.RcsUceAdapter;
+import android.telephony.ims.SipDetails;
import android.util.Log;
import com.android.ims.rcs.uce.request.UceRequestManager.RequestManagerCallback;
@@ -135,6 +136,15 @@ public abstract class UceRequestCoordinator {
}
/**
+ * Create a RequestResult that successfully completes the request.
+ * @param taskId the task id of the UceRequest
+ * @param details The SIP information related to this request.
+ */
+ public static RequestResult createSuccessResult(long taskId, @Nullable SipDetails details) {
+ return new RequestResult(taskId, details);
+ }
+
+ /**
* Create a RequestResult for the failed request.
* @param taskId the task id of the UceRequest
* @param errorCode the error code of the failed request
@@ -144,29 +154,66 @@ public abstract class UceRequestCoordinator {
return new RequestResult(taskId, errorCode, retry);
}
+ /**
+ * Create a RequestResult for the failed request.
+ * @param taskId the task id of the UceRequest
+ * @param errorCode the error code of the failed request
+ * @param retry When the request can be retried.
+ * @param details The SIP information related to this request.
+ */
+ public static RequestResult createFailedResult(long taskId, int errorCode, long retry,
+ @Nullable SipDetails details) {
+ return new RequestResult(taskId, errorCode, retry, details);
+ }
+
private final Long mTaskId;
private final Boolean mIsSuccess;
private final Optional<Integer> mErrorCode;
private final Optional<Long> mRetryMillis;
+ private final Optional<SipDetails> mSipDetails;
/**
* The private constructor for the successful request.
*/
private RequestResult(long taskId) {
+ this(taskId, null);
+ }
+
+ /**
+ * The private constructor for the successful request.
+ */
+ private RequestResult(long taskId, SipDetails details) {
mTaskId = taskId;
mIsSuccess = true;
mErrorCode = Optional.empty();
mRetryMillis = Optional.empty();
+ if (details == null) {
+ mSipDetails = Optional.empty();
+ } else {
+ mSipDetails = Optional.ofNullable(details);
+ }
}
/**
* The private constructor for the failed request.
*/
private RequestResult(long taskId, int errorCode, long retryMillis) {
+ this(taskId, errorCode, retryMillis, null);
+ }
+
+ /**
+ * The private constructor for the failed request.
+ */
+ private RequestResult(long taskId, int errorCode, long retryMillis, SipDetails details) {
mTaskId = taskId;
mIsSuccess = false;
mErrorCode = Optional.of(errorCode);
mRetryMillis = Optional.of(retryMillis);
+ if (details == null) {
+ mSipDetails = Optional.empty();
+ } else {
+ mSipDetails = Optional.ofNullable(details);
+ }
}
public long getTaskId() {
@@ -184,6 +231,10 @@ public abstract class UceRequestCoordinator {
public Optional<Long> getRetryMillis() {
return mRetryMillis;
}
+
+ public Optional<SipDetails> getSipDetails() {
+ return mSipDetails;
+ }
}
// The default capability error code.
diff --git a/src/java/com/android/ims/rcs/uce/request/UceRequestManager.java b/src/java/com/android/ims/rcs/uce/request/UceRequestManager.java
index 85908f0c..8ff39c1b 100644
--- a/src/java/com/android/ims/rcs/uce/request/UceRequestManager.java
+++ b/src/java/com/android/ims/rcs/uce/request/UceRequestManager.java
@@ -478,7 +478,7 @@ public class UceRequestManager {
public void sendCapabilityRequest(List<Uri> uriList, boolean skipFromCache,
IRcsUceControllerCallback callback) throws RemoteException {
if (mIsDestroyed) {
- callback.onError(RcsUceAdapter.ERROR_GENERIC_FAILURE, 0L);
+ callback.onError(RcsUceAdapter.ERROR_GENERIC_FAILURE, 0L, null);
return;
}
sendRequestInternal(UceRequest.REQUEST_TYPE_CAPABILITY, uriList, skipFromCache, callback);
@@ -490,7 +490,7 @@ public class UceRequestManager {
public void sendAvailabilityRequest(Uri uri, IRcsUceControllerCallback callback)
throws RemoteException {
if (mIsDestroyed) {
- callback.onError(RcsUceAdapter.ERROR_GENERIC_FAILURE, 0L);
+ callback.onError(RcsUceAdapter.ERROR_GENERIC_FAILURE, 0L, null);
return;
}
sendRequestInternal(UceRequest.REQUEST_TYPE_AVAILABILITY,
@@ -511,7 +511,7 @@ public class UceRequestManager {
}
if (nonCachedUris.isEmpty()) {
logd("sendRequestInternal: shortcut complete, sending success result");
- callback.onComplete();
+ callback.onComplete(null);
return;
}
}
@@ -525,7 +525,7 @@ public class UceRequestManager {
if (requestCoordinator == null) {
logw("sendRequestInternal: Neither Presence nor OPTIONS are supported");
- callback.onError(RcsUceAdapter.ERROR_NOT_ENABLED, 0L);
+ callback.onError(RcsUceAdapter.ERROR_NOT_ENABLED, 0L, null);
return;
}