Ensure DISCONNECTING state is passed to the InCallService on local disc.
When a local disconnect request is requested from an InCallService, the call is effectively in a DISCONNECTING state. This was not being explicitly communicated to the InCallService, however, and instead it was relying on the fact that other call updates would occur causing the InCallService to be updated. This CL explicitly invokes the onCallStateChanged callback in CallsManager to ensure that the DISCONNECTING state is reported to the ICS immediately should there be no intermediate call changes which would cause such an update to occur. Also, moved the logic for determining the "parceled call state" into the com.android.server.telecom.Call so that it can be used in logging to ensure Telecom logs more accurately report the call state the ICS will see. Also, updated a CallAudioManager log message reported when an invalid audio route is specified; moved it to warning level and made it more explicitly report that the log is due to an error in an InCallService (I see this reported a lot as a root cause for bugs when it is completely unrelated). Test: Manual testing to verify disconnecting state passed immediately to IncallService Test: Add unit test to ensure disconnecting state will be passed to the InCallController immediately. Fixes: 155109531 Change-Id: I94d24182ee82679fb918244c9e3042dfce2f383a
Loading
Please register or sign in to comment