aboutsummaryrefslogtreecommitdiff
path: root/src/java/com/android/ims/rcs/uce/request/OptionsRequestCoordinator.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/java/com/android/ims/rcs/uce/request/OptionsRequestCoordinator.java')
-rw-r--r--src/java/com/android/ims/rcs/uce/request/OptionsRequestCoordinator.java27
1 files changed, 27 insertions, 0 deletions
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 9ab5fa83..a150dd6d 100644
--- a/src/java/com/android/ims/rcs/uce/request/OptionsRequestCoordinator.java
+++ b/src/java/com/android/ims/rcs/uce/request/OptionsRequestCoordinator.java
@@ -20,6 +20,7 @@ import static android.telephony.ims.stub.RcsCapabilityExchangeImplBase.COMMAND_C
import android.os.RemoteException;
import android.telephony.ims.RcsContactUceCapability;
+import android.telephony.ims.RcsUceAdapter;
import android.telephony.ims.aidl.IRcsUceControllerCallback;
import com.android.ims.rcs.uce.request.UceRequestManager.RequestManagerCallback;
@@ -96,6 +97,11 @@ public class OptionsRequestCoordinator extends UceRequestCoordinator {
private static final RequestResultCreator sNotNeedRequestFromNetworkCreator =
(taskId, response) -> RequestResult.createSuccessResult(taskId);
+ // The RequestResult creator of the request timeout.
+ private static final RequestResultCreator sRequestTimeoutCreator =
+ (taskId, response) -> RequestResult.createFailedResult(taskId,
+ RcsUceAdapter.ERROR_REQUEST_TIMEOUT, 0L);
+
// The callback to notify the result of the capabilities request.
private IRcsUceControllerCallback mCapabilitiesCallback;
@@ -144,6 +150,9 @@ public class OptionsRequestCoordinator extends UceRequestCoordinator {
case REQUEST_UPDATE_NO_NEED_REQUEST_FROM_NETWORK:
handleNoNeedRequestFromNetwork(request);
break;
+ case REQUEST_UPDATE_TIMEOUT:
+ handleRequestTimeout(request);
+ break;
default:
logw("onRequestUpdated(OptionsRequest): invalid event " + event);
break;
@@ -248,6 +257,24 @@ public class OptionsRequestCoordinator extends UceRequestCoordinator {
}
/**
+ * This method is called when the framework does not receive receive the result for
+ * capabilities request.
+ */
+ private void handleRequestTimeout(OptionsRequest request) {
+ CapabilityRequestResponse response = request.getRequestResponse();
+ logd("handleRequestTimeout: " + response.toString());
+
+ // Finish this request.
+ request.onFinish();
+
+ // Remove this request from the activated collection and notify RequestManager.
+ long taskId = request.getTaskId();
+ RequestResult requestResult = sRequestTimeoutCreator.createRequestResult(taskId,
+ response);
+ moveRequestToFinishedCollection(taskId, requestResult);
+ }
+
+ /**
* Trigger the capabilities updated callback.
*/
private void triggerCapabilitiesReceivedCallback(List<RcsContactUceCapability> capList) {