Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3251a557 authored by Tyler Gunn's avatar Tyler Gunn
Browse files

Add api to retrieve call creation time.

Test: CTS
Bug: 36124432
Merged-In: Ic8288dec73adda7870377f189f560acef0a575f6
Change-Id: Ic8288dec73adda7870377f189f560acef0a575f6
parent 1e943b3e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -38750,6 +38750,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();
+1 −0
Original line number Diff line number Diff line
@@ -41973,6 +41973,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();
+1 −0
Original line number Diff line number Diff line
@@ -38954,6 +38954,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();
+41 −21
Original line number Diff line number Diff line
@@ -356,6 +356,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.
@@ -578,9 +579,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;
@@ -622,6 +626,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) {
@@ -641,28 +657,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} */
@@ -681,7 +698,8 @@ public final class Call {
                int videoState,
                StatusHints statusHints,
                Bundle extras,
                Bundle intentExtras) {
                Bundle intentExtras,
                long creationTimeMillis) {
            mTelecomCallId = telecomCallId;
            mHandle = handle;
            mHandlePresentation = handlePresentation;
@@ -697,6 +715,7 @@ public final class Call {
            mStatusHints = statusHints;
            mExtras = extras;
            mIntentExtras = intentExtras;
            mCreationTimeMillis = creationTimeMillis;
        }

        /** {@hide} */
@@ -716,7 +735,8 @@ public final class Call {
                    parcelableCall.getVideoState(),
                    parcelableCall.getStatusHints(),
                    parcelableCall.getExtras(),
                    parcelableCall.getIntentExtras());
                    parcelableCall.getIntentExtras(),
                    parcelableCall.getCreationTimeMillis());
        }

        @Override
+15 −2
Original line number Diff line number Diff line
@@ -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