aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-11-29 00:14:14 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-11-29 00:14:14 +0000
commit32dd364adb58e54267215a0dce4c823ffffc09f8 (patch)
treeaad104673a74dbf6b5515d177873f2d0095ef326
parent4f89585d9a879b9da957431110aeebee4e4a02fe (diff)
parentbee8ebda7a5c087360d2d5cd8d5e29d4b912e0b9 (diff)
downloadims-oreo-m3-release.tar.gz
Change-Id: Iabb80305791a571cc0bf00a9ee2921b90fd974fa
-rw-r--r--src/java/com/android/ims/ImsCall.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/java/com/android/ims/ImsCall.java b/src/java/com/android/ims/ImsCall.java
index 716687d7..c5e6368e 100644
--- a/src/java/com/android/ims/ImsCall.java
+++ b/src/java/com/android/ims/ImsCall.java
@@ -1319,13 +1319,28 @@ public class ImsCall implements ICall {
logi("merge :: ");
synchronized(mLockObj) {
+ // If the host of the merge is in the midst of some other operation, we cannot merge.
if (mUpdateRequest != UPDATE_NONE) {
+ setCallSessionMergePending(false);
+ if (mMergePeer != null) {
+ mMergePeer.setCallSessionMergePending(false);
+ }
loge("merge :: update is in progress; request=" +
updateRequestToString(mUpdateRequest));
throw new ImsException("Call update is in progress",
ImsReasonInfo.CODE_LOCAL_ILLEGAL_STATE);
}
+ // The peer of the merge is in the midst of some other operation, we cannot merge.
+ if (mMergePeer != null && mMergePeer.mUpdateRequest != UPDATE_NONE) {
+ setCallSessionMergePending(false);
+ mMergePeer.setCallSessionMergePending(false);
+ loge("merge :: peer call update is in progress; request=" +
+ updateRequestToString(mMergePeer.mUpdateRequest));
+ throw new ImsException("Peer call update is in progress",
+ ImsReasonInfo.CODE_LOCAL_ILLEGAL_STATE);
+ }
+
if (mSession == null) {
loge("merge :: no call session");
throw new ImsException("No call session",