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

Commit 300b3cce authored by Grace Jia's avatar Grace Jia Committed by Automerger Merge Worker
Browse files

Merge "Add adhoc conference APIs to RemoteConnection and...

Merge "Add adhoc conference APIs to RemoteConnection and RemoteConnectionService." am: 329c6ff7 am: e40cfa60 am: 6a55cd16

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1388908

Change-Id: Ifc88640d6fb38e14a58ad802f520b0c0ee0b35b8
parents 86050129 6a55cd16
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -45919,7 +45919,9 @@ package android.telecom {
    method public final void addExistingConnection(android.telecom.PhoneAccountHandle, android.telecom.Connection);
    method public final void conferenceRemoteConnections(android.telecom.RemoteConnection, android.telecom.RemoteConnection);
    method public final void connectionServiceFocusReleased();
    method @Nullable public final android.telecom.RemoteConference createRemoteIncomingConference(@Nullable android.telecom.PhoneAccountHandle, @Nullable android.telecom.ConnectionRequest);
    method public final android.telecom.RemoteConnection createRemoteIncomingConnection(android.telecom.PhoneAccountHandle, android.telecom.ConnectionRequest);
    method @Nullable public final android.telecom.RemoteConference createRemoteOutgoingConference(@Nullable android.telecom.PhoneAccountHandle, @Nullable android.telecom.ConnectionRequest);
    method public final android.telecom.RemoteConnection createRemoteOutgoingConnection(android.telecom.PhoneAccountHandle, android.telecom.ConnectionRequest);
    method public final java.util.Collection<android.telecom.Conference> getAllConferences();
    method public final java.util.Collection<android.telecom.Connection> getAllConnections();
@@ -46150,6 +46152,7 @@ package android.telecom {
  public final class RemoteConnection {
    method public void abort();
    method public void addConferenceParticipants(@NonNull java.util.List<android.net.Uri>);
    method public void answer();
    method public void disconnect();
    method public android.net.Uri getAddress();
+3 −0
Original line number Diff line number Diff line
@@ -44087,7 +44087,9 @@ package android.telecom {
    method public final void addExistingConnection(android.telecom.PhoneAccountHandle, android.telecom.Connection);
    method public final void conferenceRemoteConnections(android.telecom.RemoteConnection, android.telecom.RemoteConnection);
    method public final void connectionServiceFocusReleased();
    method @Nullable public final android.telecom.RemoteConference createRemoteIncomingConference(@Nullable android.telecom.PhoneAccountHandle, @Nullable android.telecom.ConnectionRequest);
    method public final android.telecom.RemoteConnection createRemoteIncomingConnection(android.telecom.PhoneAccountHandle, android.telecom.ConnectionRequest);
    method @Nullable public final android.telecom.RemoteConference createRemoteOutgoingConference(@Nullable android.telecom.PhoneAccountHandle, @Nullable android.telecom.ConnectionRequest);
    method public final android.telecom.RemoteConnection createRemoteOutgoingConnection(android.telecom.PhoneAccountHandle, android.telecom.ConnectionRequest);
    method public final java.util.Collection<android.telecom.Conference> getAllConferences();
    method public final java.util.Collection<android.telecom.Connection> getAllConnections();
@@ -44318,6 +44320,7 @@ package android.telecom {
  public final class RemoteConnection {
    method public void abort();
    method public void addConferenceParticipants(@NonNull java.util.List<android.net.Uri>);
    method public void answer();
    method public void disconnect();
    method public android.net.Uri getAddress();
+36 −0
Original line number Diff line number Diff line
@@ -2487,6 +2487,42 @@ public abstract class ConnectionService extends Service {
                connectionManagerPhoneAccount, request, false);
    }

    /**
     * Ask some other {@code ConnectionService} to create a {@code RemoteConference} given an
     * incoming request. This is used by {@code ConnectionService}s that are registered with
     * {@link PhoneAccount#CAPABILITY_ADHOC_CONFERENCE_CALLING}.
     *
     * @param connectionManagerPhoneAccount See description at
     *          {@link #onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest)}.
     * @param request Details about the incoming conference call.
     * @return The {@code RemoteConference} object to satisfy this call, or {@code null} to not
     *         handle the call.
     */
    public final @Nullable RemoteConference createRemoteIncomingConference(
            @Nullable PhoneAccountHandle connectionManagerPhoneAccount,
            @Nullable ConnectionRequest request) {
        return mRemoteConnectionManager.createRemoteConference(connectionManagerPhoneAccount,
                request, true);
    }

    /**
     * Ask some other {@code ConnectionService} to create a {@code RemoteConference} given an
     * outgoing request. This is used by {@code ConnectionService}s that are registered with
     * {@link PhoneAccount#CAPABILITY_ADHOC_CONFERENCE_CALLING}.
     *
     * @param connectionManagerPhoneAccount See description at
     *          {@link #onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest)}.
     * @param request Details about the outgoing conference call.
     * @return The {@code RemoteConference} object to satisfy this call, or {@code null} to not
     *         handle the call.
     */
    public final @Nullable RemoteConference createRemoteOutgoingConference(
            @Nullable PhoneAccountHandle connectionManagerPhoneAccount,
            @Nullable ConnectionRequest request) {
        return mRemoteConnectionManager.createRemoteConference(connectionManagerPhoneAccount,
                request, false);
    }

    /**
     * Indicates to the relevant {@code RemoteConnectionService} that the specified
     * {@link RemoteConnection}s should be merged into a conference call.
+22 −2
Original line number Diff line number Diff line
@@ -16,14 +16,14 @@

package android.telecom;

import com.android.internal.telecom.IConnectionService;

import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.os.Bundle;
import android.os.Handler;
import android.os.RemoteException;

import com.android.internal.telecom.IConnectionService;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -154,6 +154,14 @@ public final class RemoteConference {
        mConnectionService = connectionService;
    }

    /** @hide */
    RemoteConference(DisconnectCause disconnectCause) {
        mId = "NULL";
        mConnectionService = null;
        mState = Connection.STATE_DISCONNECTED;
        mDisconnectCause = disconnectCause;
    }

    /** @hide */
    String getId() {
        return mId;
@@ -583,4 +591,16 @@ public final class RemoteConference {
            }
        }
    }

    /**
     * Create a {@link RemoteConference} represents a failure, and which will
     * be in {@link Connection#STATE_DISCONNECTED}.
     *
     * @param disconnectCause The disconnect cause.
     * @return a failed {@link RemoteConference}
     * @hide
     */
    public static RemoteConference failure(DisconnectCause disconnectCause) {
        return new RemoteConference(disconnectCause);
    }
}
+21 −4
Original line number Diff line number Diff line
@@ -16,10 +16,6 @@

package android.telecom;

import com.android.internal.telecom.IConnectionService;
import com.android.internal.telecom.IVideoCallback;
import com.android.internal.telecom.IVideoProvider;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
@@ -33,6 +29,10 @@ import android.os.RemoteException;
import android.telecom.Logging.Session;
import android.view.Surface;

import com.android.internal.telecom.IConnectionService;
import com.android.internal.telecom.IVideoCallback;
import com.android.internal.telecom.IVideoProvider;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -1113,6 +1113,23 @@ public final class RemoteConnection {
        }
    }

    /**
     * Instructs this {@link RemoteConnection} to initiate a conference with a list of
     * participants.
     * <p>
     *
     * @param participants with which conference call will be formed.
     */
    public void addConferenceParticipants(@NonNull List<Uri> participants) {
        try {
            if (mConnected) {
                mConnectionService.addConferenceParticipants(mConnectionId, participants,
                        null /*Session.Info*/);
            }
        } catch (RemoteException ignored) {
        }
    }

    /**
     * Set the audio state of this {@code RemoteConnection}.
     *
Loading