am f336efc8: am f5d61392: am 2f25c1f4: Fixing conference merge where only one party is added to conference.

* commit 'f336efc8bcd0e2a30e97f7db85ed69660c9d8b1e':
  Fixing conference merge where only one party is added to conference.
diff --git a/src/com/android/services/telephony/ImsConferenceController.java b/src/com/android/services/telephony/ImsConferenceController.java
index 5df7ea0..e93ebd4 100644
--- a/src/com/android/services/telephony/ImsConferenceController.java
+++ b/src/com/android/services/telephony/ImsConferenceController.java
@@ -68,6 +68,12 @@
         public void onDestroyed(Connection connection) {
             remove(connection);
         }
+
+        @Override
+        public void onConferenceStarted() {
+            Log.v(this, "onConferenceStarted");
+            recalculateConference();
+        }
     };
 
     /**
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
index d4d1746..f434aea 100644
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -186,6 +186,11 @@
     private boolean mWasImsConnection;
 
     /**
+     * Tracks the multiparty state of the ImsCall so that changes in the bit state can be detected.
+     */
+    private boolean mIsMultiParty = false;
+
+    /**
      * Determines if the {@link TelephonyConnection} has local video capabilities.
      * This is used when {@link TelephonyConnection#updateConnectionCapabilities()}} is called,
      * ensuring the appropriate capabilities are set.  Since capabilities
@@ -483,6 +488,7 @@
         if (isImsConnection()) {
             mWasImsConnection = true;
         }
+        mIsMultiParty = mOriginalConnection.isMultiparty();
 
         fireOnOriginalConnectionConfigured();
         updateAddress();
@@ -633,6 +639,24 @@
         }
         updateConnectionCapabilities();
         updateAddress();
+        updateMultiparty();
+    }
+
+    /**
+     * Checks for changes to the multiparty bit.  If a conference has started, informs listeners.
+     */
+    private void updateMultiparty() {
+        if (mOriginalConnection == null) {
+            return;
+        }
+
+        if (mIsMultiParty != mOriginalConnection.isMultiparty()) {
+            mIsMultiParty = mOriginalConnection.isMultiparty();
+
+            if (mIsMultiParty) {
+                notifyConferenceStarted();
+            }
+        }
     }
 
     private void setActiveInternal() {