Update call state for 2nd call in CDMA conference.

In CDMA when we make a new call in presence of another active call, the
new call and the original call will eventually become a conference call
which shares a single underlying OriginalConnection. Since the
OriginalConnection is already in ACTIVE state, we need a way to fake the
2 call object's state in such a way that the user sees the first call as
being held and the second call as dialing for a few seconds before it is
merged into a conference call.
The first call object's state is moved back from HOLD to ACTIVE in
|resetStateForConference| after this timeout expiry. However for the
second call we need to force update the state of the call object in
|forceAsDialing(false)|, otherwise the call object's state remains
DIALING since the OriginalConnectionState does not change throughout
this duration. Forcing the state updation will help revert the fake
DIALING state of second call object and move it to ACTIVE state since
the underlying OriginalConnection is in ACTIVE state.

This issue is not noticed on the phone UI since it only displays the
state of the new conference call created and the 2 child call's state is
not individually presented.

BUG: 23316217
Change-Id: Ie04d340c326441e5ca08bbbea5cb225007fc55d9
diff --git a/src/com/android/services/telephony/CdmaConnection.java b/src/com/android/services/telephony/CdmaConnection.java
index d2250d4..d13f66f 100644
--- a/src/com/android/services/telephony/CdmaConnection.java
+++ b/src/com/android/services/telephony/CdmaConnection.java
@@ -192,7 +192,7 @@
         if (isDialing) {
             setDialing();
         } else {
-            updateState();
+            updateState(true);
         }
     }
 
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
index cbe7c0a..8e846e4 100644
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -708,13 +708,17 @@
     }
 
     void updateState() {
+       updateState(false);
+    }
+
+    void updateState(boolean force) {
         if (mOriginalConnection == null) {
             return;
         }
 
         Call.State newState = mOriginalConnection.getState();
         Log.v(this, "Update state from %s to %s for %s", mOriginalConnectionState, newState, this);
-        if (mOriginalConnectionState != newState) {
+        if (mOriginalConnectionState != newState || force) {
             mOriginalConnectionState = newState;
             switch (newState) {
                 case IDLE: