1 /* 2 * Copyright 2014, The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.telecom; 18 19 import android.os.Parcel; 20 import android.os.Parcelable; 21 22 import java.util.ArrayList; 23 import java.util.List; 24 25 /** 26 * A parcelable representation of a conference connection. 27 * @hide 28 */ 29 public final class ParcelableConference implements Parcelable { 30 31 private PhoneAccountHandle mPhoneAccount; 32 private int mState; 33 private int mConnectionCapabilities; 34 private List<String> mConnectionIds; 35 private long mConnectTimeMillis; 36 ParcelableConference( PhoneAccountHandle phoneAccount, int state, int connectionCapabilities, List<String> connectionIds)37 public ParcelableConference( 38 PhoneAccountHandle phoneAccount, 39 int state, 40 int connectionCapabilities, 41 List<String> connectionIds) { 42 mPhoneAccount = phoneAccount; 43 mState = state; 44 mConnectionCapabilities = connectionCapabilities; 45 mConnectionIds = connectionIds; 46 mConnectTimeMillis = Conference.CONNECT_TIME_NOT_SPECIFIED; 47 } 48 ParcelableConference( PhoneAccountHandle phoneAccount, int state, int connectionCapabilities, List<String> connectionIds, long connectTimeMillis)49 public ParcelableConference( 50 PhoneAccountHandle phoneAccount, 51 int state, 52 int connectionCapabilities, 53 List<String> connectionIds, 54 long connectTimeMillis) { 55 this(phoneAccount, state, connectionCapabilities, connectionIds); 56 mConnectTimeMillis = connectTimeMillis; 57 } 58 59 @Override toString()60 public String toString() { 61 return (new StringBuffer()) 62 .append("account: ") 63 .append(mPhoneAccount) 64 .append(", state: ") 65 .append(Connection.stateToString(mState)) 66 .append(", capabilities: ") 67 .append(Connection.capabilitiesToString(mConnectionCapabilities)) 68 .append(", connectTime: ") 69 .append(mConnectTimeMillis) 70 .append(", children: ") 71 .append(mConnectionIds) 72 .toString(); 73 } 74 getPhoneAccount()75 public PhoneAccountHandle getPhoneAccount() { 76 return mPhoneAccount; 77 } 78 getState()79 public int getState() { 80 return mState; 81 } 82 getConnectionCapabilities()83 public int getConnectionCapabilities() { 84 return mConnectionCapabilities; 85 } 86 getConnectionIds()87 public List<String> getConnectionIds() { 88 return mConnectionIds; 89 } 90 getConnectTimeMillis()91 public long getConnectTimeMillis() { 92 return mConnectTimeMillis; 93 } 94 95 public static final Parcelable.Creator<ParcelableConference> CREATOR = 96 new Parcelable.Creator<ParcelableConference> () { 97 @Override 98 public ParcelableConference createFromParcel(Parcel source) { 99 ClassLoader classLoader = ParcelableConference.class.getClassLoader(); 100 PhoneAccountHandle phoneAccount = source.readParcelable(classLoader); 101 int state = source.readInt(); 102 int capabilities = source.readInt(); 103 List<String> connectionIds = new ArrayList<>(2); 104 source.readList(connectionIds, classLoader); 105 long connectTimeMillis = source.readLong(); 106 107 return new ParcelableConference(phoneAccount, state, capabilities, connectionIds, 108 connectTimeMillis); 109 } 110 111 @Override 112 public ParcelableConference[] newArray(int size) { 113 return new ParcelableConference[size]; 114 } 115 }; 116 117 /** {@inheritDoc} */ 118 @Override describeContents()119 public int describeContents() { 120 return 0; 121 } 122 123 /** Writes ParcelableConference object into a Parcel. */ 124 @Override writeToParcel(Parcel destination, int flags)125 public void writeToParcel(Parcel destination, int flags) { 126 destination.writeParcelable(mPhoneAccount, 0); 127 destination.writeInt(mState); 128 destination.writeInt(mConnectionCapabilities); 129 destination.writeList(mConnectionIds); 130 destination.writeLong(mConnectTimeMillis); 131 } 132 } 133