ParcelableConference.java revision ef9f6f957d897ea0ed82114185b8fa3fefd4917b
1823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon/* 2823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon * Copyright 2014, The Android Open Source Project 3823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon * 4823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon * Licensed under the Apache License, Version 2.0 (the "License"); 5823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon * you may not use this file except in compliance with the License. 6823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon * You may obtain a copy of the License at 7823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon * 8823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon * http://www.apache.org/licenses/LICENSE-2.0 9823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon * 10823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon * Unless required by applicable law or agreed to in writing, software 11823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon * distributed under the License is distributed on an "AS IS" BASIS, 12823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon * See the License for the specific language governing permissions and 14823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon * limitations under the License. 15823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon */ 16823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon 17ef9f6f957d897ea0ed82114185b8fa3fefd4917bTyler Gunnpackage android.telecom; 18823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon 19823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordonimport android.os.Parcel; 20823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordonimport android.os.Parcelable; 21823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon 22823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordonimport java.util.ArrayList; 23823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordonimport java.util.List; 24823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon 25823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon/** 26823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon * A parcelable representation of a conference connection. 27823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon * @hide 28823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon */ 29823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordonpublic final class ParcelableConference implements Parcelable { 30823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon 31823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon private PhoneAccountHandle mPhoneAccount; 32823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon private int mState; 33823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon private int mCapabilities; 34823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon private List<String> mConnectionIds; 35823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon 36823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon public ParcelableConference( 37823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon PhoneAccountHandle phoneAccount, 38823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon int state, 39823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon int capabilities, 40823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon List<String> connectionIds) { 41823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon mPhoneAccount = phoneAccount; 42823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon mState = state; 43823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon mCapabilities = capabilities; 44823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon mConnectionIds = connectionIds; 45823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon } 46823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon 47823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon @Override 48823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon public String toString() { 49823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon return (new StringBuffer()) 50823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon .append("account: ") 51823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon .append(mPhoneAccount) 52823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon .append(", state: ") 53823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon .append(Connection.stateToString(mState)) 54823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon .append(", capabilities: ") 55823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon .append(PhoneCapabilities.toString(mCapabilities)) 56823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon .append(", children: ") 57823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon .append(mConnectionIds) 58823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon .toString(); 59823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon } 60823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon 61823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon public PhoneAccountHandle getPhoneAccount() { 62823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon return mPhoneAccount; 63823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon } 64823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon 65823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon public int getState() { 66823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon return mState; 67823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon } 68823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon 69823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon public int getCapabilities() { 70823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon return mCapabilities; 71823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon } 72823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon 73823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon public List<String> getConnectionIds() { 74823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon return mConnectionIds; 75823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon } 76823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon 77823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon public static final Parcelable.Creator<ParcelableConference> CREATOR = 78823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon new Parcelable.Creator<ParcelableConference> () { 79823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon @Override 80823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon public ParcelableConference createFromParcel(Parcel source) { 81823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon ClassLoader classLoader = ParcelableConference.class.getClassLoader(); 82823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon PhoneAccountHandle phoneAccount = source.readParcelable(classLoader); 83823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon int state = source.readInt(); 84823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon int capabilities = source.readInt(); 85823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon List<String> connectionIds = new ArrayList<>(2); 86823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon source.readList(connectionIds, classLoader); 87823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon 88823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon return new ParcelableConference(phoneAccount, state, capabilities, connectionIds); 89823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon } 90823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon 91823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon @Override 92823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon public ParcelableConference[] newArray(int size) { 93823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon return new ParcelableConference[size]; 94823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon } 95823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon }; 96823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon 97823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon /** {@inheritDoc} */ 98823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon @Override 99823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon public int describeContents() { 100823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon return 0; 101823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon } 102823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon 103823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon /** Writes ParcelableConference object into a Parcel. */ 104823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon @Override 105823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon public void writeToParcel(Parcel destination, int flags) { 106823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon destination.writeParcelable(mPhoneAccount, 0); 107823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon destination.writeInt(mState); 108823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon destination.writeInt(mCapabilities); 109823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon destination.writeList(mConnectionIds); 110823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon } 111823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon} 112