diff options
| author | 2017-03-17 11:27:09 -0700 | |
|---|---|---|
| committer | 2017-03-24 16:04:25 -0700 | |
| commit | c0bf6deced494f48cf46ae1d06be8ba9061b99ee (patch) | |
| tree | 8c8e8e1efe3e3beecab05c1f25bb329ef7b9a99e | |
| parent | ad2e7405ad2762c47455934f150109466081b146 (diff) | |
Add api to retrieve call creation time.
Test: CTS
Bug: 36124432
Change-Id: Ic8288dec73adda7870377f189f560acef0a575f6
| -rw-r--r-- | api/current.txt | 3 | ||||
| -rw-r--r-- | api/system-current.txt | 3 | ||||
| -rw-r--r-- | api/test-current.txt | 3 | ||||
| -rw-r--r-- | telecomm/java/android/telecom/Call.java | 62 | ||||
| -rw-r--r-- | telecomm/java/android/telecom/ParcelableCall.java | 17 |
5 files changed, 62 insertions, 26 deletions
diff --git a/api/current.txt b/api/current.txt index db44f3bc6751..83bf572c3345 100644 --- a/api/current.txt +++ b/api/current.txt @@ -23815,8 +23815,8 @@ package android.net { method public void reportNetworkConnectivity(android.net.Network, boolean); method public boolean requestBandwidthUpdate(android.net.Network); method public void requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback); - method public void requestNetwork(android.net.NetworkRequest, int, android.net.ConnectivityManager.NetworkCallback); method public void requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback, android.os.Handler); + method public void requestNetwork(android.net.NetworkRequest, int, android.net.ConnectivityManager.NetworkCallback); method public void requestNetwork(android.net.NetworkRequest, int, android.net.ConnectivityManager.NetworkCallback, android.os.Handler); method public void requestNetwork(android.net.NetworkRequest, android.app.PendingIntent); method public deprecated boolean requestRouteToHost(int, int); @@ -36875,6 +36875,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(); diff --git a/api/system-current.txt b/api/system-current.txt index 870da1dad2c6..710aa773a481 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -25602,8 +25602,8 @@ package android.net { method public void reportNetworkConnectivity(android.net.Network, boolean); method public boolean requestBandwidthUpdate(android.net.Network); method public void requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback); - method public void requestNetwork(android.net.NetworkRequest, int, android.net.ConnectivityManager.NetworkCallback); method public void requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback, android.os.Handler); + method public void requestNetwork(android.net.NetworkRequest, int, android.net.ConnectivityManager.NetworkCallback); method public void requestNetwork(android.net.NetworkRequest, int, android.net.ConnectivityManager.NetworkCallback, android.os.Handler); method public void requestNetwork(android.net.NetworkRequest, android.app.PendingIntent); method public deprecated boolean requestRouteToHost(int, int); @@ -39851,6 +39851,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(); diff --git a/api/test-current.txt b/api/test-current.txt index 8b29697b2d70..e4c655ae4e0c 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -23888,8 +23888,8 @@ package android.net { method public void reportNetworkConnectivity(android.net.Network, boolean); method public boolean requestBandwidthUpdate(android.net.Network); method public void requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback); - method public void requestNetwork(android.net.NetworkRequest, int, android.net.ConnectivityManager.NetworkCallback); method public void requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback, android.os.Handler); + method public void requestNetwork(android.net.NetworkRequest, int, android.net.ConnectivityManager.NetworkCallback); method public void requestNetwork(android.net.NetworkRequest, int, android.net.ConnectivityManager.NetworkCallback, android.os.Handler); method public void requestNetwork(android.net.NetworkRequest, android.app.PendingIntent); method public deprecated boolean requestRouteToHost(int, int); @@ -36957,6 +36957,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(); diff --git a/telecomm/java/android/telecom/Call.java b/telecomm/java/android/telecom/Call.java index 27f71726c4ea..ded28b0cb4c0 100644 --- a/telecomm/java/android/telecom/Call.java +++ b/telecomm/java/android/telecom/Call.java @@ -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 diff --git a/telecomm/java/android/telecom/ParcelableCall.java b/telecomm/java/android/telecom/ParcelableCall.java index 85a92d1a135a..6212a77feba8 100644 --- a/telecomm/java/android/telecom/ParcelableCall.java +++ b/telecomm/java/android/telecom/ParcelableCall.java @@ -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 |