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

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

Merge "Clean up Connection API"

parents c0f09fba 400cc485
Loading
Loading
Loading
Loading
+17 −18
Original line number Diff line number Diff line
@@ -27662,14 +27662,14 @@ package android.telecomm {
  public abstract class Connection {
    ctor protected Connection();
    method public final void conference();
    method public final android.telecomm.CallAudioState getCallAudioState();
    method public java.util.List<android.telecomm.Connection> getChildConnections();
    method public final java.util.List<android.telecomm.Connection> getChildConnections();
    method public final android.net.Uri getHandle();
    method public android.telecomm.Connection getParentConnection();
    method public boolean isConferenceCapable();
    method public boolean isConferenceConnection();
    method public boolean isRequestingRingback();
    method public final android.telecomm.Connection getParentConnection();
    method public final int getState();
    method public final boolean isConferenceCapable();
    method public final boolean isConferenceConnection();
    method public final boolean isRequestingRingback();
    method protected void onAbort();
    method protected void onAnswer();
    method protected void onChildrenChanged(java.util.List<android.telecomm.Connection>);
@@ -27681,21 +27681,20 @@ package android.telecomm {
    method protected void onReject();
    method protected void onSeparate();
    method protected void onSetAudioState(android.telecomm.CallAudioState);
    method protected void onSetSignal(android.os.Bundle);
    method protected void onSetState(int);
    method protected void onStopDtmfTone();
    method protected void onUnhold();
    method protected void setActive();
    method public void setAudioState(android.telecomm.CallAudioState);
    method protected void setDestroyed();
    method protected void setDialing();
    method protected void setDisconnected(int, java.lang.String);
    method protected void setHandle(android.net.Uri);
    method protected void setIsConferenceCapable(boolean);
    method protected void setOnHold();
    method public void setParentConnection(android.telecomm.Connection);
    method protected void setRequestingRingback(boolean);
    method protected void setRinging();
    method public final void setActive();
    method public final void setDestroyed();
    method public final void setDialing();
    method public final void setDisconnected(int, java.lang.String);
    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 setRequestingRingback(boolean);
    method public final void setRinging();
    method public final void setSignal(android.os.Bundle);
    method public static java.lang.String stateToString(int);
  }
+41 −43
Original line number Diff line number Diff line
@@ -123,8 +123,6 @@ public abstract class Connection {

    /**
     * @return The state of this Connection.
     *
     * @hide
     */
    public final int getState() {
        return mState;
@@ -275,6 +273,8 @@ public abstract class Connection {

    /**
     * TODO(santoscordon): Needs updated documentation.
     *
     * @hide
     */
    public final void conference() {
        Log.d(this, "conference");
@@ -285,9 +285,14 @@ public abstract class Connection {
     * Inform this Connection that the state of its audio output has been changed externally.
     *
     * @param state The new audio state.
     * @hide
     */
    public void setAudioState(CallAudioState state) {
    public final void setAudioState(CallAudioState state) {
        Log.d(this, "setAudioState %s", state);
        mCallAudioState = state;
        for (Listener l : mListeners) {
            l.onAudioStateChanged(this, state);
        }
        onSetAudioState(state);
    }

@@ -319,18 +324,21 @@ public abstract class Connection {
     * Returns whether this connection is requesting that the system play a ringback tone
     * on its behalf.
     */
    public boolean isRequestingRingback() {
    public final boolean isRequestingRingback() {
        return mRequestingRingback;
    }

    /**
     * Returns whether this connection is a conference connection (has child connections).
     */
    public boolean isConferenceConnection() {
    public final boolean isConferenceConnection() {
        return !mChildConnections.isEmpty();
    }

    public void setParentConnection(Connection parentConnection) {
    /**
     * TODO(santoscordon): Needs documentation.
     */
    public final void setParentConnection(Connection parentConnection) {
        Log.d(this, "parenting %s to %s", this, parentConnection);
        if (mParentConnection != parentConnection) {
            if (mParentConnection != null) {
@@ -347,18 +355,18 @@ public abstract class Connection {
        }
    }

    public Connection getParentConnection() {
    public final Connection getParentConnection() {
        return mParentConnection;
    }

    public List<Connection> getChildConnections() {
    public final List<Connection> getChildConnections() {
        return mChildConnections;
    }

    /**
     * Returns whether this connection is capable of being conferenced.
     */
    public boolean isConferenceCapable() {
    public final boolean isConferenceCapable() {
        return mIsConferenceCapable;
    }

@@ -367,7 +375,7 @@ public abstract class Connection {
     *
     * @param handle The new handle.
     */
    protected void setHandle(Uri handle) {
    public final void setHandle(Uri handle) {
        Log.d(this, "setHandle %s", handle);
        // TODO: Enforce super called
        mHandle = handle;
@@ -380,7 +388,7 @@ public abstract class Connection {
     * Sets state to active (e.g., an ongoing call where two or more parties can actively
     * communicate).
     */
    protected void setActive() {
    public final void setActive() {
        setRequestingRingback(false);
        setState(State.ACTIVE);
    }
@@ -388,21 +396,21 @@ public abstract class Connection {
    /**
     * Sets state to ringing (e.g., an inbound ringing call).
     */
    protected void setRinging() {
    public final void setRinging() {
        setState(State.RINGING);
    }

    /**
     * Sets state to dialing (e.g., dialing an outbound call).
     */
    protected void setDialing() {
    public final void setDialing() {
        setState(State.DIALING);
    }

    /**
     * Sets state to be on hold.
     */
    protected void setOnHold() {
    public final void setOnHold() {
        setState(State.HOLDING);
    }

@@ -416,7 +424,7 @@ public abstract class Connection {
     *         {@link android.telephony.DisconnectCause}.
     * @param message Optional call-service-provided message about the disconnect.
     */
    protected void setDisconnected(int cause, String message) {
    public final void setDisconnected(int cause, String message) {
        setState(State.DISCONNECTED);
        Log.d(this, "Disconnected with cause %d message %s", cause, message);
        for (Listener l : mListeners) {
@@ -430,7 +438,7 @@ public abstract class Connection {
     *
     * @param ringback Whether the ringback tone is to be played.
     */
    protected void setRequestingRingback(boolean ringback) {
    public final void setRequestingRingback(boolean ringback) {
        if (mRequestingRingback != ringback) {
            mRequestingRingback = ringback;
            for (Listener l : mListeners) {
@@ -442,7 +450,7 @@ public abstract class Connection {
    /**
     * TODO(santoscordon): Needs documentation.
     */
    protected void setIsConferenceCapable(boolean isConferenceCapable) {
    public final void setIsConferenceCapable(boolean isConferenceCapable) {
        if (mIsConferenceCapable != isConferenceCapable) {
            mIsConferenceCapable = isConferenceCapable;
            for (Listener l : mListeners) {
@@ -454,7 +462,7 @@ public abstract class Connection {
    /**
     * TODO(santoscordon): Needs documentation.
     */
    protected void setDestroyed() {
    public final void setDestroyed() {
        // It is possible that onDestroy() will trigger the listener to remove itself which will
        // result in a concurrent modification exception. To counteract this we make a copy of the
        // listeners and iterate on that.
@@ -465,47 +473,33 @@ public abstract class Connection {
        }
    }

    /**
     * Notifies this Connection and listeners that the {@link #getCallAudioState()} property
     * has a new value.
     *
     * @param state The new call audio state.
     */
    protected void onSetAudioState(CallAudioState state) {
        // TODO: Enforce super called
        mCallAudioState = state;
        for (Listener l : mListeners) {
            l.onAudioStateChanged(this, state);
        }
    }

    /**
     * Notifies this Connection and listeners of a change in the current signal levels
     * for the underlying data transport.
     *
     * @param details A {@link android.os.Bundle} containing details of the current level.
     */
    protected void onSetSignal(Bundle details) {
        // TODO: Enforce super called
    public final void setSignal(Bundle details) {
        for (Listener l : mListeners) {
            l.onSignalChanged(this, details);
        }
    }

    /**
     * Notifies this Connection and listeners that the {@link #getCallAudioState()} property
     * has a new value.
     *
     * @param state The new call audio state.
     */
    protected void onSetAudioState(CallAudioState state) {}

    /**
     * Notifies this Connection of an internal state change. This method is called before the
     * state is actually changed. Overriding implementations must call
     * {@code super.onSetState(state)}.
     * state is actually changed.
     *
     * @param state The new state, a {@link Connection.State} member.
     */
    protected void onSetState(int state) {
        // TODO: Enforce super called
        this.mState = state;
        for (Listener l : mListeners) {
            l.onStateChanged(this, state);
        }
    }
    protected void onSetState(int state) {}

    /**
     * Notifies this Connection of a request to play a DTMF tone.
@@ -585,6 +579,10 @@ public abstract class Connection {

    private void setState(int state) {
        Log.d(this, "setState: %s", stateToString(state));
        this.mState = state;
        for (Listener l : mListeners) {
            l.onStateChanged(this, state);
        }
        onSetState(state);
    }
}