Loading telecomm/java/android/telecom/ConferenceParticipant.aidl 0 → 100644 +22 −0 Original line number Diff line number Diff line /* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License */ package android.telecom; /** * {@hide} */ parcelable ConferenceParticipant; telecomm/java/android/telecom/ConferenceParticipant.java 0 → 100644 +158 −0 Original line number Diff line number Diff line /* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License */ package android.telecom; import android.net.Uri; import android.os.Parcel; import android.os.Parcelable; /** * Parcelable representation of a participant's state in a conference call. * @hide */ public class ConferenceParticipant implements Parcelable { /** * The conference participant's handle (e.g., phone number). */ private final Uri mHandle; /** * The display name for the participant. */ private final String mDisplayName; /** * The endpoint Uri which uniquely identifies this conference participant. E.g. for an IMS * conference call, this is the endpoint URI for the participant on the IMS conference server. */ private final Uri mEndpoint; /** * The state of the participant in the conference. * * @see android.telecom.Connection */ private final int mState; /** * Creates an instance of {@code ConferenceParticipant}. * * @param handle The conference participant's handle (e.g., phone number). * @param displayName The display name for the participant. * @param endpoint The enpoint Uri which uniquely identifies this conference participant. * @param state The state of the participant in the conference. */ public ConferenceParticipant(Uri handle, String displayName, Uri endpoint, int state) { mHandle = handle; mDisplayName = displayName; mEndpoint = endpoint; mState = state; } /** * Responsible for creating {@code ConferenceParticipant} objects for deserialized Parcels. */ public static final Parcelable.Creator<ConferenceParticipant> CREATOR = new Parcelable.Creator<ConferenceParticipant>() { @Override public ConferenceParticipant createFromParcel(Parcel source) { ClassLoader classLoader = ParcelableCall.class.getClassLoader(); Uri handle = source.readParcelable(classLoader); String displayName = source.readString(); Uri endpoint = source.readParcelable(classLoader); int state = source.readInt(); return new ConferenceParticipant(handle, displayName, endpoint, state); } @Override public ConferenceParticipant[] newArray(int size) { return new ConferenceParticipant[size]; } }; @Override public int describeContents() { return 0; } /** * Writes the {@code ConferenceParticipant} to a parcel. * * @param dest The Parcel in which the object should be written. * @param flags Additional flags about how the object should be written. */ @Override public void writeToParcel(Parcel dest, int flags) { dest.writeParcelable(mHandle, 0); dest.writeString(mDisplayName); dest.writeParcelable(mEndpoint, 0); dest.writeInt(mState); } /** * Builds a string representation of this instance. * * @return String representing the conference participant. */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("[ConferenceParticipant Handle: "); sb.append(mHandle); sb.append(" DisplayName: "); sb.append(mDisplayName); sb.append(" Endpoint: "); sb.append(mEndpoint); sb.append(" State: "); sb.append(mState); sb.append("]"); return sb.toString(); } /** * The conference participant's handle (e.g., phone number). */ public Uri getHandle() { return mHandle; } /** * The display name for the participant. */ public String getDisplayName() { return mDisplayName; } /** * The enpoint Uri which uniquely identifies this conference participant. E.g. for an IMS * conference call, this is the endpoint URI for the participant on the IMS conference server. */ public Uri getEndpoint() { return mEndpoint; } /** * The state of the participant in the conference. * * @see android.telecom.Connection */ public int getState() { return mState; } } telecomm/java/android/telecom/Connection.java +15 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,9 @@ public abstract class Connection { public void onConferenceableConnectionsChanged( Connection c, List<Connection> conferenceableConnections) {} public void onConferenceChanged(Connection c, Conference conference) {} /** @hide */ public void onConferenceParticipantChanged(Connection c, ConferenceParticipant participant) {} } /** @hide */ Loading Loading @@ -1117,4 +1120,16 @@ public abstract class Connection { } mConferenceableConnections.clear(); } /** * Notifies listeners of a change to a conference participant. * * @param conferenceParticipant The participant. * @hide */ protected final void updateConferenceParticipant(ConferenceParticipant conferenceParticipant) { for (Listener l : mListeners) { l.onConferenceParticipantChanged(this, conferenceParticipant); } } } telephony/java/com/android/ims/ImsConferenceState.java +28 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,8 @@ import java.util.Set; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; import android.telecom.Call; import android.telecom.Connection; /** * Provides the conference information (defined in RFC 4575) for IMS conference call. Loading Loading @@ -139,4 +141,30 @@ public class ImsConferenceState implements Parcelable { return new ImsConferenceState[size]; } }; /** * Translates an {@code ImsConferenceState} status type to a telecom connection state. * * @param status The status type. * @return The corresponding {@link android.telecom.Connection} state. */ public static int getConnectionStateForStatus(String status) { if (status.equals(STATUS_PENDING)) { return Connection.STATE_INITIALIZING; } else if (status.equals(STATUS_DIALING_IN)) { return Connection.STATE_RINGING; } else if (status.equals(STATUS_ALERTING) || status.equals(STATUS_DIALING_OUT)) { return Connection.STATE_DIALING; } else if (status.equals(STATUS_ON_HOLD)) { return Connection.STATE_HOLDING; } else if (status.equals(STATUS_CONNECTED) || status.equals(STATUS_MUTED_VIA_FOCUS) || status.equals(STATUS_DISCONNECTING)) { return Connection.STATE_ACTIVE; } else if (status.equals(STATUS_DISCONNECTED)) { return Connection.STATE_DISCONNECTED; } return Call.STATE_ACTIVE; } } Loading
telecomm/java/android/telecom/ConferenceParticipant.aidl 0 → 100644 +22 −0 Original line number Diff line number Diff line /* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License */ package android.telecom; /** * {@hide} */ parcelable ConferenceParticipant;
telecomm/java/android/telecom/ConferenceParticipant.java 0 → 100644 +158 −0 Original line number Diff line number Diff line /* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License */ package android.telecom; import android.net.Uri; import android.os.Parcel; import android.os.Parcelable; /** * Parcelable representation of a participant's state in a conference call. * @hide */ public class ConferenceParticipant implements Parcelable { /** * The conference participant's handle (e.g., phone number). */ private final Uri mHandle; /** * The display name for the participant. */ private final String mDisplayName; /** * The endpoint Uri which uniquely identifies this conference participant. E.g. for an IMS * conference call, this is the endpoint URI for the participant on the IMS conference server. */ private final Uri mEndpoint; /** * The state of the participant in the conference. * * @see android.telecom.Connection */ private final int mState; /** * Creates an instance of {@code ConferenceParticipant}. * * @param handle The conference participant's handle (e.g., phone number). * @param displayName The display name for the participant. * @param endpoint The enpoint Uri which uniquely identifies this conference participant. * @param state The state of the participant in the conference. */ public ConferenceParticipant(Uri handle, String displayName, Uri endpoint, int state) { mHandle = handle; mDisplayName = displayName; mEndpoint = endpoint; mState = state; } /** * Responsible for creating {@code ConferenceParticipant} objects for deserialized Parcels. */ public static final Parcelable.Creator<ConferenceParticipant> CREATOR = new Parcelable.Creator<ConferenceParticipant>() { @Override public ConferenceParticipant createFromParcel(Parcel source) { ClassLoader classLoader = ParcelableCall.class.getClassLoader(); Uri handle = source.readParcelable(classLoader); String displayName = source.readString(); Uri endpoint = source.readParcelable(classLoader); int state = source.readInt(); return new ConferenceParticipant(handle, displayName, endpoint, state); } @Override public ConferenceParticipant[] newArray(int size) { return new ConferenceParticipant[size]; } }; @Override public int describeContents() { return 0; } /** * Writes the {@code ConferenceParticipant} to a parcel. * * @param dest The Parcel in which the object should be written. * @param flags Additional flags about how the object should be written. */ @Override public void writeToParcel(Parcel dest, int flags) { dest.writeParcelable(mHandle, 0); dest.writeString(mDisplayName); dest.writeParcelable(mEndpoint, 0); dest.writeInt(mState); } /** * Builds a string representation of this instance. * * @return String representing the conference participant. */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("[ConferenceParticipant Handle: "); sb.append(mHandle); sb.append(" DisplayName: "); sb.append(mDisplayName); sb.append(" Endpoint: "); sb.append(mEndpoint); sb.append(" State: "); sb.append(mState); sb.append("]"); return sb.toString(); } /** * The conference participant's handle (e.g., phone number). */ public Uri getHandle() { return mHandle; } /** * The display name for the participant. */ public String getDisplayName() { return mDisplayName; } /** * The enpoint Uri which uniquely identifies this conference participant. E.g. for an IMS * conference call, this is the endpoint URI for the participant on the IMS conference server. */ public Uri getEndpoint() { return mEndpoint; } /** * The state of the participant in the conference. * * @see android.telecom.Connection */ public int getState() { return mState; } }
telecomm/java/android/telecom/Connection.java +15 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,9 @@ public abstract class Connection { public void onConferenceableConnectionsChanged( Connection c, List<Connection> conferenceableConnections) {} public void onConferenceChanged(Connection c, Conference conference) {} /** @hide */ public void onConferenceParticipantChanged(Connection c, ConferenceParticipant participant) {} } /** @hide */ Loading Loading @@ -1117,4 +1120,16 @@ public abstract class Connection { } mConferenceableConnections.clear(); } /** * Notifies listeners of a change to a conference participant. * * @param conferenceParticipant The participant. * @hide */ protected final void updateConferenceParticipant(ConferenceParticipant conferenceParticipant) { for (Listener l : mListeners) { l.onConferenceParticipantChanged(this, conferenceParticipant); } } }
telephony/java/com/android/ims/ImsConferenceState.java +28 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,8 @@ import java.util.Set; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; import android.telecom.Call; import android.telecom.Connection; /** * Provides the conference information (defined in RFC 4575) for IMS conference call. Loading Loading @@ -139,4 +141,30 @@ public class ImsConferenceState implements Parcelable { return new ImsConferenceState[size]; } }; /** * Translates an {@code ImsConferenceState} status type to a telecom connection state. * * @param status The status type. * @return The corresponding {@link android.telecom.Connection} state. */ public static int getConnectionStateForStatus(String status) { if (status.equals(STATUS_PENDING)) { return Connection.STATE_INITIALIZING; } else if (status.equals(STATUS_DIALING_IN)) { return Connection.STATE_RINGING; } else if (status.equals(STATUS_ALERTING) || status.equals(STATUS_DIALING_OUT)) { return Connection.STATE_DIALING; } else if (status.equals(STATUS_ON_HOLD)) { return Connection.STATE_HOLDING; } else if (status.equals(STATUS_CONNECTED) || status.equals(STATUS_MUTED_VIA_FOCUS) || status.equals(STATUS_DISCONNECTING)) { return Connection.STATE_ACTIVE; } else if (status.equals(STATUS_DISCONNECTED)) { return Connection.STATE_DISCONNECTED; } return Call.STATE_ACTIVE; } }