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

Commit 24ae2962 authored by Sailesh Nepal's avatar Sailesh Nepal Committed by Android (Google) Code Review
Browse files

Merge "Add Connection.setAudioModeIsVoip"

parents b06448ab 33aaae4a
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -27611,6 +27611,7 @@ package android.telecomm {
  public abstract class Connection {
    ctor protected Connection();
    method public final boolean getAudioModeIsVoip();
    method public final android.telecomm.CallAudioState getCallAudioState();
    method public final java.util.List<android.telecomm.Connection> getChildConnections();
    method public final int getFeatures();
@@ -27635,6 +27636,7 @@ package android.telecomm {
    method protected void onStopDtmfTone();
    method protected void onUnhold();
    method public final void setActive();
    method public final void setAudioModeIsVoip(boolean);
    method public final void setCallVideoProvider(android.telecomm.CallVideoProvider);
    method public final void setDestroyed();
    method public final void setDialing();
@@ -27795,6 +27797,7 @@ package android.telecomm {
    method public void addListener(android.telecomm.RemoteConnection.Listener);
    method public void answer();
    method public void disconnect();
    method public boolean getAudioModeIsVoip();
    method public int getDisconnectCause();
    method public java.lang.String getDisconnectMessage();
    method public int getFeatures();
@@ -27815,6 +27818,7 @@ package android.telecomm {
    method public abstract void onFeaturesChanged(android.telecomm.RemoteConnection, int);
    method public abstract void onPostDialWait(android.telecomm.RemoteConnection, java.lang.String);
    method public abstract void onRequestingRingback(android.telecomm.RemoteConnection, boolean);
    method public abstract void onSetAudioModeIsVoip(android.telecomm.RemoteConnection, boolean);
    method public abstract void onStateChanged(android.telecomm.RemoteConnection, int);
  }
+24 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ public abstract class Connection {
        void onConferenceCapableChanged(Connection c, boolean isConferenceCapable);
        void onParentConnectionChanged(Connection c, Connection parent);
        void onSetCallVideoProvider(Connection c, CallVideoProvider callVideoProvider);
        void onSetAudioModeIsVoip(Connection c, boolean isVoip);
    }

    /** @hide */
@@ -81,6 +82,9 @@ public abstract class Connection {

        @Override
        public void onSetCallVideoProvider(Connection c, CallVideoProvider callVideoProvider) {}

        @Override
        public void onSetAudioModeIsVoip(Connection c, boolean isVoip) {}
    }

    public final class State {
@@ -104,6 +108,7 @@ public abstract class Connection {
    private boolean mRequestingRingback = false;
    private boolean mIsConferenceCapable = false;
    private Connection mParentConnection;
    private boolean mAudioModeIsVoip;

    /**
     * Create a new Connection.
@@ -164,6 +169,13 @@ public abstract class Connection {
        return !mChildConnections.isEmpty();
    }

    /**
     * @return True if the connection's audio mode is VOIP.
     */
    public final boolean getAudioModeIsVoip() {
        return mAudioModeIsVoip;
    }

    /**
     * Assign a listener to be notified of state changes.
     *
@@ -407,6 +419,18 @@ public abstract class Connection {
        }
    }

    /**
     * Requests that the framework use VOIP audio mode for this connection.
     *
     * @param isVoip True if the audio mode is VOIP.
     */
    public final void setAudioModeIsVoip(boolean isVoip) {
        mAudioModeIsVoip = isVoip;
        for (Listener l : mListeners) {
            l.onSetAudioModeIsVoip(this, isVoip);
        }
    }

    /**
     * Notifies this Connection and listeners that the {@link #getCallAudioState()} property
     * has a new value.
+6 −0
Original line number Diff line number Diff line
@@ -364,6 +364,12 @@ public abstract class ConnectionService extends Service {
            String id = mIdByConnection.get(c);
            mAdapter.setCallVideoProvider(id, callVideoProvider);
        }

        @Override
        public void onSetAudioModeIsVoip(Connection c, boolean isVoip) {
            String id = mIdByConnection.get(c);
            mAdapter.setAudioModeIsVoip(id, isVoip);
        }
    };

    /** {@inheritDoc} */
+15 −0
Original line number Diff line number Diff line
@@ -320,6 +320,21 @@ final class ConnectionServiceAdapter implements DeathRecipient {
        }
    }

    /**
     * Requests that the framework use VOIP audio mode for this connection.
     *
     * @param callId The unique ID of the call to set with the given call video provider.
     * @param isVoip True if the audio mode is VOIP.
     */
    void setAudioModeIsVoip(String callId, boolean isVoip) {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.setAudioModeIsVoip(callId, isVoip);
            } catch (RemoteException e) {
            }
        }
    }

    /**
    * Set the features associated with the given call.
    * Features are defined in {@link android.telecomm.CallFeatures} and are passed in as a
+14 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ public final class RemoteConnection {
        void onRequestingRingback(RemoteConnection connection, boolean ringback);
        void onPostDialWait(RemoteConnection connection, String remainingDigits);
        void onFeaturesChanged(RemoteConnection connection, int features);
        void onSetAudioModeIsVoip(RemoteConnection connection, boolean isVoip);
        void onDestroyed(RemoteConnection connection);
    }

@@ -50,6 +51,7 @@ public final class RemoteConnection {
    private boolean mRequestingRingback;
    private boolean mConnected;
    private int mFeatures;
    private boolean mAudioModeIsVoip;

    /**
     * @hide
@@ -85,6 +87,10 @@ public final class RemoteConnection {
        return mFeatures;
    }

    public boolean getAudioModeIsVoip() {
        return mAudioModeIsVoip;
    }

    public void abort() {
        try {
            if (mConnected) {
@@ -252,4 +258,12 @@ public final class RemoteConnection {
            l.onFeaturesChanged(this, features);
        }
    }

    /** @hide */
    void setAudioModeIsVoip(boolean isVoip) {
        mAudioModeIsVoip = isVoip;
        for (Listener l : mListeners) {
            l.onSetAudioModeIsVoip(this, isVoip);
        }
    }
}
Loading