summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHyundo Moon <hdmoon@google.com>2021-10-20 02:27:48 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-10-20 02:27:48 +0000
commit5a9ab8d69aab3255b47672b98c4f2445bdc2edaf (patch)
tree0bc26cd3691b9c23e60185663af5002e7384fced
parenta18b8a827e41fb7f48143ee4aa9346ff66adfb3a (diff)
parent2c7ec2cbf5154e53c7d9aa52ac1214ff4a80a0f6 (diff)
Merge "MediaRouter: Route setBluetoothA2dpOn() via MediaRouterService" into sc-qpr1-dev am: 2c7ec2cbf5
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16044773 Change-Id: I017be1b10677f78ee7f5b290a13eab376c4e0615
-rw-r--r--media/java/android/media/IMediaRouterService.aidl1
-rw-r--r--media/java/android/media/MediaRouter.java3
-rw-r--r--services/core/java/com/android/server/media/MediaRouterService.java19
3 files changed, 22 insertions, 1 deletions
diff --git a/media/java/android/media/IMediaRouterService.aidl b/media/java/android/media/IMediaRouterService.aidl
index 48289ecde9e0..25b582d2fc8d 100644
--- a/media/java/android/media/IMediaRouterService.aidl
+++ b/media/java/android/media/IMediaRouterService.aidl
@@ -39,6 +39,7 @@ interface IMediaRouterService {
MediaRouterClientState getState(IMediaRouterClient client);
boolean isPlaybackActive(IMediaRouterClient client);
+ void setBluetoothA2dpOn(IMediaRouterClient client, boolean on);
void setDiscoveryRequest(IMediaRouterClient client, int routeTypes, boolean activeScan);
void setSelectedRoute(IMediaRouterClient client, String routeId, boolean explicit);
void requestSetVolume(IMediaRouterClient client, String routeId, int volume);
diff --git a/media/java/android/media/MediaRouter.java b/media/java/android/media/MediaRouter.java
index 345d9b27c8a8..748ae52d6c0c 100644
--- a/media/java/android/media/MediaRouter.java
+++ b/media/java/android/media/MediaRouter.java
@@ -1087,7 +1087,8 @@ public class MediaRouter {
&& (types & ROUTE_TYPE_LIVE_AUDIO) != 0
&& (route.isBluetooth() || route.isDefault())) {
try {
- sStatic.mAudioService.setBluetoothA2dpOn(route.isBluetooth());
+ sStatic.mMediaRouterService.setBluetoothA2dpOn(sStatic.mClient,
+ route.isBluetooth());
} catch (RemoteException e) {
Log.e(TAG, "Error changing Bluetooth A2DP state", e);
}
diff --git a/services/core/java/com/android/server/media/MediaRouterService.java b/services/core/java/com/android/server/media/MediaRouterService.java
index 9f02c3caa388..9be618cb7add 100644
--- a/services/core/java/com/android/server/media/MediaRouterService.java
+++ b/services/core/java/com/android/server/media/MediaRouterService.java
@@ -338,6 +338,25 @@ public final class MediaRouterService extends IMediaRouterService.Stub
// Binder call
@Override
+ public void setBluetoothA2dpOn(IMediaRouterClient client, boolean on) {
+ if (client == null) {
+ throw new IllegalArgumentException("client must not be null");
+ }
+
+ final long token = Binder.clearCallingIdentity();
+ try {
+ synchronized (mLock) {
+ mAudioService.setBluetoothA2dpOn(on);
+ }
+ } catch (RemoteException ex) {
+ Slog.w(TAG, "RemoteException while calling setBluetoothA2dpOn. on=" + on);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ // Binder call
+ @Override
public void setDiscoveryRequest(IMediaRouterClient client,
int routeTypes, boolean activeScan) {
if (client == null) {