Associate calls with profile user.
When a secondary/guest user receives an incoming call and then places an outgoing call on top of it, the incoming call should be held and the outgoing call made active. However, due to the call user association logic that was introduced in par with work profile support in U, note that the associated user for outgoing calls will be the initiating user while for incoming calls, this is derived from the target phone account handle. Hence, the user association for the MT and MO call would be different when using an unassociated sim to call. There are no issues in the initial binding with the 1st call but when we bind the 2nd call to the ICS, we end up resetting the InCallAdapter because no associated ICS were found for the incoming call. This, inadvertently, disregards the initial binding so subsequent call updates sent on the incoming call get ignored. We can disregard the request to reset the adapter if it has already been set, though this is not a complete solution. As is, because the services aren't considered connected for the MO call initially, Telecom will try to reconnect to the service, where we will send all active calls to the ICS (InCallController#onConnected). We should not be hitting this part of the call flow and should instead add the MO call directly to the available service (InCallService#addCall), as is done in InCallController#onCallAdded. We could copy the reference to the service available in the MT user over to the MO user. Alternatively, we can have it so that the user association for MT calls is dependent on whether the phone account has the multi user capability, in which case, we will associate the user of the call with the current user. If we're dealing with a SIM account, then the user association will continue to use the phone account user handle. This CL implements the latter approach as it offers a more robust solution to the problem and allows the sim user association on phone accounts to be respected in incoming calls if it's not a multi-user account. In the case of unassociated sims, it makes sense to associate the calls with the current user instead. Bug: 294699269 Bug: 308856446 Test: Manual Test: New unit test to verify that call updates are persevered when MO/MT call are placed from the secondary/guest user. A unit test to verify that the user to ICS connection mappings are properly removed in multi user scenarios. Test: atest TelecomUnitTests Change-Id: Icd233f8f34a800b7ca953628e1a87a8fddb5ab9b
Loading