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

Commit a39fefc2 authored by Tyler Gunn's avatar Tyler Gunn Committed by android-build-merger
Browse files

Merge "Add ability to add existing connection AND set parent at the same...

Merge "Add ability to add existing connection AND set parent at the same time." into oc-dev am: 95f4f14e
am: 0aea0d2c

Change-Id: I76805ba85bfac39cdaa3ddd2b8340423e4c7ffbe
parents 1157b577 0aea0d2c
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -525,6 +525,26 @@ public abstract class Connection extends Conferenceable {
     */
    public static final String EVENT_CALL_MERGE_FAILED = "android.telecom.event.CALL_MERGE_FAILED";

    /**
     * Connection event used to inform {@link InCallService}s when the process of merging a
     * Connection into a conference has begun.
     * <p>
     * Sent via {@link #sendConnectionEvent(String, Bundle)}.  The {@link Bundle} parameter is
     * expected to be null when this connection event is used.
     * @hide
     */
    public static final String EVENT_MERGE_START = "android.telecom.event.MERGE_START";

    /**
     * Connection event used to inform {@link InCallService}s when the process of merging a
     * Connection into a conference has completed.
     * <p>
     * Sent via {@link #sendConnectionEvent(String, Bundle)}.  The {@link Bundle} parameter is
     * expected to be null when this connection event is used.
     * @hide
     */
    public static final String EVENT_MERGE_COMPLETE = "android.telecom.event.MERGE_COMPLETE";

    /**
     * Connection event used to inform {@link InCallService}s when a call has been put on hold by
     * the remote party.
+20 −1
Original line number Diff line number Diff line
@@ -1842,10 +1842,28 @@ public abstract class ConnectionService extends Service {
     */
    public final void addExistingConnection(PhoneAccountHandle phoneAccountHandle,
            Connection connection) {
        addExistingConnection(phoneAccountHandle, connection, null /* conference */);
    }

    /**
     * Adds a connection created by the {@link ConnectionService} and informs telecom of the new
     * connection.
     *
     * @param phoneAccountHandle The phone account handle for the connection.
     * @param connection The connection to add.
     * @param conference The parent conference of the new connection.
     * @hide
     */
    public final void addExistingConnection(PhoneAccountHandle phoneAccountHandle,
            Connection connection, Conference conference) {

        String id = addExistingConnectionInternal(phoneAccountHandle, connection);
        if (id != null) {
            List<String> emptyList = new ArrayList<>(0);
            String conferenceId = null;
            if (conference != null) {
                conferenceId = mIdByConference.get(conference);
            }

            ParcelableConnection parcelableConnection = new ParcelableConnection(
                    phoneAccountHandle,
@@ -1866,7 +1884,8 @@ public abstract class ConnectionService extends Service {
                    connection.getStatusHints(),
                    connection.getDisconnectCause(),
                    emptyList,
                    connection.getExtras());
                    connection.getExtras(),
                    conferenceId);
            mAdapter.addExistingConnection(id, parcelableConnection);
        }
    }
+40 −1
Original line number Diff line number Diff line
@@ -51,6 +51,35 @@ public final class ParcelableConnection implements Parcelable {
    private final DisconnectCause mDisconnectCause;
    private final List<String> mConferenceableConnectionIds;
    private final Bundle mExtras;
    private String mParentCallId;

    /** @hide */
    public ParcelableConnection(
            PhoneAccountHandle phoneAccount,
            int state,
            int capabilities,
            int properties,
            int supportedAudioRoutes,
            Uri address,
            int addressPresentation,
            String callerDisplayName,
            int callerDisplayNamePresentation,
            IVideoProvider videoProvider,
            int videoState,
            boolean ringbackRequested,
            boolean isVoipAudioMode,
            long connectTimeMillis,
            StatusHints statusHints,
            DisconnectCause disconnectCause,
            List<String> conferenceableConnectionIds,
            Bundle extras,
            String parentCallId) {
        this(phoneAccount, state, capabilities, properties, supportedAudioRoutes, address,
                addressPresentation, callerDisplayName, callerDisplayNamePresentation,
                videoProvider, videoState, ringbackRequested, isVoipAudioMode, connectTimeMillis,
                statusHints, disconnectCause, conferenceableConnectionIds, extras);
        mParentCallId = parentCallId;
    }

    /** @hide */
    public ParcelableConnection(
@@ -90,6 +119,7 @@ public final class ParcelableConnection implements Parcelable {
        mDisconnectCause = disconnectCause;
        mConferenceableConnectionIds = conferenceableConnectionIds;
        mExtras = extras;
        mParentCallId = null;
    }

    public PhoneAccountHandle getPhoneAccount() {
@@ -176,6 +206,10 @@ public final class ParcelableConnection implements Parcelable {
        return mExtras;
    }

    public final String getParentCallId() {
        return mParentCallId;
    }

    @Override
    public String toString() {
        return new StringBuilder()
@@ -189,6 +223,8 @@ public final class ParcelableConnection implements Parcelable {
                .append(Connection.propertiesToString(mConnectionProperties))
                .append(", extras:")
                .append(mExtras)
                .append(", parent:")
                .append(mParentCallId)
                .toString();
    }

@@ -218,6 +254,7 @@ public final class ParcelableConnection implements Parcelable {
            Bundle extras = Bundle.setDefusable(source.readBundle(classLoader), true);
            int properties = source.readInt();
            int supportedAudioRoutes = source.readInt();
            String parentCallId = source.readString();

            return new ParcelableConnection(
                    phoneAccount,
@@ -237,7 +274,8 @@ public final class ParcelableConnection implements Parcelable {
                    statusHints,
                    disconnectCause,
                    conferenceableConnectionIds,
                    extras);
                    extras,
                    parentCallId);
        }

        @Override
@@ -274,5 +312,6 @@ public final class ParcelableConnection implements Parcelable {
        destination.writeBundle(mExtras);
        destination.writeInt(mConnectionProperties);
        destination.writeInt(mSupportedAudioRoutes);
        destination.writeString(mParentCallId);
    }
}