Merge "Add api to retrieve call creation time."

This commit is contained in:
Tyler Gunn
2017-04-04 21:35:26 +00:00
committed by Gerrit Code Review
5 changed files with 59 additions and 23 deletions

View File

@ -36844,6 +36844,7 @@ package android.telecom {
method public java.lang.String getCallerDisplayName();
method public int getCallerDisplayNamePresentation();
method public final long getConnectTimeMillis();
method public long getCreationTimeMillis();
method public android.telecom.DisconnectCause getDisconnectCause();
method public android.os.Bundle getExtras();
method public android.telecom.GatewayInfo getGatewayInfo();

View File

@ -39818,6 +39818,7 @@ package android.telecom {
method public java.lang.String getCallerDisplayName();
method public int getCallerDisplayNamePresentation();
method public final long getConnectTimeMillis();
method public long getCreationTimeMillis();
method public android.telecom.DisconnectCause getDisconnectCause();
method public android.os.Bundle getExtras();
method public android.telecom.GatewayInfo getGatewayInfo();

View File

@ -36927,6 +36927,7 @@ package android.telecom {
method public java.lang.String getCallerDisplayName();
method public int getCallerDisplayNamePresentation();
method public final long getConnectTimeMillis();
method public long getCreationTimeMillis();
method public android.telecom.DisconnectCause getDisconnectCause();
method public android.os.Bundle getExtras();
method public android.telecom.GatewayInfo getGatewayInfo();

View File

@ -348,6 +348,7 @@ public final class Call {
private final StatusHints mStatusHints;
private final Bundle mExtras;
private final Bundle mIntentExtras;
private final long mCreationTimeMillis;
/**
* Whether the supplied capabilities supports the specified capability.
@ -570,9 +571,12 @@ public final class Call {
}
/**
* @return The time the {@code Call} has been connected. This information is updated
* periodically, but user interfaces should not rely on this to display any "call time
* clock".
* Returns the time the {@link Call} connected (i.e. became active). This information is
* updated periodically, but user interfaces should not rely on this to display the "call
* time clock". For the time when the call was first added to Telecom, see
* {@link #getCreationTimeMillis()}.
*
* @return The time the {@link Call} connected in milliseconds since the epoch.
*/
public final long getConnectTimeMillis() {
return mConnectTimeMillis;
@ -614,6 +618,18 @@ public final class Call {
return mIntentExtras;
}
/**
* Returns the time when the call was first created and added to Telecom. This is the same
* time that is logged as the start time in the Call Log (see
* {@link android.provider.CallLog.Calls#DATE}). To determine when the call was connected
* (became active), see {@link #getConnectTimeMillis()}.
*
* @return The creation time of the call, in millis since the epoch.
*/
public long getCreationTimeMillis() {
return mCreationTimeMillis;
}
@Override
public boolean equals(Object o) {
if (o instanceof Details) {
@ -633,28 +649,29 @@ public final class Call {
Objects.equals(mVideoState, d.mVideoState) &&
Objects.equals(mStatusHints, d.mStatusHints) &&
areBundlesEqual(mExtras, d.mExtras) &&
areBundlesEqual(mIntentExtras, d.mIntentExtras);
areBundlesEqual(mIntentExtras, d.mIntentExtras) &&
Objects.equals(mCreationTimeMillis, d.mCreationTimeMillis);
}
return false;
}
@Override
public int hashCode() {
return
Objects.hashCode(mHandle) +
Objects.hashCode(mHandlePresentation) +
Objects.hashCode(mCallerDisplayName) +
Objects.hashCode(mCallerDisplayNamePresentation) +
Objects.hashCode(mAccountHandle) +
Objects.hashCode(mCallCapabilities) +
Objects.hashCode(mCallProperties) +
Objects.hashCode(mDisconnectCause) +
Objects.hashCode(mConnectTimeMillis) +
Objects.hashCode(mGatewayInfo) +
Objects.hashCode(mVideoState) +
Objects.hashCode(mStatusHints) +
Objects.hashCode(mExtras) +
Objects.hashCode(mIntentExtras);
return Objects.hash(mHandle,
mHandlePresentation,
mCallerDisplayName,
mCallerDisplayNamePresentation,
mAccountHandle,
mCallCapabilities,
mCallProperties,
mDisconnectCause,
mConnectTimeMillis,
mGatewayInfo,
mVideoState,
mStatusHints,
mExtras,
mIntentExtras,
mCreationTimeMillis);
}
/** {@hide} */
@ -673,7 +690,8 @@ public final class Call {
int videoState,
StatusHints statusHints,
Bundle extras,
Bundle intentExtras) {
Bundle intentExtras,
long creationTimeMillis) {
mTelecomCallId = telecomCallId;
mHandle = handle;
mHandlePresentation = handlePresentation;
@ -689,6 +707,7 @@ public final class Call {
mStatusHints = statusHints;
mExtras = extras;
mIntentExtras = intentExtras;
mCreationTimeMillis = creationTimeMillis;
}
/** {@hide} */
@ -708,7 +727,8 @@ public final class Call {
parcelableCall.getVideoState(),
parcelableCall.getStatusHints(),
parcelableCall.getExtras(),
parcelableCall.getIntentExtras());
parcelableCall.getIntentExtras(),
parcelableCall.getCreationTimeMillis());
}
@Override

View File

@ -59,6 +59,7 @@ public final class ParcelableCall implements Parcelable {
private final List<String> mConferenceableCallIds;
private final Bundle mIntentExtras;
private final Bundle mExtras;
private final long mCreationTimeMillis;
public ParcelableCall(
String id,
@ -85,7 +86,8 @@ public final class ParcelableCall implements Parcelable {
int videoState,
List<String> conferenceableCallIds,
Bundle intentExtras,
Bundle extras) {
Bundle extras,
long creationTimeMillis) {
mId = id;
mState = state;
mDisconnectCause = disconnectCause;
@ -111,6 +113,7 @@ public final class ParcelableCall implements Parcelable {
mConferenceableCallIds = Collections.unmodifiableList(conferenceableCallIds);
mIntentExtras = intentExtras;
mExtras = extras;
mCreationTimeMillis = creationTimeMillis;
}
/** The unique ID of the call. */
@ -289,6 +292,13 @@ public final class ParcelableCall implements Parcelable {
return mIsVideoCallProviderChanged;
}
/**
* @return The time the call was created, in milliseconds since the epoch.
*/
public long getCreationTimeMillis() {
return mCreationTimeMillis;
}
/** Responsible for creating ParcelableCall objects for deserialized Parcels. */
public static final Parcelable.Creator<ParcelableCall> CREATOR =
new Parcelable.Creator<ParcelableCall> () {
@ -324,6 +334,7 @@ public final class ParcelableCall implements Parcelable {
int supportedAudioRoutes = source.readInt();
boolean isRttCallChanged = source.readByte() == 1;
ParcelableRttCall rttCall = source.readParcelable(classLoader);
long creationTimeMillis = source.readLong();
return new ParcelableCall(
id,
state,
@ -349,7 +360,8 @@ public final class ParcelableCall implements Parcelable {
videoState,
conferenceableCallIds,
intentExtras,
extras);
extras,
creationTimeMillis);
}
@Override
@ -393,6 +405,7 @@ public final class ParcelableCall implements Parcelable {
destination.writeInt(mSupportedAudioRoutes);
destination.writeByte((byte) (mIsRttCallChanged ? 1 : 0));
destination.writeParcelable(mRttCall, 0);
destination.writeLong(mCreationTimeMillis);
}
@Override