Track conference start in system elapsed time.
This is important so that Telecom can track the duration of the call,
which is tracked using wall clock time.
Test: Manual, unit test
Bug: 64068300
Change-Id: If642d282cd8134060acf6ffe8d81215c394d800c
diff --git a/telecomm/java/android/telecom/ParcelableConnection.java b/telecomm/java/android/telecom/ParcelableConnection.java
index 434abf5..61d5a12 100644
--- a/telecomm/java/android/telecom/ParcelableConnection.java
+++ b/telecomm/java/android/telecom/ParcelableConnection.java
@@ -47,6 +47,7 @@
private final boolean mRingbackRequested;
private final boolean mIsVoipAudioMode;
private final long mConnectTimeMillis;
+ private final long mConnectElapsedTimeMillis;
private final StatusHints mStatusHints;
private final DisconnectCause mDisconnectCause;
private final List<String> mConferenceableConnectionIds;
@@ -69,6 +70,7 @@
boolean ringbackRequested,
boolean isVoipAudioMode,
long connectTimeMillis,
+ long connectElapsedTimeMillis,
StatusHints statusHints,
DisconnectCause disconnectCause,
List<String> conferenceableConnectionIds,
@@ -77,7 +79,8 @@
this(phoneAccount, state, capabilities, properties, supportedAudioRoutes, address,
addressPresentation, callerDisplayName, callerDisplayNamePresentation,
videoProvider, videoState, ringbackRequested, isVoipAudioMode, connectTimeMillis,
- statusHints, disconnectCause, conferenceableConnectionIds, extras);
+ connectElapsedTimeMillis, statusHints, disconnectCause, conferenceableConnectionIds,
+ extras);
mParentCallId = parentCallId;
}
@@ -97,6 +100,7 @@
boolean ringbackRequested,
boolean isVoipAudioMode,
long connectTimeMillis,
+ long connectElapsedTimeMillis,
StatusHints statusHints,
DisconnectCause disconnectCause,
List<String> conferenceableConnectionIds,
@@ -115,6 +119,7 @@
mRingbackRequested = ringbackRequested;
mIsVoipAudioMode = isVoipAudioMode;
mConnectTimeMillis = connectTimeMillis;
+ mConnectElapsedTimeMillis = connectElapsedTimeMillis;
mStatusHints = statusHints;
mDisconnectCause = disconnectCause;
mConferenceableConnectionIds = conferenceableConnectionIds;
@@ -190,6 +195,10 @@
return mConnectTimeMillis;
}
+ public long getConnectElapsedTimeMillis() {
+ return mConnectElapsedTimeMillis;
+ }
+
public final StatusHints getStatusHints() {
return mStatusHints;
}
@@ -255,6 +264,7 @@
int properties = source.readInt();
int supportedAudioRoutes = source.readInt();
String parentCallId = source.readString();
+ long connectElapsedTimeMillis = source.readLong();
return new ParcelableConnection(
phoneAccount,
@@ -271,6 +281,7 @@
ringbackRequested,
audioModeIsVoip,
connectTimeMillis,
+ connectElapsedTimeMillis,
statusHints,
disconnectCause,
conferenceableConnectionIds,
@@ -313,5 +324,6 @@
destination.writeInt(mConnectionProperties);
destination.writeInt(mSupportedAudioRoutes);
destination.writeString(mParentCallId);
+ destination.writeLong(mConnectElapsedTimeMillis);
}
}