Merge "Track conference start in system elapsed time."
am: 3b166fba8a
Change-Id: I8b78aaa447adcc1bfce0fec8f50857daa37d0575
This commit is contained in:
@@ -38800,6 +38800,7 @@ package android.telecom {
|
||||
method public final void setActive();
|
||||
method public final void setConferenceableConnections(java.util.List<android.telecom.Connection>);
|
||||
method public final void setConnectionCapabilities(int);
|
||||
method public final void setConnectionElapsedTime(long);
|
||||
method public final void setConnectionProperties(int);
|
||||
method public final void setConnectionTime(long);
|
||||
method public final void setDialing();
|
||||
|
||||
@@ -42042,6 +42042,7 @@ package android.telecom {
|
||||
method public final void setConferenceableConnections(java.util.List<android.telecom.Connection>);
|
||||
method public final deprecated void setConnectTimeMillis(long);
|
||||
method public final void setConnectionCapabilities(int);
|
||||
method public final void setConnectionElapsedTime(long);
|
||||
method public final void setConnectionProperties(int);
|
||||
method public final void setConnectionTime(long);
|
||||
method public final void setDialing();
|
||||
|
||||
@@ -39008,6 +39008,7 @@ package android.telecom {
|
||||
method public final void setActive();
|
||||
method public final void setConferenceableConnections(java.util.List<android.telecom.Connection>);
|
||||
method public final void setConnectionCapabilities(int);
|
||||
method public final void setConnectionElapsedTime(long);
|
||||
method public final void setConnectionProperties(int);
|
||||
method public final void setConnectionTime(long);
|
||||
method public final void setDialing();
|
||||
|
||||
@@ -20,6 +20,7 @@ import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.SystemApi;
|
||||
import android.os.Bundle;
|
||||
import android.os.SystemClock;
|
||||
import android.telecom.Connection.VideoProvider;
|
||||
import android.util.ArraySet;
|
||||
|
||||
@@ -81,6 +82,7 @@ public abstract class Conference extends Conferenceable {
|
||||
private int mConnectionProperties;
|
||||
private String mDisconnectMessage;
|
||||
private long mConnectTimeMillis = CONNECT_TIME_NOT_SPECIFIED;
|
||||
private long mConnectElapsedTimeMillis = CONNECT_TIME_NOT_SPECIFIED;
|
||||
private StatusHints mStatusHints;
|
||||
private Bundle mExtras;
|
||||
private Set<String> mPreviousExtraKeys;
|
||||
@@ -582,7 +584,11 @@ public abstract class Conference extends Conferenceable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the connection start time of the {@code Conference}.
|
||||
* Sets the connection start time of the {@code Conference}. Should be specified in wall-clock
|
||||
* time returned by {@link System#currentTimeMillis()}.
|
||||
* <p>
|
||||
* When setting the connection time, you should always set the connection elapsed time via
|
||||
* {@link #setConnectionElapsedTime(long)}.
|
||||
*
|
||||
* @param connectionTimeMillis The connection time, in milliseconds.
|
||||
*/
|
||||
@@ -590,6 +596,20 @@ public abstract class Conference extends Conferenceable {
|
||||
mConnectTimeMillis = connectionTimeMillis;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the elapsed time since system boot when the {@link Conference} was connected.
|
||||
* This is used to determine the duration of the {@link Conference}.
|
||||
* <p>
|
||||
* When setting the connection elapsed time, you should always set the connection time via
|
||||
* {@link #setConnectionTime(long)}.
|
||||
*
|
||||
* @param connectionElapsedTime The connection time, as measured by
|
||||
* {@link SystemClock#elapsedRealtime()}.
|
||||
*/
|
||||
public final void setConnectionElapsedTime(long connectionElapsedTime) {
|
||||
mConnectElapsedTimeMillis = connectionElapsedTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* @hide
|
||||
* @deprecated Use {@link #getConnectionTime}.
|
||||
@@ -611,6 +631,21 @@ public abstract class Conference extends Conferenceable {
|
||||
return mConnectTimeMillis;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the connection start time of the {@link Conference}, if specified. A value of
|
||||
* {@link #CONNECT_TIME_NOT_SPECIFIED} indicates that Telecom should determine the start time
|
||||
* of the conference.
|
||||
*
|
||||
* This is based on the value of {@link SystemClock#elapsedRealtime()} to ensure that it is not
|
||||
* impacted by wall clock changes (user initiated, network initiated, time zone change, etc).
|
||||
*
|
||||
* @return The elapsed time at which the {@link Conference} was connected.
|
||||
* @hide
|
||||
*/
|
||||
public final long getConnectElapsedTime() {
|
||||
return mConnectElapsedTimeMillis;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inform this Conference that the state of its audio output has been changed externally.
|
||||
*
|
||||
|
||||
@@ -20,7 +20,6 @@ import com.android.internal.os.SomeArgs;
|
||||
import com.android.internal.telecom.IVideoCallback;
|
||||
import com.android.internal.telecom.IVideoProvider;
|
||||
|
||||
import android.annotation.IntDef;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.SystemApi;
|
||||
@@ -37,14 +36,13 @@ import android.os.Looper;
|
||||
import android.os.Message;
|
||||
import android.os.ParcelFileDescriptor;
|
||||
import android.os.RemoteException;
|
||||
import android.os.SystemClock;
|
||||
import android.util.ArraySet;
|
||||
import android.view.Surface;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
@@ -1696,6 +1694,7 @@ public abstract class Connection extends Conferenceable {
|
||||
private VideoProvider mVideoProvider;
|
||||
private boolean mAudioModeIsVoip;
|
||||
private long mConnectTimeMillis = Conference.CONNECT_TIME_NOT_SPECIFIED;
|
||||
private long mConnectElapsedTimeMillis = Conference.CONNECT_TIME_NOT_SPECIFIED;
|
||||
private StatusHints mStatusHints;
|
||||
private int mVideoState;
|
||||
private DisconnectCause mDisconnectCause;
|
||||
@@ -1839,6 +1838,22 @@ public abstract class Connection extends Conferenceable {
|
||||
return mConnectTimeMillis;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the connection start time of the {@link Connection}, if specified. A value of
|
||||
* {@link Conference#CONNECT_TIME_NOT_SPECIFIED} indicates that Telecom should determine the
|
||||
* start time of the conference.
|
||||
*
|
||||
* Based on the value of {@link SystemClock#elapsedRealtime()}, which ensures that wall-clock
|
||||
* changes do not impact the call duration.
|
||||
*
|
||||
* @return The time at which the {@link Connection} was connected.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public final long getConnectElapsedTimeMillis() {
|
||||
return mConnectElapsedTimeMillis;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The status hints for this connection.
|
||||
*/
|
||||
@@ -2250,7 +2265,8 @@ public abstract class Connection extends Conferenceable {
|
||||
* Sets the time at which a call became active on this Connection. This is set only
|
||||
* when a conference call becomes active on this connection.
|
||||
*
|
||||
* @param connectionTimeMillis The connection time, in milliseconds.
|
||||
* @param connectTimeMillis The connection time, in milliseconds. Should be set using a value
|
||||
* obtained from {@link System#currentTimeMillis()}.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@@ -2258,6 +2274,19 @@ public abstract class Connection extends Conferenceable {
|
||||
mConnectTimeMillis = connectTimeMillis;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the time at which a call became active on this Connection. This is set only
|
||||
* when a conference call becomes active on this connection.
|
||||
*
|
||||
* @param connectElapsedTimeMillis The connection time, in milliseconds. Stored in the format
|
||||
* {@link SystemClock#elapsedRealtime()}.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public final void setConnectElapsedTimeMillis(long connectElapsedTimeMillis) {
|
||||
mConnectElapsedTimeMillis = connectElapsedTimeMillis;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the label and icon status to display in the in-call UI.
|
||||
*
|
||||
|
||||
@@ -1405,6 +1405,7 @@ public abstract class ConnectionService extends Service {
|
||||
connection.isRingbackRequested(),
|
||||
connection.getAudioModeIsVoip(),
|
||||
connection.getConnectTimeMillis(),
|
||||
connection.getConnectElapsedTimeMillis(),
|
||||
connection.getStatusHints(),
|
||||
connection.getDisconnectCause(),
|
||||
createIdList(connection.getConferenceables()),
|
||||
@@ -1816,6 +1817,7 @@ public abstract class ConnectionService extends Service {
|
||||
null : conference.getVideoProvider().getInterface(),
|
||||
conference.getVideoState(),
|
||||
conference.getConnectTimeMillis(),
|
||||
conference.getConnectElapsedTime(),
|
||||
conference.getStatusHints(),
|
||||
conference.getExtras());
|
||||
|
||||
@@ -1881,6 +1883,7 @@ public abstract class ConnectionService extends Service {
|
||||
connection.isRingbackRequested(),
|
||||
connection.getAudioModeIsVoip(),
|
||||
connection.getConnectTimeMillis(),
|
||||
connection.getConnectElapsedTimeMillis(),
|
||||
connection.getStatusHints(),
|
||||
connection.getDisconnectCause(),
|
||||
emptyList,
|
||||
|
||||
@@ -41,6 +41,7 @@ public final class ParcelableConference implements Parcelable {
|
||||
private final int mVideoState;
|
||||
private StatusHints mStatusHints;
|
||||
private Bundle mExtras;
|
||||
private long mConnectElapsedTimeMillis = Conference.CONNECT_TIME_NOT_SPECIFIED;
|
||||
|
||||
public ParcelableConference(
|
||||
PhoneAccountHandle phoneAccount,
|
||||
@@ -51,6 +52,7 @@ public final class ParcelableConference implements Parcelable {
|
||||
IVideoProvider videoProvider,
|
||||
int videoState,
|
||||
long connectTimeMillis,
|
||||
long connectElapsedTimeMillis,
|
||||
StatusHints statusHints,
|
||||
Bundle extras) {
|
||||
mPhoneAccount = phoneAccount;
|
||||
@@ -58,12 +60,12 @@ public final class ParcelableConference implements Parcelable {
|
||||
mConnectionCapabilities = connectionCapabilities;
|
||||
mConnectionProperties = connectionProperties;
|
||||
mConnectionIds = connectionIds;
|
||||
mConnectTimeMillis = Conference.CONNECT_TIME_NOT_SPECIFIED;
|
||||
mVideoProvider = videoProvider;
|
||||
mVideoState = videoState;
|
||||
mConnectTimeMillis = connectTimeMillis;
|
||||
mStatusHints = statusHints;
|
||||
mExtras = extras;
|
||||
mConnectElapsedTimeMillis = connectElapsedTimeMillis;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -111,6 +113,11 @@ public final class ParcelableConference implements Parcelable {
|
||||
public long getConnectTimeMillis() {
|
||||
return mConnectTimeMillis;
|
||||
}
|
||||
|
||||
public long getConnectElapsedTimeMillis() {
|
||||
return mConnectElapsedTimeMillis;
|
||||
}
|
||||
|
||||
public IVideoProvider getVideoProvider() {
|
||||
return mVideoProvider;
|
||||
}
|
||||
@@ -144,10 +151,11 @@ public final class ParcelableConference implements Parcelable {
|
||||
StatusHints statusHints = source.readParcelable(classLoader);
|
||||
Bundle extras = source.readBundle(classLoader);
|
||||
int properties = source.readInt();
|
||||
long connectElapsedTimeMillis = source.readLong();
|
||||
|
||||
return new ParcelableConference(phoneAccount, state, capabilities, properties,
|
||||
connectionIds, videoCallProvider, videoState, connectTimeMillis, statusHints,
|
||||
extras);
|
||||
connectionIds, videoCallProvider, videoState, connectTimeMillis,
|
||||
connectElapsedTimeMillis, statusHints, extras);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -176,5 +184,6 @@ public final class ParcelableConference implements Parcelable {
|
||||
destination.writeParcelable(mStatusHints, 0);
|
||||
destination.writeBundle(mExtras);
|
||||
destination.writeInt(mConnectionProperties);
|
||||
destination.writeLong(mConnectElapsedTimeMillis);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,6 +47,7 @@ public final class ParcelableConnection implements Parcelable {
|
||||
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 @@ public final class ParcelableConnection implements Parcelable {
|
||||
boolean ringbackRequested,
|
||||
boolean isVoipAudioMode,
|
||||
long connectTimeMillis,
|
||||
long connectElapsedTimeMillis,
|
||||
StatusHints statusHints,
|
||||
DisconnectCause disconnectCause,
|
||||
List<String> conferenceableConnectionIds,
|
||||
@@ -77,7 +79,8 @@ public final class ParcelableConnection implements Parcelable {
|
||||
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 @@ public final class ParcelableConnection implements Parcelable {
|
||||
boolean ringbackRequested,
|
||||
boolean isVoipAudioMode,
|
||||
long connectTimeMillis,
|
||||
long connectElapsedTimeMillis,
|
||||
StatusHints statusHints,
|
||||
DisconnectCause disconnectCause,
|
||||
List<String> conferenceableConnectionIds,
|
||||
@@ -115,6 +119,7 @@ public final class ParcelableConnection implements Parcelable {
|
||||
mRingbackRequested = ringbackRequested;
|
||||
mIsVoipAudioMode = isVoipAudioMode;
|
||||
mConnectTimeMillis = connectTimeMillis;
|
||||
mConnectElapsedTimeMillis = connectElapsedTimeMillis;
|
||||
mStatusHints = statusHints;
|
||||
mDisconnectCause = disconnectCause;
|
||||
mConferenceableConnectionIds = conferenceableConnectionIds;
|
||||
@@ -190,6 +195,10 @@ public final class ParcelableConnection implements Parcelable {
|
||||
return mConnectTimeMillis;
|
||||
}
|
||||
|
||||
public long getConnectElapsedTimeMillis() {
|
||||
return mConnectElapsedTimeMillis;
|
||||
}
|
||||
|
||||
public final StatusHints getStatusHints() {
|
||||
return mStatusHints;
|
||||
}
|
||||
@@ -255,6 +264,7 @@ public final class ParcelableConnection implements Parcelable {
|
||||
int properties = source.readInt();
|
||||
int supportedAudioRoutes = source.readInt();
|
||||
String parentCallId = source.readString();
|
||||
long connectElapsedTimeMillis = source.readLong();
|
||||
|
||||
return new ParcelableConnection(
|
||||
phoneAccount,
|
||||
@@ -271,6 +281,7 @@ public final class ParcelableConnection implements Parcelable {
|
||||
ringbackRequested,
|
||||
audioModeIsVoip,
|
||||
connectTimeMillis,
|
||||
connectElapsedTimeMillis,
|
||||
statusHints,
|
||||
disconnectCause,
|
||||
conferenceableConnectionIds,
|
||||
@@ -313,5 +324,6 @@ public final class ParcelableConnection implements Parcelable {
|
||||
destination.writeInt(mConnectionProperties);
|
||||
destination.writeInt(mSupportedAudioRoutes);
|
||||
destination.writeString(mParentCallId);
|
||||
destination.writeLong(mConnectElapsedTimeMillis);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user