Move asnyc call audio tasks to single thread.

Currently, all outbound invocations to AudioManager are done using the
existing async task executor, which is a cached thread pool, making it
possible that the sequential order of requests are not adhered to. In
the associated bug, we found that invocations made to turn the speaker
phone on and then back on were received by AudioManager as a request to
first set the communication device for the speaker phone and then clear
it right after. Moving the invocations out into a single thread should
ensure that the ordering of the requests is preserved.

Fixes: 283319571
Test: atest TelecomUnitTests
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:8f6b246ef7e4beed52e232e206629ef2540f6986)
Merged-In: I16f1b1407ee75abf7115047b088115ebe385323d
Change-Id: I16f1b1407ee75abf7115047b088115ebe385323d
5 files changed