DSDA: Cleanup outgoing ECC logic
First of, this CL addresses two bug fixes for conference calling + ECC
where we were disconnecting the child call during the bulk disconnect
operation. There's no need to do this and we can just disconnect the
host call.
Second, this CL also addresses some minor bugs and caveats found during
implementation. For non-holdable sims (VZW), we will now hold the VZW
call when placing an emergency call. Before, we were just disconnecting
the calls but due to how hold is handled on a single sim (for
non-holdable case), the swap operation will allow this to work
seamlessly. The other fix is around auto-unholding the non-holdable held
call in a single sim scenario. Due to the waiting performed on the
disconnect operations, it's possible that the held call is unheld while
we're processing the outgoing emergency call which can result in two
active calls. Now, we will skip this auto-unhold when we're placing an
outgoing (emergency) call. Note that once the outgoing call is placed or
fails, we will rerun the auto unhold logic and the held call will
successfully be unheld at that point.
Lastly, this CL performs a cleanup on the
makeRoomForOutgoingEmergencyCall logic. There are many clear assumptions
that can be made about the state of the calls at certain points in the
method which allows us to remove a lot of redundant code and makes this
method more readable.
Bug: 403620519
Flag: com.android.server.telecom.flags.enable_call_sequencing
Test: atest CtsTelecomCujTestCases
Test: Manual verification with the conference calling cases from the
bugs
Test: Manual verification with the two call scenario for different sim
combinations
Change-Id: I6a2fb3b4f36c6c33500d2cbab72183e2040b31a8
3 files changed