Handle ringback changes between call state changes.

There was an assumption baked into the framework that the vendor IMS
stack would ONLY report a media direction change when the call state
changes.  This means that on some devices/networks when the audio becomes
active/inactive between the call state changes we would not start or stop
the ringback.

Refactored the ringback code and am now invoking it from
ImsPhoneCallTracker#processCallStateChange when it is handling updates
where the state did not change.

Test: Verified ringback operation on live network.
Test: Added unit tests for mid-state ringback changes.
Fixes: 190578101
Change-Id: Ic35154a45e3d7a0a5f4e067ec5d55a4721fe943a
4 files changed