Avoid blocking outgoing binder call for setQueue

There has been a blocking binder call out of system_server for
MediaSession#setQueue because ParceledListSlice internally creates
another binder on the caller side and calls the binder from callee
if the list is too large to fit in a single IPC transaction.

It introduces ParcelableListBinder to do multiple transactions in the
same direction, so that the binder call doesn't block system_server.

Bug: 147703076
Test: atest CtsMediaTestCases:android.media.cts.MediaSessionTest
Change-Id: I08222b2320745f74d24eaf041ce8764f0f3e3d11
2 files changed