Skip hold request for Conference operation
Uma Maheswari Ramalingam [Mon, 19 May 2014 19:32:20 +0000 (12:32 -0700)]
Currently for conference operation, apps
sends out hold request followed by merge.

Certain IMS service implementation will execute
merge operation without waiting for apps to
put the call on hold explicitly.
For these scenarios, block hold request based on the
config value.

Change-Id: I1aec0f95381d43b3f7f1704fce988f0796839c36

src/java/com/android/ims/ImsCall.java

index b7adfb1..ab80fdb 100644 (file)
@@ -16,6 +16,8 @@
 
 package com.android.ims;
 
+import com.android.internal.R;
+
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -1014,7 +1016,10 @@ public class ImsCall implements ICall {
                         ImsReasonInfo.CODE_LOCAL_CALL_TERMINATED);
             }
 
-            if (mHold) {
+            // if skipHoldBeforeMerge = true, IMS service implementation will
+            // merge without explicitly holding the call.
+            if (mHold || (mContext.getResources().getBoolean(
+                    com.android.internal.R.bool.skipHoldBeforeMerge))) {
                 mSession.merge();
                 mUpdateRequest = UPDATE_MERGE;
             } else {