ConferenceParticipant.java revision 3bffcf78b5e4bd8b60543126fc0bdb09808f28f5
13bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn/* 23bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * Copyright (C) 2014 The Android Open Source Project 33bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * 43bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * Licensed under the Apache License, Version 2.0 (the "License"); 53bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * you may not use this file except in compliance with the License. 63bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * You may obtain a copy of the License at 73bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * 83bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * http://www.apache.org/licenses/LICENSE-2.0 93bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * 103bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * Unless required by applicable law or agreed to in writing, software 113bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * distributed under the License is distributed on an "AS IS" BASIS, 123bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * See the License for the specific language governing permissions and 143bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * limitations under the License 153bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn */ 163bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn 173bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunnpackage android.telecom; 183bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn 193bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunnimport android.net.Uri; 203bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunnimport android.os.Parcel; 213bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunnimport android.os.Parcelable; 223bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn 233bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn/** 243bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * Parcelable representation of a participant's state in a conference call. 253bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * @hide 263bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn */ 273bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunnpublic class ConferenceParticipant implements Parcelable { 283bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn 293bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn /** 303bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * The conference participant's handle (e.g., phone number). 313bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn */ 323bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn private final Uri mHandle; 333bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn 343bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn /** 353bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * The display name for the participant. 363bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn */ 373bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn private final String mDisplayName; 383bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn 393bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn /** 403bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * The endpoint Uri which uniquely identifies this conference participant. E.g. for an IMS 413bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * conference call, this is the endpoint URI for the participant on the IMS conference server. 423bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn */ 433bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn private final Uri mEndpoint; 443bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn 453bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn /** 463bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * The state of the participant in the conference. 473bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * 483bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * @see android.telecom.Connection 493bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn */ 503bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn private final int mState; 513bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn 523bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn /** 533bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * Creates an instance of {@code ConferenceParticipant}. 543bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * 553bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * @param handle The conference participant's handle (e.g., phone number). 563bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * @param displayName The display name for the participant. 573bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * @param endpoint The enpoint Uri which uniquely identifies this conference participant. 583bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * @param state The state of the participant in the conference. 593bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn */ 603bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn public ConferenceParticipant(Uri handle, String displayName, Uri endpoint, int state) { 613bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn mHandle = handle; 623bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn mDisplayName = displayName; 633bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn mEndpoint = endpoint; 643bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn mState = state; 653bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn } 663bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn 673bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn /** 683bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * Responsible for creating {@code ConferenceParticipant} objects for deserialized Parcels. 693bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn */ 703bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn public static final Parcelable.Creator<ConferenceParticipant> CREATOR = 713bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn new Parcelable.Creator<ConferenceParticipant>() { 723bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn 733bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn @Override 743bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn public ConferenceParticipant createFromParcel(Parcel source) { 753bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn ClassLoader classLoader = ParcelableCall.class.getClassLoader(); 763bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn Uri handle = source.readParcelable(classLoader); 773bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn String displayName = source.readString(); 783bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn Uri endpoint = source.readParcelable(classLoader); 793bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn int state = source.readInt(); 803bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn return new ConferenceParticipant(handle, displayName, endpoint, state); 813bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn } 823bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn 833bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn @Override 843bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn public ConferenceParticipant[] newArray(int size) { 853bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn return new ConferenceParticipant[size]; 863bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn } 873bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn }; 883bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn 893bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn @Override 903bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn public int describeContents() { 913bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn return 0; 923bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn } 933bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn 943bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn /** 953bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * Writes the {@code ConferenceParticipant} to a parcel. 963bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * 973bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * @param dest The Parcel in which the object should be written. 983bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * @param flags Additional flags about how the object should be written. 993bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn */ 1003bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn @Override 1013bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn public void writeToParcel(Parcel dest, int flags) { 1023bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn dest.writeParcelable(mHandle, 0); 1033bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn dest.writeString(mDisplayName); 1043bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn dest.writeParcelable(mEndpoint, 0); 1053bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn dest.writeInt(mState); 1063bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn } 1073bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn 1083bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn /** 1093bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * Builds a string representation of this instance. 1103bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * 1113bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * @return String representing the conference participant. 1123bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn */ 1133bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn @Override 1143bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn public String toString() { 1153bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn StringBuilder sb = new StringBuilder(); 1163bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn sb.append("[ConferenceParticipant Handle: "); 1173bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn sb.append(mHandle); 1183bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn sb.append(" DisplayName: "); 1193bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn sb.append(mDisplayName); 1203bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn sb.append(" Endpoint: "); 1213bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn sb.append(mEndpoint); 1223bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn sb.append(" State: "); 1233bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn sb.append(mState); 1243bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn sb.append("]"); 1253bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn return sb.toString(); 1263bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn } 1273bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn 1283bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn /** 1293bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * The conference participant's handle (e.g., phone number). 1303bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn */ 1313bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn public Uri getHandle() { 1323bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn return mHandle; 1333bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn } 1343bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn 1353bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn /** 1363bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * The display name for the participant. 1373bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn */ 1383bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn public String getDisplayName() { 1393bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn return mDisplayName; 1403bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn } 1413bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn 1423bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn /** 1433bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * The enpoint Uri which uniquely identifies this conference participant. E.g. for an IMS 1443bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * conference call, this is the endpoint URI for the participant on the IMS conference server. 1453bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn */ 1463bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn public Uri getEndpoint() { 1473bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn return mEndpoint; 1483bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn } 1493bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn 1503bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn /** 1513bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * The state of the participant in the conference. 1523bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * 1533bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn * @see android.telecom.Connection 1543bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn */ 1553bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn public int getState() { 1563bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn return mState; 1573bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn } 1583bffcf78b5e4bd8b60543126fc0bdb09808f28f5Tyler Gunn} 159