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

Commit 1a7061ba authored by Sailesh Nepal's avatar Sailesh Nepal
Browse files

Add Connection.setCallCapabilities

This will be used to enable things like hold and
conferencing.

Change-Id: I90238eeefbcbfaa044881d80833b62e4474821d6
parent 770a6caf
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -27626,13 +27626,13 @@ package android.telecomm {
    ctor protected Connection();
    method public final boolean getAudioModeIsVoip();
    method public final android.telecomm.CallAudioState getCallAudioState();
    method public final int getCallCapabilities();
    method public final java.util.List<android.telecomm.Connection> getChildConnections();
    method public final int getFeatures();
    method public final android.net.Uri getHandle();
    method public final android.telecomm.Connection getParentConnection();
    method public final int getState();
    method public final android.telecomm.StatusHints getStatusHints();
    method public final boolean isConferenceCapable();
    method public final boolean isConferenceConnection();
    method public final boolean isRequestingRingback();
    method protected void onAbort();
@@ -27651,13 +27651,13 @@ package android.telecomm {
    method protected void onUnhold();
    method public final void setActive();
    method public final void setAudioModeIsVoip(boolean);
    method public final void setCallCapabilities(int);
    method public final void setCallVideoProvider(android.telecomm.CallVideoProvider);
    method public final void setDestroyed();
    method public final void setDialing();
    method public final void setDisconnected(int, java.lang.String);
    method public final void setFeatures(int);
    method public final void setHandle(android.net.Uri);
    method public final void setIsConferenceCapable(boolean);
    method public final void setOnHold();
    method public final void setParentConnection(android.telecomm.Connection);
    method public final void setPostDialWait(java.lang.String);
@@ -27814,6 +27814,7 @@ package android.telecomm {
    method public void answer();
    method public void disconnect();
    method public boolean getAudioModeIsVoip();
    method public int getCallCapabilities();
    method public int getDisconnectCause();
    method public java.lang.String getDisconnectMessage();
    method public int getFeatures();
@@ -27830,6 +27831,7 @@ package android.telecomm {
  }
  public static abstract interface RemoteConnection.Listener {
    method public abstract void onCallCapabilitiesChanged(android.telecomm.RemoteConnection, int);
    method public abstract void onDestroyed(android.telecomm.RemoteConnection);
    method public abstract void onDisconnected(android.telecomm.RemoteConnection, int, java.lang.String);
    method public abstract void onFeaturesChanged(android.telecomm.RemoteConnection, int);
+13 −11
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ public abstract class Connection {
        void onPostDialWait(Connection c, String remaining);
        void onRequestingRingback(Connection c, boolean ringback);
        void onDestroyed(Connection c);
        void onConferenceCapableChanged(Connection c, boolean isConferenceCapable);
        void onCallCapabilitiesChanged(Connection c, int callCapabilities);
        void onParentConnectionChanged(Connection c, Connection parent);
        void onSetCallVideoProvider(Connection c, CallVideoProvider callVideoProvider);
        void onSetAudioModeIsVoip(Connection c, boolean isVoip);
@@ -76,7 +76,7 @@ public abstract class Connection {
        public void onRequestingRingback(Connection c, boolean ringback) {}

        @Override
        public void onConferenceCapableChanged(Connection c, boolean isConferenceCapable) {}
        public void onCallCapabilitiesChanged(Connection c, int callCapabilities) {}

        @Override
        public void onParentConnectionChanged(Connection c, Connection parent) {}
@@ -110,7 +110,7 @@ public abstract class Connection {
    private CallAudioState mCallAudioState;
    private Uri mHandle;
    private boolean mRequestingRingback = false;
    private boolean mIsConferenceCapable = false;
    private int mCallCapabilities;
    private Connection mParentConnection;
    private boolean mAudioModeIsVoip;
    private StatusHints mStatusHints;
@@ -279,10 +279,10 @@ public abstract class Connection {
    }

    /**
     * Returns whether this connection is capable of being conferenced.
     * Returns the connection's {@link CallCapabilities}
     */
    public final boolean isConferenceCapable() {
        return mIsConferenceCapable;
    public final int getCallCapabilities() {
        return mCallCapabilities;
    }

    /**
@@ -394,13 +394,15 @@ public abstract class Connection {
    }

    /**
     * TODO(santoscordon): Needs documentation.
     * Sets the connection's {@link CallCapabilities}.
     *
     * @param callCapabilities The new call capabilities.
     */
    public final void setIsConferenceCapable(boolean isConferenceCapable) {
        if (mIsConferenceCapable != isConferenceCapable) {
            mIsConferenceCapable = isConferenceCapable;
    public final void setCallCapabilities(int callCapabilities) {
        if (mCallCapabilities != callCapabilities) {
            mCallCapabilities = callCapabilities;
            for (Listener l : mListeners) {
                l.onConferenceCapableChanged(this, mIsConferenceCapable);
                l.onCallCapabilitiesChanged(this, mCallCapabilities);
            }
        }
    }
+2 −2
Original line number Diff line number Diff line
@@ -346,9 +346,9 @@ public abstract class ConnectionService extends Service {
        }

        @Override
        public void onConferenceCapableChanged(Connection c, boolean isConferenceCapable) {
        public void onCallCapabilitiesChanged(Connection c, int callCapabilities) {
            String id = mIdByConnection.get(c);
            mAdapter.setCanConference(id, isConferenceCapable);
            mAdapter.setCallCapabilities(id, callCapabilities);
        }

        /** ${inheritDoc} */
+2 −8
Original line number Diff line number Diff line
@@ -221,16 +221,10 @@ final class ConnectionServiceAdapter implements DeathRecipient {
        }
    }

    /**
     * Indicates that the specified call can conference with any of the specified list of calls.
     *
     * @param callId The unique ID of the call.
     * @param canConference Specified whether or not the call can be conferenced.
     */
    void setCanConference(String callId, boolean canConference) {
    void setCallCapabilities(String callId, int capabilities) {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.setCanConference(callId, canConference);
                adapter.setCallCapabilities(callId, capabilities);
            } catch (RemoteException ignored) {
            }
        }
+16 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ public final class RemoteConnection {
        void onStateChanged(RemoteConnection connection, int state);
        void onDisconnected(RemoteConnection connection, int cause, String message);
        void onRequestingRingback(RemoteConnection connection, boolean ringback);
        void onCallCapabilitiesChanged(RemoteConnection connection, int callCapabilities);
        void onPostDialWait(RemoteConnection connection, String remainingDigits);
        void onFeaturesChanged(RemoteConnection connection, int features);
        void onSetAudioModeIsVoip(RemoteConnection connection, boolean isVoip);
@@ -51,6 +52,7 @@ public final class RemoteConnection {
    private String mDisconnectMessage;
    private boolean mRequestingRingback;
    private boolean mConnected;
    private int mCallCapabilities;
    private int mFeatures;
    private boolean mAudioModeIsVoip;
    private StatusHints mStatusHints;
@@ -85,6 +87,10 @@ public final class RemoteConnection {
        return mDisconnectMessage;
    }

    public int getCallCapabilities() {
        return mCallCapabilities;
    }

    public int getFeatures() {
        return mFeatures;
    }
@@ -226,6 +232,16 @@ public final class RemoteConnection {
        }
    }

    /**
     * @hide
     */
    void setCallCapabilities(int callCapabilities) {
        mCallCapabilities = callCapabilities;
        for (Listener l : mListeners) {
            l.onCallCapabilitiesChanged(this, callCapabilities);
        }
    }

    /**
     * @hide
     */
Loading