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; 39720c664401081ca00e56c7eef12641ae792da530Tyler Gunn private final int mConnectionProperties; 404e22d6dc453de8e15e19e842c189522796c1cf80Christine Hallstrom private final int mSupportedAudioRoutes; 41100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee private final Uri mAddress; 42100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee private final int mAddressPresentation; 43b8e85c74e5910a461078704048d67f82b216508cIhab Awad private final String mCallerDisplayName; 44b8e85c74e5910a461078704048d67f82b216508cIhab Awad private final int mCallerDisplayNamePresentation; 45b8e85c74e5910a461078704048d67f82b216508cIhab Awad private final IVideoProvider mVideoProvider; 46b8e85c74e5910a461078704048d67f82b216508cIhab Awad private final int mVideoState; 47100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee private final boolean mRingbackRequested; 48100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee private final boolean mIsVoipAudioMode; 49e927ec02f5bbad925d5f28cbe370a04aa118f370Roshan Pius private final long mConnectTimeMillis; 50b8e85c74e5910a461078704048d67f82b216508cIhab Awad private final StatusHints mStatusHints; 517f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee private final DisconnectCause mDisconnectCause; 52b8e85c74e5910a461078704048d67f82b216508cIhab Awad private final List<String> mConferenceableConnectionIds; 536b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon private final Bundle mExtras; 5478da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn private String mParentCallId; 5578da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn 5678da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn /** @hide */ 5778da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn public ParcelableConnection( 5878da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn PhoneAccountHandle phoneAccount, 5978da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn int state, 6078da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn int capabilities, 6178da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn int properties, 6278da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn int supportedAudioRoutes, 6378da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn Uri address, 6478da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn int addressPresentation, 6578da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn String callerDisplayName, 6678da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn int callerDisplayNamePresentation, 6778da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn IVideoProvider videoProvider, 6878da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn int videoState, 6978da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn boolean ringbackRequested, 7078da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn boolean isVoipAudioMode, 7178da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn long connectTimeMillis, 7278da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn StatusHints statusHints, 7378da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn DisconnectCause disconnectCause, 7478da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn List<String> conferenceableConnectionIds, 7578da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn Bundle extras, 7678da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn String parentCallId) { 7778da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn this(phoneAccount, state, capabilities, properties, supportedAudioRoutes, address, 7878da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn addressPresentation, callerDisplayName, callerDisplayNamePresentation, 7978da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn videoProvider, videoState, ringbackRequested, isVoipAudioMode, connectTimeMillis, 8078da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn statusHints, disconnectCause, conferenceableConnectionIds, extras); 8178da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn mParentCallId = parentCallId; 8278da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn } 83e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon 84e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon /** @hide */ 85e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon public ParcelableConnection( 86e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon PhoneAccountHandle phoneAccount, 87e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon int state, 88e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon int capabilities, 89720c664401081ca00e56c7eef12641ae792da530Tyler Gunn int properties, 904e22d6dc453de8e15e19e842c189522796c1cf80Christine Hallstrom int supportedAudioRoutes, 91100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee Uri address, 92100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee int addressPresentation, 93e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon String callerDisplayName, 94e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon int callerDisplayNamePresentation, 95b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad IVideoProvider videoProvider, 968b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal int videoState, 97100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee boolean ringbackRequested, 98100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee boolean isVoipAudioMode, 99e927ec02f5bbad925d5f28cbe370a04aa118f370Roshan Pius long connectTimeMillis, 1006107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad StatusHints statusHints, 1017f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee DisconnectCause disconnectCause, 1026b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon List<String> conferenceableConnectionIds, 1036b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon Bundle extras) { 104e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon mPhoneAccount = phoneAccount; 105e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon mState = state; 1065c9c86ec0f95d1f5e1aca212967f508fc736b895Ihab Awad mConnectionCapabilities = capabilities; 107720c664401081ca00e56c7eef12641ae792da530Tyler Gunn mConnectionProperties = properties; 1084e22d6dc453de8e15e19e842c189522796c1cf80Christine Hallstrom mSupportedAudioRoutes = supportedAudioRoutes; 109100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee mAddress = address; 110100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee mAddressPresentation = addressPresentation; 111e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon mCallerDisplayName = callerDisplayName; 112e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon mCallerDisplayNamePresentation = callerDisplayNamePresentation; 113b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad mVideoProvider = videoProvider; 114e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon mVideoState = videoState; 115100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee mRingbackRequested = ringbackRequested; 116100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee mIsVoipAudioMode = isVoipAudioMode; 117e927ec02f5bbad925d5f28cbe370a04aa118f370Roshan Pius mConnectTimeMillis = connectTimeMillis; 1188b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal mStatusHints = statusHints; 119cf7020b7e84c1f5190db7167d70cb0675cd3332fSailesh Nepal mDisconnectCause = disconnectCause; 1206b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon mConferenceableConnectionIds = conferenceableConnectionIds; 1216b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon mExtras = extras; 12278da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn mParentCallId = null; 123e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon } 124e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon 125e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon public PhoneAccountHandle getPhoneAccount() { 126e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon return mPhoneAccount; 127e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon } 128e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon 129e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon public int getState() { 130e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon return mState; 131e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon } 132e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon 133720c664401081ca00e56c7eef12641ae792da530Tyler Gunn /** 134720c664401081ca00e56c7eef12641ae792da530Tyler Gunn * Returns the current connection capabilities bit-mask. Connection capabilities are defined as 135720c664401081ca00e56c7eef12641ae792da530Tyler Gunn * {@code CAPABILITY_*} constants in {@link Connection}. 136720c664401081ca00e56c7eef12641ae792da530Tyler Gunn * 137720c664401081ca00e56c7eef12641ae792da530Tyler Gunn * @return Bit-mask containing capabilities of the connection. 138720c664401081ca00e56c7eef12641ae792da530Tyler Gunn */ 1395c9c86ec0f95d1f5e1aca212967f508fc736b895Ihab Awad public int getConnectionCapabilities() { 1405c9c86ec0f95d1f5e1aca212967f508fc736b895Ihab Awad return mConnectionCapabilities; 141e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon } 142e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon 143720c664401081ca00e56c7eef12641ae792da530Tyler Gunn /** 144720c664401081ca00e56c7eef12641ae792da530Tyler Gunn * Returns the current connection properties bit-mask. Connection properties are defined as 145720c664401081ca00e56c7eef12641ae792da530Tyler Gunn * {@code PROPERTY_*} constants in {@link Connection}. 146720c664401081ca00e56c7eef12641ae792da530Tyler Gunn * 147720c664401081ca00e56c7eef12641ae792da530Tyler Gunn * @return Bit-mask containing properties of the connection. 148720c664401081ca00e56c7eef12641ae792da530Tyler Gunn */ 149720c664401081ca00e56c7eef12641ae792da530Tyler Gunn public int getConnectionProperties() { 150720c664401081ca00e56c7eef12641ae792da530Tyler Gunn return mConnectionProperties; 151720c664401081ca00e56c7eef12641ae792da530Tyler Gunn } 152720c664401081ca00e56c7eef12641ae792da530Tyler Gunn 1534e22d6dc453de8e15e19e842c189522796c1cf80Christine Hallstrom public int getSupportedAudioRoutes() { 1544e22d6dc453de8e15e19e842c189522796c1cf80Christine Hallstrom return mSupportedAudioRoutes; 1554e22d6dc453de8e15e19e842c189522796c1cf80Christine Hallstrom } 1564e22d6dc453de8e15e19e842c189522796c1cf80Christine Hallstrom 157e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon public Uri getHandle() { 158100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee return mAddress; 159e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon } 160e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon 161e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon public int getHandlePresentation() { 162100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee return mAddressPresentation; 163e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon } 164e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon 165e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon public String getCallerDisplayName() { 166e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon return mCallerDisplayName; 167e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon } 168e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon 169e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon public int getCallerDisplayNamePresentation() { 170e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon return mCallerDisplayNamePresentation; 171e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon } 172e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon 173b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad public IVideoProvider getVideoProvider() { 174b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad return mVideoProvider; 175e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon } 176e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon 177e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon public int getVideoState() { 178e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon return mVideoState; 179e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon } 180e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon 181100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee public boolean isRingbackRequested() { 182100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee return mRingbackRequested; 1838b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal } 1848b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal 185100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee public boolean getIsVoipAudioMode() { 186100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee return mIsVoipAudioMode; 1878b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal } 1888b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal 189e927ec02f5bbad925d5f28cbe370a04aa118f370Roshan Pius public long getConnectTimeMillis() { 190e927ec02f5bbad925d5f28cbe370a04aa118f370Roshan Pius return mConnectTimeMillis; 191e927ec02f5bbad925d5f28cbe370a04aa118f370Roshan Pius } 192e927ec02f5bbad925d5f28cbe370a04aa118f370Roshan Pius 1938b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal public final StatusHints getStatusHints() { 1948b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal return mStatusHints; 1958b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal } 1968b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal 1977f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public final DisconnectCause getDisconnectCause() { 198cf7020b7e84c1f5190db7167d70cb0675cd3332fSailesh Nepal return mDisconnectCause; 1996107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad } 2006107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad 201b8e85c74e5910a461078704048d67f82b216508cIhab Awad public final List<String> getConferenceableConnectionIds() { 202b8e85c74e5910a461078704048d67f82b216508cIhab Awad return mConferenceableConnectionIds; 203b8e85c74e5910a461078704048d67f82b216508cIhab Awad } 204b8e85c74e5910a461078704048d67f82b216508cIhab Awad 2056b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon public final Bundle getExtras() { 2066b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon return mExtras; 2076b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon } 2086b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon 20978da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn public final String getParentCallId() { 21078da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn return mParentCallId; 21178da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn } 21278da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn 2137c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon @Override 2147c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon public String toString() { 2157c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon return new StringBuilder() 2167c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon .append("ParcelableConnection [act:") 2177c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon .append(mPhoneAccount) 2186b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon .append("], state:") 2197c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon .append(mState) 2207c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon .append(", capabilities:") 2215c9c86ec0f95d1f5e1aca212967f508fc736b895Ihab Awad .append(Connection.capabilitiesToString(mConnectionCapabilities)) 222720c664401081ca00e56c7eef12641ae792da530Tyler Gunn .append(", properties:") 223720c664401081ca00e56c7eef12641ae792da530Tyler Gunn .append(Connection.propertiesToString(mConnectionProperties)) 2246b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon .append(", extras:") 2256b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon .append(mExtras) 22678da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn .append(", parent:") 22778da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn .append(mParentCallId) 2287c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon .toString(); 2297c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon } 2307c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon 231e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon public static final Parcelable.Creator<ParcelableConnection> CREATOR = 232e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon new Parcelable.Creator<ParcelableConnection> () { 233e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon @Override 234e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon public ParcelableConnection createFromParcel(Parcel source) { 235e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon ClassLoader classLoader = ParcelableConnection.class.getClassLoader(); 236e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon 237e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon PhoneAccountHandle phoneAccount = source.readParcelable(classLoader); 238e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon int state = source.readInt(); 239e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon int capabilities = source.readInt(); 240100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee Uri address = source.readParcelable(classLoader); 241100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee int addressPresentation = source.readInt(); 242e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon String callerDisplayName = source.readString(); 243e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon int callerDisplayNamePresentation = source.readInt(); 244b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad IVideoProvider videoCallProvider = 245b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad IVideoProvider.Stub.asInterface(source.readStrongBinder()); 246e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon int videoState = source.readInt(); 247100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee boolean ringbackRequested = source.readByte() == 1; 2488b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal boolean audioModeIsVoip = source.readByte() == 1; 249e927ec02f5bbad925d5f28cbe370a04aa118f370Roshan Pius long connectTimeMillis = source.readLong(); 2508b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal StatusHints statusHints = source.readParcelable(classLoader); 2517f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee DisconnectCause disconnectCause = source.readParcelable(classLoader); 252b8e85c74e5910a461078704048d67f82b216508cIhab Awad List<String> conferenceableConnectionIds = new ArrayList<>(); 253b8e85c74e5910a461078704048d67f82b216508cIhab Awad source.readStringList(conferenceableConnectionIds); 254f0ec2e005083808bf68f9f0049b801276c290ae2Jeff Sharkey Bundle extras = Bundle.setDefusable(source.readBundle(classLoader), true); 255720c664401081ca00e56c7eef12641ae792da530Tyler Gunn int properties = source.readInt(); 2564e22d6dc453de8e15e19e842c189522796c1cf80Christine Hallstrom int supportedAudioRoutes = source.readInt(); 25778da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn String parentCallId = source.readString(); 258e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon 259e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon return new ParcelableConnection( 260e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon phoneAccount, 261e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon state, 262e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon capabilities, 263720c664401081ca00e56c7eef12641ae792da530Tyler Gunn properties, 2644e22d6dc453de8e15e19e842c189522796c1cf80Christine Hallstrom supportedAudioRoutes, 265100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee address, 266100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee addressPresentation, 267e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon callerDisplayName, 268e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon callerDisplayNamePresentation, 26950aca23bd7f51a3cf32a1f7e32238cc1e26ca1a0Andrew Lee videoCallProvider, 2708b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal videoState, 271100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee ringbackRequested, 2728b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal audioModeIsVoip, 273e927ec02f5bbad925d5f28cbe370a04aa118f370Roshan Pius connectTimeMillis, 2746107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad statusHints, 2757f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee disconnectCause, 2766b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon conferenceableConnectionIds, 27778da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn extras, 27878da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn parentCallId); 279e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon } 280e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon 281e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon @Override 282e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon public ParcelableConnection[] newArray(int size) { 283e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon return new ParcelableConnection[size]; 284e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon } 285e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon }; 286e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon 287e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon /** {@inheritDoc} */ 288e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon @Override 289e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon public int describeContents() { 290e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon return 0; 291e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon } 292e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon 293e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon /** Writes ParcelableConnection object into a Parcel. */ 294e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon @Override 295e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon public void writeToParcel(Parcel destination, int flags) { 296e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon destination.writeParcelable(mPhoneAccount, 0); 297e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon destination.writeInt(mState); 2985c9c86ec0f95d1f5e1aca212967f508fc736b895Ihab Awad destination.writeInt(mConnectionCapabilities); 299100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee destination.writeParcelable(mAddress, 0); 300100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee destination.writeInt(mAddressPresentation); 301e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon destination.writeString(mCallerDisplayName); 302e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon destination.writeInt(mCallerDisplayNamePresentation); 303e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon destination.writeStrongBinder( 304b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad mVideoProvider != null ? mVideoProvider.asBinder() : null); 305e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon destination.writeInt(mVideoState); 306100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee destination.writeByte((byte) (mRingbackRequested ? 1 : 0)); 307100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee destination.writeByte((byte) (mIsVoipAudioMode ? 1 : 0)); 308e927ec02f5bbad925d5f28cbe370a04aa118f370Roshan Pius destination.writeLong(mConnectTimeMillis); 3098b9d3ca94189b183a2380ba5b289d9a06eb0493eSailesh Nepal destination.writeParcelable(mStatusHints, 0); 3107f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee destination.writeParcelable(mDisconnectCause, 0); 311b8e85c74e5910a461078704048d67f82b216508cIhab Awad destination.writeStringList(mConferenceableConnectionIds); 3126b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon destination.writeBundle(mExtras); 313720c664401081ca00e56c7eef12641ae792da530Tyler Gunn destination.writeInt(mConnectionProperties); 3144e22d6dc453de8e15e19e842c189522796c1cf80Christine Hallstrom destination.writeInt(mSupportedAudioRoutes); 31578da7816da1acdb1cce3f4b5943d105c3383debeTyler Gunn destination.writeString(mParentCallId); 316e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon } 317e8dc4bef00e391defbdee0264b2ed955b1117841Santos Cordon} 318