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
6 files changed