AudioService: fix overlapping speakerphone + Bluetooth SCO routing requests

VoIP apps sometimes send conflicting requests to route call audio
to both speaker phone and BT SCO. This can happen if the app does not
reset the speakerphone request properly before requesting BT SCO.

In this case we must make sure to cancel the oldest request so that the
correct routing is restored when the audio mode owner is updated.

Bug: 162527933
Bug: 161564483
Test: repro steps in bug
Test: regression tests with speakerphone and BT routes with major
VoIP apps.

Change-Id: I2d390a283822732474583ad655dbc760b0ba8c66
Merged-In: I2d390a283822732474583ad655dbc760b0ba8c66
(cherry picked from commit 7647273fe612476fba19d266e511b830af396990)
2 files changed