blob: 8b0211e4b9914b057b4bb28850d1059b150afe91 [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
Mathew Inwoode5bfa3e2018-08-01 11:26:20 +010019import android.annotation.UnsupportedAppUsage;
Sailesh Nepal60437932014-04-05 16:44:55 -070020import android.net.Uri;
Nancy Chen10798dc2014-08-08 14:00:25 -070021import android.os.Bundle;
Sailesh Nepal60437932014-04-05 16:44:55 -070022import android.os.Parcel;
23import android.os.Parcelable;
Andrew Lee5dc30752014-06-27 17:02:19 -070024import android.os.RemoteException;
Sailesh Nepal60437932014-04-05 16:44:55 -070025
Santos Cordon980acb92014-05-31 10:31:19 -070026import java.util.ArrayList;
Santos Cordon7c7bc7f2014-07-28 18:15:48 -070027import java.util.Collections;
Santos Cordon980acb92014-05-31 10:31:19 -070028import java.util.List;
Sailesh Nepal60437932014-04-05 16:44:55 -070029
Tyler Gunnef9f6f92014-09-12 22:16:17 -070030import com.android.internal.telecom.IVideoProvider;
Ihab Awadb19a0bc2014-08-07 19:46:01 -070031
Sailesh Nepal60437932014-04-05 16:44:55 -070032/**
Tyler Gunnef9f6f92014-09-12 22:16:17 -070033 * Information about a call that is used between InCallService and Telecom.
Santos Cordon88b771d2014-07-19 13:10:40 -070034 * @hide
Sailesh Nepal60437932014-04-05 16:44:55 -070035 */
Santos Cordon88b771d2014-07-19 13:10:40 -070036public final class ParcelableCall implements Parcelable {
Sailesh Nepal60437932014-04-05 16:44:55 -070037 private final String mId;
Ihab Awadb19a0bc2014-08-07 19:46:01 -070038 private final int mState;
Andrew Lee7f3d41f2014-09-11 17:33:16 -070039 private final DisconnectCause mDisconnectCause;
Ihab Awadc0677542014-06-10 13:29:47 -070040 private final List<String> mCannedSmsResponses;
Sailesh Nepal60437932014-04-05 16:44:55 -070041 private final int mCapabilities;
Andrew Lee223ad142014-08-27 16:33:08 -070042 private final int mProperties;
Christine Hallstrom2830ce92016-11-30 16:06:42 -080043 private final int mSupportedAudioRoutes;
Sailesh Nepal60437932014-04-05 16:44:55 -070044 private final long mConnectTimeMillis;
45 private final Uri mHandle;
Sailesh Nepal61203862014-07-11 14:50:13 -070046 private final int mHandlePresentation;
47 private final String mCallerDisplayName;
48 private final int mCallerDisplayNamePresentation;
Sailesh Nepal60437932014-04-05 16:44:55 -070049 private final GatewayInfo mGatewayInfo;
Evan Charlton8c8a0622014-07-20 12:31:00 -070050 private final PhoneAccountHandle mAccountHandle;
Tyler Gunn75958422015-04-15 14:23:42 -070051 private final boolean mIsVideoCallProviderChanged;
Ihab Awadb19a0bc2014-08-07 19:46:01 -070052 private final IVideoProvider mVideoCallProvider;
Tyler Gunn584ba6c2015-12-08 10:53:41 -080053 private VideoCallImpl mVideoCall;
Hall Liu95d55872017-01-25 17:12:49 -080054 private final boolean mIsRttCallChanged;
55 private final ParcelableRttCall mRttCall;
Santos Cordon980acb92014-05-31 10:31:19 -070056 private final String mParentCallId;
57 private final List<String> mChildCallIds;
Sailesh Nepale7ef59a2014-07-08 21:48:22 -070058 private final StatusHints mStatusHints;
Andrew Lee85f5d422014-07-11 17:22:03 -070059 private final int mVideoState;
Santos Cordon7c7bc7f2014-07-28 18:15:48 -070060 private final List<String> mConferenceableCallIds;
Santos Cordon6b7f9552015-05-27 17:21:45 -070061 private final Bundle mIntentExtras;
Nancy Chen10798dc2014-08-08 14:00:25 -070062 private final Bundle mExtras;
Tyler Gunnc0bf6de2017-03-17 11:27:09 -070063 private final long mCreationTimeMillis;
Santos Cordon980acb92014-05-31 10:31:19 -070064
Santos Cordon88b771d2014-07-19 13:10:40 -070065 public ParcelableCall(
Sailesh Nepal60437932014-04-05 16:44:55 -070066 String id,
Ihab Awadb19a0bc2014-08-07 19:46:01 -070067 int state,
Andrew Lee7f3d41f2014-09-11 17:33:16 -070068 DisconnectCause disconnectCause,
Ihab Awadc0677542014-06-10 13:29:47 -070069 List<String> cannedSmsResponses,
Sailesh Nepal60437932014-04-05 16:44:55 -070070 int capabilities,
Andrew Lee223ad142014-08-27 16:33:08 -070071 int properties,
Christine Hallstrom2830ce92016-11-30 16:06:42 -080072 int supportedAudioRoutes,
Sailesh Nepal60437932014-04-05 16:44:55 -070073 long connectTimeMillis,
74 Uri handle,
Sailesh Nepal61203862014-07-11 14:50:13 -070075 int handlePresentation,
76 String callerDisplayName,
77 int callerDisplayNamePresentation,
Sailesh Nepal60437932014-04-05 16:44:55 -070078 GatewayInfo gatewayInfo,
Evan Charlton8c8a0622014-07-20 12:31:00 -070079 PhoneAccountHandle accountHandle,
Tyler Gunn75958422015-04-15 14:23:42 -070080 boolean isVideoCallProviderChanged,
Ihab Awadb19a0bc2014-08-07 19:46:01 -070081 IVideoProvider videoCallProvider,
Hall Liu95d55872017-01-25 17:12:49 -080082 boolean isRttCallChanged,
83 ParcelableRttCall rttCall,
Santos Cordon980acb92014-05-31 10:31:19 -070084 String parentCallId,
Tyler Gunn8d83fa92014-07-01 11:31:21 -070085 List<String> childCallIds,
Andrew Lee85f5d422014-07-11 17:22:03 -070086 StatusHints statusHints,
Santos Cordon7c7bc7f2014-07-28 18:15:48 -070087 int videoState,
Nancy Chen10798dc2014-08-08 14:00:25 -070088 List<String> conferenceableCallIds,
Santos Cordon6b7f9552015-05-27 17:21:45 -070089 Bundle intentExtras,
Tyler Gunnc0bf6de2017-03-17 11:27:09 -070090 Bundle extras,
91 long creationTimeMillis) {
Sailesh Nepal60437932014-04-05 16:44:55 -070092 mId = id;
93 mState = state;
Andrew Lee7f3d41f2014-09-11 17:33:16 -070094 mDisconnectCause = disconnectCause;
Ihab Awadc0677542014-06-10 13:29:47 -070095 mCannedSmsResponses = cannedSmsResponses;
Sailesh Nepal60437932014-04-05 16:44:55 -070096 mCapabilities = capabilities;
Andrew Lee223ad142014-08-27 16:33:08 -070097 mProperties = properties;
Christine Hallstrom2830ce92016-11-30 16:06:42 -080098 mSupportedAudioRoutes = supportedAudioRoutes;
Sailesh Nepal60437932014-04-05 16:44:55 -070099 mConnectTimeMillis = connectTimeMillis;
100 mHandle = handle;
Sailesh Nepal61203862014-07-11 14:50:13 -0700101 mHandlePresentation = handlePresentation;
102 mCallerDisplayName = callerDisplayName;
103 mCallerDisplayNamePresentation = callerDisplayNamePresentation;
Sailesh Nepal60437932014-04-05 16:44:55 -0700104 mGatewayInfo = gatewayInfo;
Evan Charlton8c8a0622014-07-20 12:31:00 -0700105 mAccountHandle = accountHandle;
Tyler Gunn75958422015-04-15 14:23:42 -0700106 mIsVideoCallProviderChanged = isVideoCallProviderChanged;
Andrew Lee50aca232014-07-22 16:41:54 -0700107 mVideoCallProvider = videoCallProvider;
Hall Liu95d55872017-01-25 17:12:49 -0800108 mIsRttCallChanged = isRttCallChanged;
109 mRttCall = rttCall;
Santos Cordon980acb92014-05-31 10:31:19 -0700110 mParentCallId = parentCallId;
111 mChildCallIds = childCallIds;
Sailesh Nepale7ef59a2014-07-08 21:48:22 -0700112 mStatusHints = statusHints;
Andrew Lee85f5d422014-07-11 17:22:03 -0700113 mVideoState = videoState;
Santos Cordon7c7bc7f2014-07-28 18:15:48 -0700114 mConferenceableCallIds = Collections.unmodifiableList(conferenceableCallIds);
Santos Cordon6b7f9552015-05-27 17:21:45 -0700115 mIntentExtras = intentExtras;
Nancy Chen10798dc2014-08-08 14:00:25 -0700116 mExtras = extras;
Tyler Gunnc0bf6de2017-03-17 11:27:09 -0700117 mCreationTimeMillis = creationTimeMillis;
Sailesh Nepal60437932014-04-05 16:44:55 -0700118 }
119
120 /** The unique ID of the call. */
Mathew Inwoode5bfa3e2018-08-01 11:26:20 +0100121 @UnsupportedAppUsage
Sailesh Nepal60437932014-04-05 16:44:55 -0700122 public String getId() {
123 return mId;
124 }
125
126 /** The current state of the call. */
Ihab Awadb19a0bc2014-08-07 19:46:01 -0700127 public int getState() {
Sailesh Nepal60437932014-04-05 16:44:55 -0700128 return mState;
129 }
130
131 /**
Andrew Lee7f3d41f2014-09-11 17:33:16 -0700132 * Reason for disconnection, as described by {@link android.telecomm.DisconnectCause}. Valid
133 * when call state is {@link CallState#DISCONNECTED}.
Sailesh Nepal60437932014-04-05 16:44:55 -0700134 */
Mathew Inwoode5bfa3e2018-08-01 11:26:20 +0100135 @UnsupportedAppUsage
Andrew Lee7f3d41f2014-09-11 17:33:16 -0700136 public DisconnectCause getDisconnectCause() {
137 return mDisconnectCause;
Sailesh Nepal60437932014-04-05 16:44:55 -0700138 }
139
Ihab Awadc0677542014-06-10 13:29:47 -0700140 /**
141 * The set of possible text message responses when this call is incoming.
142 */
143 public List<String> getCannedSmsResponses() {
144 return mCannedSmsResponses;
145 }
146
Sailesh Nepal60437932014-04-05 16:44:55 -0700147 // Bit mask of actions a call supports, values are defined in {@link CallCapabilities}.
148 public int getCapabilities() {
149 return mCapabilities;
150 }
151
Andrew Lee223ad142014-08-27 16:33:08 -0700152 /** Bitmask of properties of the call. */
153 public int getProperties() { return mProperties; }
154
Christine Hallstrom2830ce92016-11-30 16:06:42 -0800155 /** Bitmask of supported routes of the call */
156 public int getSupportedAudioRoutes() {
157 return mSupportedAudioRoutes;
158 }
159
Sailesh Nepal60437932014-04-05 16:44:55 -0700160 /** The time that the call switched to the active state. */
Mathew Inwoode5bfa3e2018-08-01 11:26:20 +0100161 @UnsupportedAppUsage
Sailesh Nepal60437932014-04-05 16:44:55 -0700162 public long getConnectTimeMillis() {
163 return mConnectTimeMillis;
164 }
165
166 /** The endpoint to which the call is connected. */
Mathew Inwoode5bfa3e2018-08-01 11:26:20 +0100167 @UnsupportedAppUsage
Sailesh Nepal60437932014-04-05 16:44:55 -0700168 public Uri getHandle() {
169 return mHandle;
170 }
171
Nancy Chen9d568c02014-09-08 14:17:59 -0700172 /**
Tyler Gunnef9f6f92014-09-12 22:16:17 -0700173 * The presentation requirements for the handle. See {@link TelecomManager} for valid values.
Nancy Chen9d568c02014-09-08 14:17:59 -0700174 */
Sailesh Nepal61203862014-07-11 14:50:13 -0700175 public int getHandlePresentation() {
176 return mHandlePresentation;
177 }
178
179 /** The endpoint to which the call is connected. */
180 public String getCallerDisplayName() {
181 return mCallerDisplayName;
182 }
183
Nancy Chen9d568c02014-09-08 14:17:59 -0700184 /**
185 * The presentation requirements for the caller display name.
Tyler Gunnef9f6f92014-09-12 22:16:17 -0700186 * See {@link TelecomManager} for valid values.
Nancy Chen9d568c02014-09-08 14:17:59 -0700187 */
Sailesh Nepal61203862014-07-11 14:50:13 -0700188 public int getCallerDisplayNamePresentation() {
189 return mCallerDisplayNamePresentation;
190 }
191
Sailesh Nepal60437932014-04-05 16:44:55 -0700192 /** Gateway information for the call. */
193 public GatewayInfo getGatewayInfo() {
194 return mGatewayInfo;
195 }
196
Evan Charlton6eb262c2014-07-19 18:18:19 -0700197 /** PhoneAccountHandle information for the call. */
Evan Charlton8c8a0622014-07-20 12:31:00 -0700198 public PhoneAccountHandle getAccountHandle() {
199 return mAccountHandle;
Nancy Chen5ffbfcc2014-06-25 14:22:55 -0700200 }
201
Sailesh Nepal60437932014-04-05 16:44:55 -0700202 /**
Andrew Lee50aca232014-07-22 16:41:54 -0700203 * Returns an object for remotely communicating through the video call provider's binder.
Tyler Gunn159f35c2017-03-02 09:28:37 -0800204 *
205 * @param callingPackageName the package name of the calling InCallService.
206 * @param targetSdkVersion the target SDK version of the calling InCallService.
Andrew Lee50aca232014-07-22 16:41:54 -0700207 * @return The video call.
Andrew Lee5dc30752014-06-27 17:02:19 -0700208 */
Tyler Gunn159f35c2017-03-02 09:28:37 -0800209 public VideoCallImpl getVideoCallImpl(String callingPackageName, int targetSdkVersion) {
Andrew Lee50aca232014-07-22 16:41:54 -0700210 if (mVideoCall == null && mVideoCallProvider != null) {
Andrew Lee5dc30752014-06-27 17:02:19 -0700211 try {
Tyler Gunn159f35c2017-03-02 09:28:37 -0800212 mVideoCall = new VideoCallImpl(mVideoCallProvider, callingPackageName,
213 targetSdkVersion);
Andrew Lee5dc30752014-06-27 17:02:19 -0700214 } catch (RemoteException ignored) {
215 // Ignore RemoteException.
216 }
217 }
218
Andrew Lee50aca232014-07-22 16:41:54 -0700219 return mVideoCall;
Andrew Lee5dc30752014-06-27 17:02:19 -0700220 }
221
Hall Liu95d55872017-01-25 17:12:49 -0800222 public boolean getIsRttCallChanged() {
223 return mIsRttCallChanged;
224 }
225
226 /**
227 * RTT communication channel information
228 * @return The ParcelableRttCall
229 */
230 public ParcelableRttCall getParcelableRttCall() {
231 return mRttCall;
232 }
233
Andrew Lee5dc30752014-06-27 17:02:19 -0700234 /**
Santos Cordon980acb92014-05-31 10:31:19 -0700235 * The conference call to which this call is conferenced. Null if not conferenced.
Santos Cordon980acb92014-05-31 10:31:19 -0700236 */
237 public String getParentCallId() {
238 return mParentCallId;
239 }
240
241 /**
242 * The child call-IDs if this call is a conference call. Returns an empty list if this is not
243 * a conference call or if the conference call contains no children.
Santos Cordon980acb92014-05-31 10:31:19 -0700244 */
245 public List<String> getChildCallIds() {
246 return mChildCallIds;
247 }
248
Santos Cordon7c7bc7f2014-07-28 18:15:48 -0700249 public List<String> getConferenceableCallIds() {
250 return mConferenceableCallIds;
251 }
252
Tyler Gunn8d83fa92014-07-01 11:31:21 -0700253 /**
Sailesh Nepale7ef59a2014-07-08 21:48:22 -0700254 * The status label and icon.
255 *
256 * @return Status hints.
257 */
258 public StatusHints getStatusHints() {
259 return mStatusHints;
260 }
261
Andrew Lee85f5d422014-07-11 17:22:03 -0700262 /**
263 * The video state.
264 * @return The video state of the call.
265 */
266 public int getVideoState() {
267 return mVideoState;
268 }
269
Nancy Chen10798dc2014-08-08 14:00:25 -0700270 /**
Santos Cordon6b7f9552015-05-27 17:21:45 -0700271 * Any extras associated with this call.
Nancy Chen10798dc2014-08-08 14:00:25 -0700272 *
273 * @return a bundle of extras
274 */
275 public Bundle getExtras() {
276 return mExtras;
277 }
278
Rekha Kumar07366812015-03-24 16:42:31 -0700279 /**
Santos Cordon6b7f9552015-05-27 17:21:45 -0700280 * Extras passed in as part of the original call intent.
281 *
282 * @return The intent extras.
283 */
284 public Bundle getIntentExtras() {
285 return mIntentExtras;
286 }
287
288 /**
Tyler Gunn75958422015-04-15 14:23:42 -0700289 * Indicates to the receiver of the {@link ParcelableCall} whether a change has occurred in the
290 * {@link android.telecom.InCallService.VideoCall} associated with this call. Since
291 * {@link #getVideoCall()} creates a new {@link VideoCallImpl}, it is useful to know whether
292 * the provider has changed (which can influence whether it is accessed).
293 *
294 * @return {@code true} if the video call changed, {@code false} otherwise.
295 */
296 public boolean isVideoCallProviderChanged() {
297 return mIsVideoCallProviderChanged;
298 }
299
Tyler Gunnc0bf6de2017-03-17 11:27:09 -0700300 /**
301 * @return The time the call was created, in milliseconds since the epoch.
302 */
303 public long getCreationTimeMillis() {
304 return mCreationTimeMillis;
305 }
306
Santos Cordon88b771d2014-07-19 13:10:40 -0700307 /** Responsible for creating ParcelableCall objects for deserialized Parcels. */
Mathew Inwoode5bfa3e2018-08-01 11:26:20 +0100308 @UnsupportedAppUsage
Santos Cordon88b771d2014-07-19 13:10:40 -0700309 public static final Parcelable.Creator<ParcelableCall> CREATOR =
310 new Parcelable.Creator<ParcelableCall> () {
Sailesh Nepal60437932014-04-05 16:44:55 -0700311 @Override
Santos Cordon88b771d2014-07-19 13:10:40 -0700312 public ParcelableCall createFromParcel(Parcel source) {
313 ClassLoader classLoader = ParcelableCall.class.getClassLoader();
Sailesh Nepal60437932014-04-05 16:44:55 -0700314 String id = source.readString();
Ihab Awadb19a0bc2014-08-07 19:46:01 -0700315 int state = source.readInt();
Andrew Lee7f3d41f2014-09-11 17:33:16 -0700316 DisconnectCause disconnectCause = source.readParcelable(classLoader);
Ihab Awadc0677542014-06-10 13:29:47 -0700317 List<String> cannedSmsResponses = new ArrayList<>();
318 source.readList(cannedSmsResponses, classLoader);
Sailesh Nepal60437932014-04-05 16:44:55 -0700319 int capabilities = source.readInt();
Andrew Lee223ad142014-08-27 16:33:08 -0700320 int properties = source.readInt();
Sailesh Nepal60437932014-04-05 16:44:55 -0700321 long connectTimeMillis = source.readLong();
Sailesh Nepal60437932014-04-05 16:44:55 -0700322 Uri handle = source.readParcelable(classLoader);
Sailesh Nepal61203862014-07-11 14:50:13 -0700323 int handlePresentation = source.readInt();
324 String callerDisplayName = source.readString();
325 int callerDisplayNamePresentation = source.readInt();
Sailesh Nepal60437932014-04-05 16:44:55 -0700326 GatewayInfo gatewayInfo = source.readParcelable(classLoader);
Evan Charlton8c8a0622014-07-20 12:31:00 -0700327 PhoneAccountHandle accountHandle = source.readParcelable(classLoader);
Tyler Gunn75958422015-04-15 14:23:42 -0700328 boolean isVideoCallProviderChanged = source.readByte() == 1;
Ihab Awadb19a0bc2014-08-07 19:46:01 -0700329 IVideoProvider videoCallProvider =
330 IVideoProvider.Stub.asInterface(source.readStrongBinder());
Santos Cordon980acb92014-05-31 10:31:19 -0700331 String parentCallId = source.readString();
332 List<String> childCallIds = new ArrayList<>();
333 source.readList(childCallIds, classLoader);
Sailesh Nepale7ef59a2014-07-08 21:48:22 -0700334 StatusHints statusHints = source.readParcelable(classLoader);
Andrew Lee85f5d422014-07-11 17:22:03 -0700335 int videoState = source.readInt();
Santos Cordon7c7bc7f2014-07-28 18:15:48 -0700336 List<String> conferenceableCallIds = new ArrayList<>();
337 source.readList(conferenceableCallIds, classLoader);
Santos Cordon6b7f9552015-05-27 17:21:45 -0700338 Bundle intentExtras = source.readBundle(classLoader);
339 Bundle extras = source.readBundle(classLoader);
Christine Hallstrom2830ce92016-11-30 16:06:42 -0800340 int supportedAudioRoutes = source.readInt();
Hall Liu95d55872017-01-25 17:12:49 -0800341 boolean isRttCallChanged = source.readByte() == 1;
342 ParcelableRttCall rttCall = source.readParcelable(classLoader);
Tyler Gunnc0bf6de2017-03-17 11:27:09 -0700343 long creationTimeMillis = source.readLong();
Andrew Lee7f3d41f2014-09-11 17:33:16 -0700344 return new ParcelableCall(
345 id,
346 state,
347 disconnectCause,
348 cannedSmsResponses,
349 capabilities,
350 properties,
Christine Hallstrom2830ce92016-11-30 16:06:42 -0800351 supportedAudioRoutes,
Andrew Lee7f3d41f2014-09-11 17:33:16 -0700352 connectTimeMillis,
353 handle,
354 handlePresentation,
355 callerDisplayName,
356 callerDisplayNamePresentation,
357 gatewayInfo,
358 accountHandle,
Tyler Gunn75958422015-04-15 14:23:42 -0700359 isVideoCallProviderChanged,
Andrew Lee7f3d41f2014-09-11 17:33:16 -0700360 videoCallProvider,
Hall Liu95d55872017-01-25 17:12:49 -0800361 isRttCallChanged,
362 rttCall,
Andrew Lee7f3d41f2014-09-11 17:33:16 -0700363 parentCallId,
364 childCallIds,
365 statusHints,
366 videoState,
367 conferenceableCallIds,
Santos Cordon6b7f9552015-05-27 17:21:45 -0700368 intentExtras,
Tyler Gunnc0bf6de2017-03-17 11:27:09 -0700369 extras,
370 creationTimeMillis);
Sailesh Nepal60437932014-04-05 16:44:55 -0700371 }
372
373 @Override
Santos Cordon88b771d2014-07-19 13:10:40 -0700374 public ParcelableCall[] newArray(int size) {
375 return new ParcelableCall[size];
Sailesh Nepal60437932014-04-05 16:44:55 -0700376 }
377 };
378
379 /** {@inheritDoc} */
380 @Override
381 public int describeContents() {
382 return 0;
383 }
384
Santos Cordon88b771d2014-07-19 13:10:40 -0700385 /** Writes ParcelableCall object into a Parcel. */
Sailesh Nepal60437932014-04-05 16:44:55 -0700386 @Override
387 public void writeToParcel(Parcel destination, int flags) {
388 destination.writeString(mId);
Ihab Awadb19a0bc2014-08-07 19:46:01 -0700389 destination.writeInt(mState);
Andrew Lee7f3d41f2014-09-11 17:33:16 -0700390 destination.writeParcelable(mDisconnectCause, 0);
Ihab Awadc0677542014-06-10 13:29:47 -0700391 destination.writeList(mCannedSmsResponses);
Sailesh Nepal60437932014-04-05 16:44:55 -0700392 destination.writeInt(mCapabilities);
Andrew Lee223ad142014-08-27 16:33:08 -0700393 destination.writeInt(mProperties);
Sailesh Nepal60437932014-04-05 16:44:55 -0700394 destination.writeLong(mConnectTimeMillis);
395 destination.writeParcelable(mHandle, 0);
Sailesh Nepal61203862014-07-11 14:50:13 -0700396 destination.writeInt(mHandlePresentation);
397 destination.writeString(mCallerDisplayName);
398 destination.writeInt(mCallerDisplayNamePresentation);
Sailesh Nepal60437932014-04-05 16:44:55 -0700399 destination.writeParcelable(mGatewayInfo, 0);
Evan Charlton8c8a0622014-07-20 12:31:00 -0700400 destination.writeParcelable(mAccountHandle, 0);
Tyler Gunn75958422015-04-15 14:23:42 -0700401 destination.writeByte((byte) (mIsVideoCallProviderChanged ? 1 : 0));
Tyler Gunn807de8a2014-06-30 14:22:57 -0700402 destination.writeStrongBinder(
Andrew Lee50aca232014-07-22 16:41:54 -0700403 mVideoCallProvider != null ? mVideoCallProvider.asBinder() : null);
Santos Cordon980acb92014-05-31 10:31:19 -0700404 destination.writeString(mParentCallId);
405 destination.writeList(mChildCallIds);
Sailesh Nepale7ef59a2014-07-08 21:48:22 -0700406 destination.writeParcelable(mStatusHints, 0);
Andrew Lee85f5d422014-07-11 17:22:03 -0700407 destination.writeInt(mVideoState);
Santos Cordon7c7bc7f2014-07-28 18:15:48 -0700408 destination.writeList(mConferenceableCallIds);
Santos Cordon6b7f9552015-05-27 17:21:45 -0700409 destination.writeBundle(mIntentExtras);
410 destination.writeBundle(mExtras);
Christine Hallstrom2830ce92016-11-30 16:06:42 -0800411 destination.writeInt(mSupportedAudioRoutes);
Hall Liu95d55872017-01-25 17:12:49 -0800412 destination.writeByte((byte) (mIsRttCallChanged ? 1 : 0));
413 destination.writeParcelable(mRttCall, 0);
Tyler Gunnc0bf6de2017-03-17 11:27:09 -0700414 destination.writeLong(mCreationTimeMillis);
Sailesh Nepal60437932014-04-05 16:44:55 -0700415 }
Santos Cordonb6939982014-06-04 20:20:58 -0700416
417 @Override
418 public String toString() {
419 return String.format("[%s, parent:%s, children:%s]", mId, mParentCallId, mChildCallIds);
420 }
Sailesh Nepal60437932014-04-05 16:44:55 -0700421}