diff options
author | Hyundo Moon <hdmoon@google.com> | 2021-10-20 02:27:48 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-10-20 02:27:48 +0000 |
commit | 5a9ab8d69aab3255b47672b98c4f2445bdc2edaf (patch) | |
tree | 0bc26cd3691b9c23e60185663af5002e7384fced | |
parent | a18b8a827e41fb7f48143ee4aa9346ff66adfb3a (diff) | |
parent | 2c7ec2cbf5154e53c7d9aa52ac1214ff4a80a0f6 (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.aidl | 1 | ||||
-rw-r--r-- | media/java/android/media/MediaRouter.java | 3 | ||||
-rw-r--r-- | services/core/java/com/android/server/media/MediaRouterService.java | 19 |
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) { |