1e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon/*
2e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon * Copyright 2014, The Android Open Source Project
3e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon *
4e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon * Licensed under the Apache License, Version 2.0 (the "License");
5e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon * you may not use this file except in compliance with the License.
6e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon * You may obtain a copy of the License at
7e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon *
8e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon *     http://www.apache.org/licenses/LICENSE-2.0
9e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon *
10e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon * Unless required by applicable law or agreed to in writing, software
11e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon * distributed under the License is distributed on an "AS IS" BASIS,
12e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon * See the License for the specific language governing permissions and
14e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon * limitations under the License.
15e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon */
16e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon
17ef9f6f957d897ea0ed82114185b8fa3fefd4917bTyler Gunnpackage android.telecom;
18e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon
19e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordonimport android.net.Uri;
206b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordonimport android.os.Bundle;
21e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordonimport android.os.Parcel;
22e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordonimport android.os.Parcelable;
23e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon
24ef9f6f957d897ea0ed82114185b8fa3fefd4917bTyler Gunnimport com.android.internal.telecom.IVideoProvider;
25e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon
26b8e85c74e5910a461078704048d67f82b216508cIhab Awadimport java.util.ArrayList;
27b8e85c74e5910a461078704048d67f82b216508cIhab Awadimport java.util.List;
28b8e85c74e5910a461078704048d67f82b216508cIhab Awad
29e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon/**
30ef9f6f957d897ea0ed82114185b8fa3fefd4917bTyler Gunn * Information about a connection that is used between Telecom and the ConnectionService.
31ef9f6f957d897ea0ed82114185b8fa3fefd4917bTyler Gunn * This is used to send initial Connection information to Telecom when the connection is
32e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon * first created.
33e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon * @hide
34e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon */
35e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordonpublic final class ParcelableConnection implements Parcelable {
36b8e85c74e5910a461078704048d67f82b216508cIhab Awad    private final PhoneAccountHandle mPhoneAccount;
37b8e85c74e5910a461078704048d67f82b216508cIhab Awad    private final int mState;
385c9c86ec0f95d1f5e1aca212967f508fc736b895Ihab Awad    private final int mConnectionCapabilities;
39100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee    private final Uri mAddress;
40100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee    private final int mAddressPresentation;
41b8e85c74e5910a461078704048d67f82b216508cIhab Awad    private final String mCallerDisplayName;
42b8e85c74e5910a461078704048d67f82b216508cIhab Awad    private final int mCallerDisplayNamePresentation;
43b8e85c74e5910a461078704048d67f82b216508cIhab Awad    private final IVideoProvider mVideoProvider;
44b8e85c74e5910a461078704048d67f82b216508cIhab Awad    private final int mVideoState;
45100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee    private final boolean mRingbackRequested;
46100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee    private final boolean mIsVoipAudioMode;
47e927ec02f5bbad925d5f28cbe370a04aa118f370Roshan Pius    private final long mConnectTimeMillis;
48b8e85c74e5910a461078704048d67f82b216508cIhab Awad    private final StatusHints mStatusHints;
497f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee    private final DisconnectCause mDisconnectCause;
50b8e85c74e5910a461078704048d67f82b216508cIhab Awad    private final List<String> mConferenceableConnectionIds;
516b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon    private final Bundle mExtras;
52e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon
53e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    /** @hide */
54e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    public ParcelableConnection(
55e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon            PhoneAccountHandle phoneAccount,
56e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon            int state,
57e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon            int capabilities,
58100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee            Uri address,
59100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee            int addressPresentation,
60e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon            String callerDisplayName,
61e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon            int callerDisplayNamePresentation,
62b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad            IVideoProvider videoProvider,
638b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal            int videoState,
64100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee            boolean ringbackRequested,
65100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee            boolean isVoipAudioMode,
66e927ec02f5bbad925d5f28cbe370a04aa118f370Roshan Pius            long connectTimeMillis,
676107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad            StatusHints statusHints,
687f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee            DisconnectCause disconnectCause,
696b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon            List<String> conferenceableConnectionIds,
706b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon            Bundle extras) {
71e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        mPhoneAccount = phoneAccount;
72e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        mState = state;
735c9c86ec0f95d1f5e1aca212967f508fc736b895Ihab Awad        mConnectionCapabilities = capabilities;
74100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee        mAddress = address;
75100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee        mAddressPresentation = addressPresentation;
76e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        mCallerDisplayName = callerDisplayName;
77e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        mCallerDisplayNamePresentation = callerDisplayNamePresentation;
78b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad        mVideoProvider = videoProvider;
79e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        mVideoState = videoState;
80100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee        mRingbackRequested = ringbackRequested;
81100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee        mIsVoipAudioMode = isVoipAudioMode;
82e927ec02f5bbad925d5f28cbe370a04aa118f370Roshan Pius        mConnectTimeMillis = connectTimeMillis;
838b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal        mStatusHints = statusHints;
84cf7020b7e84c1f5190db7167d70cb0675cd3332fSailesh Nepal        mDisconnectCause = disconnectCause;
856b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon        mConferenceableConnectionIds = conferenceableConnectionIds;
866b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon        mExtras = extras;
87e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    }
88e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon
89e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    public PhoneAccountHandle getPhoneAccount() {
90e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        return mPhoneAccount;
91e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    }
92e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon
93e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    public int getState() {
94e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        return mState;
95e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    }
96e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon
97e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    // Bit mask of actions a call supports, values are defined in {@link CallCapabilities}.
985c9c86ec0f95d1f5e1aca212967f508fc736b895Ihab Awad    public int getConnectionCapabilities() {
995c9c86ec0f95d1f5e1aca212967f508fc736b895Ihab Awad        return mConnectionCapabilities;
100e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    }
101e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon
102e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    public Uri getHandle() {
103100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee        return mAddress;
104e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    }
105e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon
106e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    public int getHandlePresentation() {
107100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee        return mAddressPresentation;
108e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    }
109e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon
110e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    public String getCallerDisplayName() {
111e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        return mCallerDisplayName;
112e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    }
113e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon
114e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    public int getCallerDisplayNamePresentation() {
115e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        return mCallerDisplayNamePresentation;
116e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    }
117e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon
118b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad    public IVideoProvider getVideoProvider() {
119b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad        return mVideoProvider;
120e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    }
121e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon
122e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    public int getVideoState() {
123e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        return mVideoState;
124e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    }
125e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon
126100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee    public boolean isRingbackRequested() {
127100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee        return mRingbackRequested;
1288b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal    }
1298b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal
130100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee    public boolean getIsVoipAudioMode() {
131100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee        return mIsVoipAudioMode;
1328b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal    }
1338b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal
134e927ec02f5bbad925d5f28cbe370a04aa118f370Roshan Pius    public long getConnectTimeMillis() {
135e927ec02f5bbad925d5f28cbe370a04aa118f370Roshan Pius        return mConnectTimeMillis;
136e927ec02f5bbad925d5f28cbe370a04aa118f370Roshan Pius    }
137e927ec02f5bbad925d5f28cbe370a04aa118f370Roshan Pius
1388b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal    public final StatusHints getStatusHints() {
1398b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal        return mStatusHints;
1408b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal    }
1418b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal
1427f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee    public final DisconnectCause getDisconnectCause() {
143cf7020b7e84c1f5190db7167d70cb0675cd3332fSailesh Nepal        return mDisconnectCause;
1446107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad    }
1456107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad
146b8e85c74e5910a461078704048d67f82b216508cIhab Awad    public final List<String> getConferenceableConnectionIds() {
147b8e85c74e5910a461078704048d67f82b216508cIhab Awad        return mConferenceableConnectionIds;
148b8e85c74e5910a461078704048d67f82b216508cIhab Awad    }
149b8e85c74e5910a461078704048d67f82b216508cIhab Awad
1506b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon    public final Bundle getExtras() {
1516b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon        return mExtras;
1526b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon    }
1536b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon
1547c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon    @Override
1557c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon    public String toString() {
1567c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon        return new StringBuilder()
1577c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon                .append("ParcelableConnection [act:")
1587c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon                .append(mPhoneAccount)
1596b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon                .append("], state:")
1607c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon                .append(mState)
1617c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon                .append(", capabilities:")
1625c9c86ec0f95d1f5e1aca212967f508fc736b895Ihab Awad                .append(Connection.capabilitiesToString(mConnectionCapabilities))
1636b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon                .append(", extras:")
1646b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon                .append(mExtras)
1657c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon                .toString();
1667c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon    }
1677c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon
168e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    public static final Parcelable.Creator<ParcelableConnection> CREATOR =
169e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon            new Parcelable.Creator<ParcelableConnection> () {
170e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        @Override
171e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        public ParcelableConnection createFromParcel(Parcel source) {
172e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon            ClassLoader classLoader = ParcelableConnection.class.getClassLoader();
173e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon
174e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon            PhoneAccountHandle phoneAccount = source.readParcelable(classLoader);
175e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon            int state = source.readInt();
176e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon            int capabilities = source.readInt();
177100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee            Uri address = source.readParcelable(classLoader);
178100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee            int addressPresentation = source.readInt();
179e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon            String callerDisplayName = source.readString();
180e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon            int callerDisplayNamePresentation = source.readInt();
181b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad            IVideoProvider videoCallProvider =
182b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad                    IVideoProvider.Stub.asInterface(source.readStrongBinder());
183e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon            int videoState = source.readInt();
184100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee            boolean ringbackRequested = source.readByte() == 1;
1858b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal            boolean audioModeIsVoip = source.readByte() == 1;
186e927ec02f5bbad925d5f28cbe370a04aa118f370Roshan Pius            long connectTimeMillis = source.readLong();
1878b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal            StatusHints statusHints = source.readParcelable(classLoader);
1887f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee            DisconnectCause disconnectCause = source.readParcelable(classLoader);
189b8e85c74e5910a461078704048d67f82b216508cIhab Awad            List<String> conferenceableConnectionIds = new ArrayList<>();
190b8e85c74e5910a461078704048d67f82b216508cIhab Awad            source.readStringList(conferenceableConnectionIds);
1916b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon            Bundle extras = source.readBundle(classLoader);
192e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon
193e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon            return new ParcelableConnection(
194e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon                    phoneAccount,
195e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon                    state,
196e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon                    capabilities,
197100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee                    address,
198100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee                    addressPresentation,
199e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon                    callerDisplayName,
200e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon                    callerDisplayNamePresentation,
20150aca23bd7f51a3cf32a1f7e32238cc1e26ca1a0Andrew Lee                    videoCallProvider,
2028b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal                    videoState,
203100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee                    ringbackRequested,
2048b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal                    audioModeIsVoip,
205e927ec02f5bbad925d5f28cbe370a04aa118f370Roshan Pius                    connectTimeMillis,
2066107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad                    statusHints,
2077f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee                    disconnectCause,
2086b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon                    conferenceableConnectionIds,
2096b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon                    extras);
210e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        }
211e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon
212e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        @Override
213e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        public ParcelableConnection[] newArray(int size) {
214e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon            return new ParcelableConnection[size];
215e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        }
216e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    };
217e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon
218e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    /** {@inheritDoc} */
219e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    @Override
220e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    public int describeContents() {
221e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        return 0;
222e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    }
223e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon
224e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    /** Writes ParcelableConnection object into a Parcel. */
225e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    @Override
226e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    public void writeToParcel(Parcel destination, int flags) {
227e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        destination.writeParcelable(mPhoneAccount, 0);
228e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        destination.writeInt(mState);
2295c9c86ec0f95d1f5e1aca212967f508fc736b895Ihab Awad        destination.writeInt(mConnectionCapabilities);
230100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee        destination.writeParcelable(mAddress, 0);
231100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee        destination.writeInt(mAddressPresentation);
232e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        destination.writeString(mCallerDisplayName);
233e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        destination.writeInt(mCallerDisplayNamePresentation);
234e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        destination.writeStrongBinder(
235b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad                mVideoProvider != null ? mVideoProvider.asBinder() : null);
236e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon        destination.writeInt(mVideoState);
237100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee        destination.writeByte((byte) (mRingbackRequested ? 1 : 0));
238100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee        destination.writeByte((byte) (mIsVoipAudioMode ? 1 : 0));
239e927ec02f5bbad925d5f28cbe370a04aa118f370Roshan Pius        destination.writeLong(mConnectTimeMillis);
2408b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal        destination.writeParcelable(mStatusHints, 0);
2417f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee        destination.writeParcelable(mDisconnectCause, 0);
242b8e85c74e5910a461078704048d67f82b216508cIhab Awad        destination.writeStringList(mConferenceableConnectionIds);
2436b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon        destination.writeBundle(mExtras);
244e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon    }
245e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon}
246