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