Loading
Ensure ParcelableCall instances are deep copied for local binders.
There is now a permissions related InCallService running in the system server. We were seeing concurrent modification exceptions when creating calls in that ICS. This is due to the fact that the ICS running in the system service does not parcel and unparcel the ParcelableCall that is sent to the system service ICS (this is just how binders work). As a result, the Call extras are passed by reference into the system service ICS, which makes them subject to concurrent modification issues. To fix this we ensure that if the destination binder is local we will make a deep copy of the parcelable call and send that to avoid concurrency issues. Test: Manual testing to verify parcel/unparcel behavior. Test: Run unit tests. Flag: NONE bugfix. Fixes: 405009580 Change-Id: If20ce4dee2b3528f4d4e0d7046ae375153d01bb5