Fix for call timer resetting when starting IMS conference call. 4/4
- Added support in Conference for specifying the connect time when the
conference is created.
Bug: 18959443
Change-Id: I7a0b9e65b955c53314f6b23a5543e0e161998da5
diff --git a/src/com/android/server/telecom/CallsManager.java b/src/com/android/server/telecom/CallsManager.java
index c7d821e..3732a4f 100644
--- a/src/com/android/server/telecom/CallsManager.java
+++ b/src/com/android/server/telecom/CallsManager.java
@@ -24,6 +24,7 @@
import android.provider.CallLog.Calls;
import android.telecom.AudioState;
import android.telecom.CallState;
+import android.telecom.Conference;
import android.telecom.Connection;
import android.telecom.DisconnectCause;
import android.telecom.GatewayInfo;
@@ -1039,6 +1040,14 @@
Call createConferenceCall(
PhoneAccountHandle phoneAccount,
ParcelableConference parcelableConference) {
+
+ // If the parceled conference specifies a connect time, use it; otherwise default to 0,
+ // which is the default value for new Calls.
+ long connectTime =
+ parcelableConference.getConnectTimeMillis() ==
+ Conference.CONNECT_TIME_NOT_SPECIFIED ? 0 :
+ parcelableConference.getConnectTimeMillis();
+
Call call = new Call(
mContext,
mConnectionServiceRepository,
@@ -1047,7 +1056,8 @@
null /* connectionManagerPhoneAccount */,
phoneAccount,
false /* isIncoming */,
- true /* isConference */);
+ true /* isConference */,
+ connectTime);
setCallState(call, Call.getStateFromConnectionState(parcelableConference.getState()));
call.setConnectionCapabilities(parcelableConference.getConnectionCapabilities());