blob: 975aa5a332ca0943fe576656eccdd2483858fc6a [file] [log] [blame]
Sailesh Nepal60437932014-04-05 16:44:55 -07001/*
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
Tyler Gunnef9f6f92014-09-12 22:16:17 -070017package android.telecom;
Sailesh Nepal60437932014-04-05 16:44:55 -070018
19import android.net.Uri;
Nancy Chen10798dc2014-08-08 14:00:25 -070020import android.os.Bundle;
Sailesh Nepal60437932014-04-05 16:44:55 -070021import android.os.Parcel;
22import android.os.Parcelable;
Andrew Lee5dc30752014-06-27 17:02:19 -070023import android.os.RemoteException;
Sailesh Nepal60437932014-04-05 16:44:55 -070024
Santos Cordon980acb92014-05-31 10:31:19 -070025import java.util.ArrayList;
Santos Cordon7c7bc7f2014-07-28 18:15:48 -070026import java.util.Collections;
Santos Cordon980acb92014-05-31 10:31:19 -070027import java.util.List;
Sailesh Nepal60437932014-04-05 16:44:55 -070028
Tyler Gunnef9f6f92014-09-12 22:16:17 -070029import com.android.internal.telecom.IVideoProvider;
Ihab Awadb19a0bc2014-08-07 19:46:01 -070030
Sailesh Nepal60437932014-04-05 16:44:55 -070031/**
Tyler Gunnef9f6f92014-09-12 22:16:17 -070032 * Information about a call that is used between InCallService and Telecom.
Santos Cordon88b771d2014-07-19 13:10:40 -070033 * @hide
Sailesh Nepal60437932014-04-05 16:44:55 -070034 */
Santos Cordon88b771d2014-07-19 13:10:40 -070035public final class ParcelableCall implements Parcelable {
Sailesh Nepal60437932014-04-05 16:44:55 -070036 private final String mId;
Ihab Awadb19a0bc2014-08-07 19:46:01 -070037 private final int mState;
Andrew Lee7f3d41f2014-09-11 17:33:16 -070038 private final DisconnectCause mDisconnectCause;
Ihab Awadc0677542014-06-10 13:29:47 -070039 private final List<String> mCannedSmsResponses;
Sailesh Nepal60437932014-04-05 16:44:55 -070040 private final int mCapabilities;
Andrew Lee223ad142014-08-27 16:33:08 -070041 private final int mProperties;
Christine Hallstrom2830ce92016-11-30 16:06:42 -080042 private final int mSupportedAudioRoutes;
Sailesh Nepal60437932014-04-05 16:44:55 -070043 private final long mConnectTimeMillis;
44 private final Uri mHandle;
Sailesh Nepal61203862014-07-11 14:50:13 -070045 private final int mHandlePresentation;
46 private final String mCallerDisplayName;
47 private final int mCallerDisplayNamePresentation;
Sailesh Nepal60437932014-04-05 16:44:55 -070048 private final GatewayInfo mGatewayInfo;
Evan Charlton8c8a0622014-07-20 12:31:00 -070049 private final PhoneAccountHandle mAccountHandle;
Tyler Gunn75958422015-04-15 14:23:42 -070050 private final boolean mIsVideoCallProviderChanged;
Ihab Awadb19a0bc2014-08-07 19:46:01 -070051 private final IVideoProvider mVideoCallProvider;
Tyler Gunn584ba6c2015-12-08 10:53:41 -080052 private VideoCallImpl mVideoCall;
Hall Liu95d55872017-01-25 17:12:49 -080053 private final boolean mIsRttCallChanged;
54 private final ParcelableRttCall mRttCall;
Santos Cordon980acb92014-05-31 10:31:19 -070055 private final String mParentCallId;
56 private final List<String> mChildCallIds;
Sailesh Nepale7ef59a2014-07-08 21:48:22 -070057 private final StatusHints mStatusHints;
Andrew Lee85f5d422014-07-11 17:22:03 -070058 private final int mVideoState;
Santos Cordon7c7bc7f2014-07-28 18:15:48 -070059 private final List<String> mConferenceableCallIds;
Santos Cordon6b7f9552015-05-27 17:21:45 -070060 private final Bundle mIntentExtras;
Nancy Chen10798dc2014-08-08 14:00:25 -070061 private final Bundle mExtras;
Santos Cordon980acb92014-05-31 10:31:19 -070062
Santos Cordon88b771d2014-07-19 13:10:40 -070063 public ParcelableCall(
Sailesh Nepal60437932014-04-05 16:44:55 -070064 String id,
Ihab Awadb19a0bc2014-08-07 19:46:01 -070065 int state,
Andrew Lee7f3d41f2014-09-11 17:33:16 -070066 DisconnectCause disconnectCause,
Ihab Awadc0677542014-06-10 13:29:47 -070067 List<String> cannedSmsResponses,
Sailesh Nepal60437932014-04-05 16:44:55 -070068 int capabilities,
Andrew Lee223ad142014-08-27 16:33:08 -070069 int properties,
Christine Hallstrom2830ce92016-11-30 16:06:42 -080070 int supportedAudioRoutes,
Sailesh Nepal60437932014-04-05 16:44:55 -070071 long connectTimeMillis,
72 Uri handle,
Sailesh Nepal61203862014-07-11 14:50:13 -070073 int handlePresentation,
74 String callerDisplayName,
75 int callerDisplayNamePresentation,
Sailesh Nepal60437932014-04-05 16:44:55 -070076 GatewayInfo gatewayInfo,
Evan Charlton8c8a0622014-07-20 12:31:00 -070077 PhoneAccountHandle accountHandle,
Tyler Gunn75958422015-04-15 14:23:42 -070078 boolean isVideoCallProviderChanged,
Ihab Awadb19a0bc2014-08-07 19:46:01 -070079 IVideoProvider videoCallProvider,
Hall Liu95d55872017-01-25 17:12:49 -080080 boolean isRttCallChanged,
81 ParcelableRttCall rttCall,
Santos Cordon980acb92014-05-31 10:31:19 -070082 String parentCallId,
Tyler Gunn8d83fa92014-07-01 11:31:21 -070083 List<String> childCallIds,
Andrew Lee85f5d422014-07-11 17:22:03 -070084 StatusHints statusHints,
Santos Cordon7c7bc7f2014-07-28 18:15:48 -070085 int videoState,
Nancy Chen10798dc2014-08-08 14:00:25 -070086 List<String> conferenceableCallIds,
Santos Cordon6b7f9552015-05-27 17:21:45 -070087 Bundle intentExtras,
Jay Shrauner8f988432015-04-16 12:52:19 -070088 Bundle extras) {
Sailesh Nepal60437932014-04-05 16:44:55 -070089 mId = id;
90 mState = state;
Andrew Lee7f3d41f2014-09-11 17:33:16 -070091 mDisconnectCause = disconnectCause;
Ihab Awadc0677542014-06-10 13:29:47 -070092 mCannedSmsResponses = cannedSmsResponses;
Sailesh Nepal60437932014-04-05 16:44:55 -070093 mCapabilities = capabilities;
Andrew Lee223ad142014-08-27 16:33:08 -070094 mProperties = properties;
Christine Hallstrom2830ce92016-11-30 16:06:42 -080095 mSupportedAudioRoutes = supportedAudioRoutes;
Sailesh Nepal60437932014-04-05 16:44:55 -070096 mConnectTimeMillis = connectTimeMillis;
97 mHandle = handle;
Sailesh Nepal61203862014-07-11 14:50:13 -070098 mHandlePresentation = handlePresentation;
99 mCallerDisplayName = callerDisplayName;
100 mCallerDisplayNamePresentation = callerDisplayNamePresentation;
Sailesh Nepal60437932014-04-05 16:44:55 -0700101 mGatewayInfo = gatewayInfo;
Evan Charlton8c8a0622014-07-20 12:31:00 -0700102 mAccountHandle = accountHandle;
Tyler Gunn75958422015-04-15 14:23:42 -0700103 mIsVideoCallProviderChanged = isVideoCallProviderChanged;
Andrew Lee50aca232014-07-22 16:41:54 -0700104 mVideoCallProvider = videoCallProvider;
Hall Liu95d55872017-01-25 17:12:49 -0800105 mIsRttCallChanged = isRttCallChanged;
106 mRttCall = rttCall;
Santos Cordon980acb92014-05-31 10:31:19 -0700107 mParentCallId = parentCallId;
108 mChildCallIds = childCallIds;
Sailesh Nepale7ef59a2014-07-08 21:48:22 -0700109 mStatusHints = statusHints;
Andrew Lee85f5d422014-07-11 17:22:03 -0700110 mVideoState = videoState;
Santos Cordon7c7bc7f2014-07-28 18:15:48 -0700111 mConferenceableCallIds = Collections.unmodifiableList(conferenceableCallIds);
Santos Cordon6b7f9552015-05-27 17:21:45 -0700112 mIntentExtras = intentExtras;
Nancy Chen10798dc2014-08-08 14:00:25 -0700113 mExtras = extras;
Sailesh Nepal60437932014-04-05 16:44:55 -0700114 }
115
116 /** The unique ID of the call. */
117 public String getId() {
118 return mId;
119 }
120
121 /** The current state of the call. */
Ihab Awadb19a0bc2014-08-07 19:46:01 -0700122 public int getState() {
Sailesh Nepal60437932014-04-05 16:44:55 -0700123 return mState;
124 }
125
126 /**
Andrew Lee7f3d41f2014-09-11 17:33:16 -0700127 * Reason for disconnection, as described by {@link android.telecomm.DisconnectCause}. Valid
128 * when call state is {@link CallState#DISCONNECTED}.
Sailesh Nepal60437932014-04-05 16:44:55 -0700129 */
Andrew Lee7f3d41f2014-09-11 17:33:16 -0700130 public DisconnectCause getDisconnectCause() {
131 return mDisconnectCause;
Sailesh Nepal60437932014-04-05 16:44:55 -0700132 }
133
Ihab Awadc0677542014-06-10 13:29:47 -0700134 /**
135 * The set of possible text message responses when this call is incoming.
136 */
137 public List<String> getCannedSmsResponses() {
138 return mCannedSmsResponses;
139 }
140
Sailesh Nepal60437932014-04-05 16:44:55 -0700141 // Bit mask of actions a call supports, values are defined in {@link CallCapabilities}.
142 public int getCapabilities() {
143 return mCapabilities;
144 }
145
Andrew Lee223ad142014-08-27 16:33:08 -0700146 /** Bitmask of properties of the call. */
147 public int getProperties() { return mProperties; }
148
Christine Hallstrom2830ce92016-11-30 16:06:42 -0800149 /** Bitmask of supported routes of the call */
150 public int getSupportedAudioRoutes() {
151 return mSupportedAudioRoutes;
152 }
153
Sailesh Nepal60437932014-04-05 16:44:55 -0700154 /** The time that the call switched to the active state. */
155 public long getConnectTimeMillis() {
156 return mConnectTimeMillis;
157 }
158
159 /** The endpoint to which the call is connected. */
160 public Uri getHandle() {
161 return mHandle;
162 }
163
Nancy Chen9d568c02014-09-08 14:17:59 -0700164 /**
Tyler Gunnef9f6f92014-09-12 22:16:17 -0700165 * The presentation requirements for the handle. See {@link TelecomManager} for valid values.
Nancy Chen9d568c02014-09-08 14:17:59 -0700166 */
Sailesh Nepal61203862014-07-11 14:50:13 -0700167 public int getHandlePresentation() {
168 return mHandlePresentation;
169 }
170
171 /** The endpoint to which the call is connected. */
172 public String getCallerDisplayName() {
173 return mCallerDisplayName;
174 }
175
Nancy Chen9d568c02014-09-08 14:17:59 -0700176 /**
177 * The presentation requirements for the caller display name.
Tyler Gunnef9f6f92014-09-12 22:16:17 -0700178 * See {@link TelecomManager} for valid values.
Nancy Chen9d568c02014-09-08 14:17:59 -0700179 */
Sailesh Nepal61203862014-07-11 14:50:13 -0700180 public int getCallerDisplayNamePresentation() {
181 return mCallerDisplayNamePresentation;
182 }
183
Sailesh Nepal60437932014-04-05 16:44:55 -0700184 /** Gateway information for the call. */
185 public GatewayInfo getGatewayInfo() {
186 return mGatewayInfo;
187 }
188
Evan Charlton6eb262c2014-07-19 18:18:19 -0700189 /** PhoneAccountHandle information for the call. */
Evan Charlton8c8a0622014-07-20 12:31:00 -0700190 public PhoneAccountHandle getAccountHandle() {
191 return mAccountHandle;
Nancy Chen5ffbfcc2014-06-25 14:22:55 -0700192 }
193
Sailesh Nepal60437932014-04-05 16:44:55 -0700194 /**
Andrew Lee50aca232014-07-22 16:41:54 -0700195 * Returns an object for remotely communicating through the video call provider's binder.
Tyler Gunn584ba6c2015-12-08 10:53:41 -0800196
Andrew Lee50aca232014-07-22 16:41:54 -0700197 * @return The video call.
Andrew Lee5dc30752014-06-27 17:02:19 -0700198 */
Tyler Gunnbf9c6fd2016-11-09 10:19:23 -0800199 public VideoCallImpl getVideoCallImpl(String callingPackageName) {
Andrew Lee50aca232014-07-22 16:41:54 -0700200 if (mVideoCall == null && mVideoCallProvider != null) {
Andrew Lee5dc30752014-06-27 17:02:19 -0700201 try {
Tyler Gunnbf9c6fd2016-11-09 10:19:23 -0800202 mVideoCall = new VideoCallImpl(mVideoCallProvider, callingPackageName);
Andrew Lee5dc30752014-06-27 17:02:19 -0700203 } catch (RemoteException ignored) {
204 // Ignore RemoteException.
205 }
206 }
207
Andrew Lee50aca232014-07-22 16:41:54 -0700208 return mVideoCall;
Andrew Lee5dc30752014-06-27 17:02:19 -0700209 }
210
Hall Liu95d55872017-01-25 17:12:49 -0800211 public boolean getIsRttCallChanged() {
212 return mIsRttCallChanged;
213 }
214
215 /**
216 * RTT communication channel information
217 * @return The ParcelableRttCall
218 */
219 public ParcelableRttCall getParcelableRttCall() {
220 return mRttCall;
221 }
222
Andrew Lee5dc30752014-06-27 17:02:19 -0700223 /**
Santos Cordon980acb92014-05-31 10:31:19 -0700224 * The conference call to which this call is conferenced. Null if not conferenced.
Santos Cordon980acb92014-05-31 10:31:19 -0700225 */
226 public String getParentCallId() {
227 return mParentCallId;
228 }
229
230 /**
231 * The child call-IDs if this call is a conference call. Returns an empty list if this is not
232 * a conference call or if the conference call contains no children.
Santos Cordon980acb92014-05-31 10:31:19 -0700233 */
234 public List<String> getChildCallIds() {
235 return mChildCallIds;
236 }
237
Santos Cordon7c7bc7f2014-07-28 18:15:48 -0700238 public List<String> getConferenceableCallIds() {
239 return mConferenceableCallIds;
240 }
241
Tyler Gunn8d83fa92014-07-01 11:31:21 -0700242 /**
Sailesh Nepale7ef59a2014-07-08 21:48:22 -0700243 * The status label and icon.
244 *
245 * @return Status hints.
246 */
247 public StatusHints getStatusHints() {
248 return mStatusHints;
249 }
250
Andrew Lee85f5d422014-07-11 17:22:03 -0700251 /**
252 * The video state.
253 * @return The video state of the call.
254 */
255 public int getVideoState() {
256 return mVideoState;
257 }
258
Nancy Chen10798dc2014-08-08 14:00:25 -0700259 /**
Santos Cordon6b7f9552015-05-27 17:21:45 -0700260 * Any extras associated with this call.
Nancy Chen10798dc2014-08-08 14:00:25 -0700261 *
262 * @return a bundle of extras
263 */
264 public Bundle getExtras() {
265 return mExtras;
266 }
267
Rekha Kumar07366812015-03-24 16:42:31 -0700268 /**
Santos Cordon6b7f9552015-05-27 17:21:45 -0700269 * Extras passed in as part of the original call intent.
270 *
271 * @return The intent extras.
272 */
273 public Bundle getIntentExtras() {
274 return mIntentExtras;
275 }
276
277 /**
Tyler Gunn75958422015-04-15 14:23:42 -0700278 * Indicates to the receiver of the {@link ParcelableCall} whether a change has occurred in the
279 * {@link android.telecom.InCallService.VideoCall} associated with this call. Since
280 * {@link #getVideoCall()} creates a new {@link VideoCallImpl}, it is useful to know whether
281 * the provider has changed (which can influence whether it is accessed).
282 *
283 * @return {@code true} if the video call changed, {@code false} otherwise.
284 */
285 public boolean isVideoCallProviderChanged() {
286 return mIsVideoCallProviderChanged;
287 }
288
Santos Cordon88b771d2014-07-19 13:10:40 -0700289 /** Responsible for creating ParcelableCall objects for deserialized Parcels. */
290 public static final Parcelable.Creator<ParcelableCall> CREATOR =
291 new Parcelable.Creator<ParcelableCall> () {
Sailesh Nepal60437932014-04-05 16:44:55 -0700292 @Override
Santos Cordon88b771d2014-07-19 13:10:40 -0700293 public ParcelableCall createFromParcel(Parcel source) {
294 ClassLoader classLoader = ParcelableCall.class.getClassLoader();
Sailesh Nepal60437932014-04-05 16:44:55 -0700295 String id = source.readString();
Ihab Awadb19a0bc2014-08-07 19:46:01 -0700296 int state = source.readInt();
Andrew Lee7f3d41f2014-09-11 17:33:16 -0700297 DisconnectCause disconnectCause = source.readParcelable(classLoader);
Ihab Awadc0677542014-06-10 13:29:47 -0700298 List<String> cannedSmsResponses = new ArrayList<>();
299 source.readList(cannedSmsResponses, classLoader);
Sailesh Nepal60437932014-04-05 16:44:55 -0700300 int capabilities = source.readInt();
Andrew Lee223ad142014-08-27 16:33:08 -0700301 int properties = source.readInt();
Sailesh Nepal60437932014-04-05 16:44:55 -0700302 long connectTimeMillis = source.readLong();
Sailesh Nepal60437932014-04-05 16:44:55 -0700303 Uri handle = source.readParcelable(classLoader);
Sailesh Nepal61203862014-07-11 14:50:13 -0700304 int handlePresentation = source.readInt();
305 String callerDisplayName = source.readString();
306 int callerDisplayNamePresentation = source.readInt();
Sailesh Nepal60437932014-04-05 16:44:55 -0700307 GatewayInfo gatewayInfo = source.readParcelable(classLoader);
Evan Charlton8c8a0622014-07-20 12:31:00 -0700308 PhoneAccountHandle accountHandle = source.readParcelable(classLoader);
Tyler Gunn75958422015-04-15 14:23:42 -0700309 boolean isVideoCallProviderChanged = source.readByte() == 1;
Ihab Awadb19a0bc2014-08-07 19:46:01 -0700310 IVideoProvider videoCallProvider =
311 IVideoProvider.Stub.asInterface(source.readStrongBinder());
Santos Cordon980acb92014-05-31 10:31:19 -0700312 String parentCallId = source.readString();
313 List<String> childCallIds = new ArrayList<>();
314 source.readList(childCallIds, classLoader);
Sailesh Nepale7ef59a2014-07-08 21:48:22 -0700315 StatusHints statusHints = source.readParcelable(classLoader);
Andrew Lee85f5d422014-07-11 17:22:03 -0700316 int videoState = source.readInt();
Santos Cordon7c7bc7f2014-07-28 18:15:48 -0700317 List<String> conferenceableCallIds = new ArrayList<>();
318 source.readList(conferenceableCallIds, classLoader);
Santos Cordon6b7f9552015-05-27 17:21:45 -0700319 Bundle intentExtras = source.readBundle(classLoader);
320 Bundle extras = source.readBundle(classLoader);
Christine Hallstrom2830ce92016-11-30 16:06:42 -0800321 int supportedAudioRoutes = source.readInt();
Hall Liu95d55872017-01-25 17:12:49 -0800322 boolean isRttCallChanged = source.readByte() == 1;
323 ParcelableRttCall rttCall = source.readParcelable(classLoader);
Andrew Lee7f3d41f2014-09-11 17:33:16 -0700324 return new ParcelableCall(
325 id,
326 state,
327 disconnectCause,
328 cannedSmsResponses,
329 capabilities,
330 properties,
Christine Hallstrom2830ce92016-11-30 16:06:42 -0800331 supportedAudioRoutes,
Andrew Lee7f3d41f2014-09-11 17:33:16 -0700332 connectTimeMillis,
333 handle,
334 handlePresentation,
335 callerDisplayName,
336 callerDisplayNamePresentation,
337 gatewayInfo,
338 accountHandle,
Tyler Gunn75958422015-04-15 14:23:42 -0700339 isVideoCallProviderChanged,
Andrew Lee7f3d41f2014-09-11 17:33:16 -0700340 videoCallProvider,
Hall Liu95d55872017-01-25 17:12:49 -0800341 isRttCallChanged,
342 rttCall,
Andrew Lee7f3d41f2014-09-11 17:33:16 -0700343 parentCallId,
344 childCallIds,
345 statusHints,
346 videoState,
347 conferenceableCallIds,
Santos Cordon6b7f9552015-05-27 17:21:45 -0700348 intentExtras,
Jay Shrauner8f988432015-04-16 12:52:19 -0700349 extras);
Sailesh Nepal60437932014-04-05 16:44:55 -0700350 }
351
352 @Override
Santos Cordon88b771d2014-07-19 13:10:40 -0700353 public ParcelableCall[] newArray(int size) {
354 return new ParcelableCall[size];
Sailesh Nepal60437932014-04-05 16:44:55 -0700355 }
356 };
357
358 /** {@inheritDoc} */
359 @Override
360 public int describeContents() {
361 return 0;
362 }
363
Santos Cordon88b771d2014-07-19 13:10:40 -0700364 /** Writes ParcelableCall object into a Parcel. */
Sailesh Nepal60437932014-04-05 16:44:55 -0700365 @Override
366 public void writeToParcel(Parcel destination, int flags) {
367 destination.writeString(mId);
Ihab Awadb19a0bc2014-08-07 19:46:01 -0700368 destination.writeInt(mState);
Andrew Lee7f3d41f2014-09-11 17:33:16 -0700369 destination.writeParcelable(mDisconnectCause, 0);
Ihab Awadc0677542014-06-10 13:29:47 -0700370 destination.writeList(mCannedSmsResponses);
Sailesh Nepal60437932014-04-05 16:44:55 -0700371 destination.writeInt(mCapabilities);
Andrew Lee223ad142014-08-27 16:33:08 -0700372 destination.writeInt(mProperties);
Sailesh Nepal60437932014-04-05 16:44:55 -0700373 destination.writeLong(mConnectTimeMillis);
374 destination.writeParcelable(mHandle, 0);
Sailesh Nepal61203862014-07-11 14:50:13 -0700375 destination.writeInt(mHandlePresentation);
376 destination.writeString(mCallerDisplayName);
377 destination.writeInt(mCallerDisplayNamePresentation);
Sailesh Nepal60437932014-04-05 16:44:55 -0700378 destination.writeParcelable(mGatewayInfo, 0);
Evan Charlton8c8a0622014-07-20 12:31:00 -0700379 destination.writeParcelable(mAccountHandle, 0);
Tyler Gunn75958422015-04-15 14:23:42 -0700380 destination.writeByte((byte) (mIsVideoCallProviderChanged ? 1 : 0));
Tyler Gunn807de8a2014-06-30 14:22:57 -0700381 destination.writeStrongBinder(
Andrew Lee50aca232014-07-22 16:41:54 -0700382 mVideoCallProvider != null ? mVideoCallProvider.asBinder() : null);
Santos Cordon980acb92014-05-31 10:31:19 -0700383 destination.writeString(mParentCallId);
384 destination.writeList(mChildCallIds);
Sailesh Nepale7ef59a2014-07-08 21:48:22 -0700385 destination.writeParcelable(mStatusHints, 0);
Andrew Lee85f5d422014-07-11 17:22:03 -0700386 destination.writeInt(mVideoState);
Santos Cordon7c7bc7f2014-07-28 18:15:48 -0700387 destination.writeList(mConferenceableCallIds);
Santos Cordon6b7f9552015-05-27 17:21:45 -0700388 destination.writeBundle(mIntentExtras);
389 destination.writeBundle(mExtras);
Christine Hallstrom2830ce92016-11-30 16:06:42 -0800390 destination.writeInt(mSupportedAudioRoutes);
Hall Liu95d55872017-01-25 17:12:49 -0800391 destination.writeByte((byte) (mIsRttCallChanged ? 1 : 0));
392 destination.writeParcelable(mRttCall, 0);
Sailesh Nepal60437932014-04-05 16:44:55 -0700393 }
Santos Cordonb6939982014-06-04 20:20:58 -0700394
395 @Override
396 public String toString() {
397 return String.format("[%s, parent:%s, children:%s]", mId, mParentCallId, mChildCallIds);
398 }
Sailesh Nepal60437932014-04-05 16:44:55 -0700399}