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

Commit a27523e3 authored by Tyler Gunn's avatar Tyler Gunn Committed by Android (Google) Code Review
Browse files

Merge "Fix for call timer resetting when starting IMS conference call. 1/4" into lmp-mr1-dev

parents 84c5e8eb cd5d33c8
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -32,6 +32,12 @@ import java.util.concurrent.CopyOnWriteArraySet;
@SystemApi
public abstract class Conference implements IConferenceable {

    /**
     * Used to indicate that the conference connection time is not specified.  If not specified,
     * Telecom will set the connect time.
     */
    public static long CONNECT_TIME_NOT_SPECIFIED = 0;

    /** @hide */
    public abstract static class Listener {
        public void onStateChanged(Conference conference, int oldState, int newState) {}
@@ -59,6 +65,7 @@ public abstract class Conference implements IConferenceable {
    private DisconnectCause mDisconnectCause;
    private int mConnectionCapabilities;
    private String mDisconnectMessage;
    private long mConnectTimeMillis = CONNECT_TIME_NOT_SPECIFIED;

    private final Connection.Listener mConnectionDeathListener = new Connection.Listener() {
        @Override
@@ -421,6 +428,26 @@ public abstract class Conference implements IConferenceable {
        return mUnmodifiableChildConnections.get(0);
    }

    /**
     * Sets the connect time of the {@code Conference}.
     *
     * @param connectTimeMillis The connection time, in milliseconds.
     */
    public void setConnectTimeMillis(long connectTimeMillis) {
        mConnectTimeMillis = connectTimeMillis;
    }

    /**
     * Retrieves the connect time of the {@code Conference}, if specified.  A value of
     * {@link #CONNECT_TIME_NOT_SPECIFIED} indicates that Telecom should determine the start time
     * of the conference.
     *
     * @return The time the {@code Conference} has been connected.
     */
    public long getConnectTimeMillis() {
        return mConnectTimeMillis;
    }

    /**
     * Inform this Conference that the state of its audio output has been changed externally.
     *
+2 −1
Original line number Diff line number Diff line
@@ -883,7 +883,8 @@ public abstract class ConnectionService extends Service {
                    conference.getPhoneAccountHandle(),
                    conference.getState(),
                    conference.getConnectionCapabilities(),
                    connectionIds);
                    connectionIds,
                    conference.getConnectTimeMillis());
            mAdapter.addConferenceCall(id, parcelableConference);

            // Go through any child calls and set the parent.
+22 −1
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ public final class ParcelableConference implements Parcelable {
    private int mState;
    private int mConnectionCapabilities;
    private List<String> mConnectionIds;
    private long mConnectTimeMillis;

    public ParcelableConference(
            PhoneAccountHandle phoneAccount,
@@ -42,6 +43,17 @@ public final class ParcelableConference implements Parcelable {
        mState = state;
        mConnectionCapabilities = connectionCapabilities;
        mConnectionIds = connectionIds;
        mConnectTimeMillis = Conference.CONNECT_TIME_NOT_SPECIFIED;
    }

    public ParcelableConference(
            PhoneAccountHandle phoneAccount,
            int state,
            int connectionCapabilities,
            List<String> connectionIds,
            long connectTimeMillis) {
        this(phoneAccount, state, connectionCapabilities, connectionIds);
        mConnectTimeMillis = connectTimeMillis;
    }

    @Override
@@ -53,6 +65,8 @@ public final class ParcelableConference implements Parcelable {
                .append(Connection.stateToString(mState))
                .append(", capabilities: ")
                .append(Connection.capabilitiesToString(mConnectionCapabilities))
                .append(", connectTime: ")
                .append(mConnectTimeMillis)
                .append(", children: ")
                .append(mConnectionIds)
                .toString();
@@ -74,6 +88,10 @@ public final class ParcelableConference implements Parcelable {
        return mConnectionIds;
    }

    public long getConnectTimeMillis() {
        return mConnectTimeMillis;
    }

    public static final Parcelable.Creator<ParcelableConference> CREATOR =
            new Parcelable.Creator<ParcelableConference> () {
        @Override
@@ -84,8 +102,10 @@ public final class ParcelableConference implements Parcelable {
            int capabilities = source.readInt();
            List<String> connectionIds = new ArrayList<>(2);
            source.readList(connectionIds, classLoader);
            long connectTimeMillis = source.readLong();

            return new ParcelableConference(phoneAccount, state, capabilities, connectionIds);
            return new ParcelableConference(phoneAccount, state, capabilities, connectionIds,
                    connectTimeMillis);
        }

        @Override
@@ -107,5 +127,6 @@ public final class ParcelableConference implements Parcelable {
        destination.writeInt(mState);
        destination.writeInt(mConnectionCapabilities);
        destination.writeList(mConnectionIds);
        destination.writeLong(mConnectTimeMillis);
    }
}