diff options
| author | 2020-04-21 01:45:38 +0000 | |
|---|---|---|
| committer | 2020-04-21 01:45:38 +0000 | |
| commit | 71c824f92bd1ec9326522d58ed1f8b2fb38c536e (patch) | |
| tree | 1322282e75d85f7c86b2252777a45605d7bcd77b | |
| parent | 26f65631b0b1b84c6a9bb31a6d87de5a6ffc0c9a (diff) | |
| parent | 1080cafec41b0064aeb659cde8333d659cc6a316 (diff) | |
Merge "Set the type of system routes" into rvc-dev
| -rw-r--r-- | services/core/java/com/android/server/media/BluetoothRouteProvider.java | 3 | ||||
| -rw-r--r-- | services/core/java/com/android/server/media/SystemMediaRoute2Provider.java | 20 |
2 files changed, 18 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/media/BluetoothRouteProvider.java b/services/core/java/com/android/server/media/BluetoothRouteProvider.java index 28f838044907..3cf22c85f924 100644 --- a/services/core/java/com/android/server/media/BluetoothRouteProvider.java +++ b/services/core/java/com/android/server/media/BluetoothRouteProvider.java @@ -215,7 +215,6 @@ class BluetoothRouteProvider { .setConnectionState(MediaRoute2Info.CONNECTION_STATE_DISCONNECTED) .setDescription(mContext.getResources().getText( R.string.bluetooth_a2dp_audio_route_name).toString()) - //TODO: Set type correctly (BLUETOOTH_A2DP or HEARING_AID) .setType(MediaRoute2Info.TYPE_BLUETOOTH_A2DP) .setVolumeHandling(MediaRoute2Info.PLAYBACK_VOLUME_VARIABLE) .build(); @@ -236,6 +235,8 @@ class BluetoothRouteProvider { // Update volume when the connection state is changed. MediaRoute2Info.Builder builder = new MediaRoute2Info.Builder(btRoute.route) .setConnectionState(state); + builder.setType(btRoute.connectedProfiles.get(BluetoothProfile.HEARING_AID, false) + ? MediaRoute2Info.TYPE_HEARING_AID : MediaRoute2Info.TYPE_BLUETOOTH_A2DP); if (state == MediaRoute2Info.CONNECTION_STATE_CONNECTED) { int maxVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); diff --git a/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java b/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java index 1345e3759d2f..41d7fff52a91 100644 --- a/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java +++ b/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java @@ -19,6 +19,11 @@ package com.android.server.media; import static android.media.MediaRoute2Info.FEATURE_LIVE_AUDIO; import static android.media.MediaRoute2Info.FEATURE_LIVE_VIDEO; import static android.media.MediaRoute2Info.TYPE_BUILTIN_SPEAKER; +import static android.media.MediaRoute2Info.TYPE_DOCK; +import static android.media.MediaRoute2Info.TYPE_HDMI; +import static android.media.MediaRoute2Info.TYPE_USB_DEVICE; +import static android.media.MediaRoute2Info.TYPE_WIRED_HEADPHONES; +import static android.media.MediaRoute2Info.TYPE_WIRED_HEADSET; import android.content.BroadcastReceiver; import android.content.ComponentName; @@ -194,19 +199,27 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { private void updateDeviceRoute(AudioRoutesInfo newRoutes) { int name = R.string.default_audio_route_name; + int type = TYPE_BUILTIN_SPEAKER; if (newRoutes != null) { mCurAudioRoutesInfo.mainType = newRoutes.mainType; - if ((newRoutes.mainType & AudioRoutesInfo.MAIN_HEADPHONES) != 0 - || (newRoutes.mainType & AudioRoutesInfo.MAIN_HEADSET) != 0) { + if ((newRoutes.mainType & AudioRoutesInfo.MAIN_HEADPHONES) != 0) { + type = TYPE_WIRED_HEADPHONES; + name = com.android.internal.R.string.default_audio_route_name_headphones; + } else if ((newRoutes.mainType & AudioRoutesInfo.MAIN_HEADSET) != 0) { + type = TYPE_WIRED_HEADSET; name = com.android.internal.R.string.default_audio_route_name_headphones; } else if ((newRoutes.mainType & AudioRoutesInfo.MAIN_DOCK_SPEAKERS) != 0) { + type = TYPE_DOCK; name = com.android.internal.R.string.default_audio_route_name_dock_speakers; } else if ((newRoutes.mainType & AudioRoutesInfo.MAIN_HDMI) != 0) { + type = TYPE_HDMI; name = com.android.internal.R.string.default_audio_route_name_hdmi; } else if ((newRoutes.mainType & AudioRoutesInfo.MAIN_USB) != 0) { + type = TYPE_USB_DEVICE; name = com.android.internal.R.string.default_audio_route_name_usb; } } + mDeviceRoute = new MediaRoute2Info.Builder( DEVICE_ROUTE_ID, mContext.getResources().getText(name).toString()) .setVolumeHandling(mAudioManager.isVolumeFixed() @@ -214,8 +227,7 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { : MediaRoute2Info.PLAYBACK_VOLUME_VARIABLE) .setVolumeMax(mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)) .setVolume(mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC)) - //TODO: Guess the exact type using AudioDevice - .setType(TYPE_BUILTIN_SPEAKER) + .setType(type) .addFeature(FEATURE_LIVE_AUDIO) .addFeature(FEATURE_LIVE_VIDEO) .setConnectionState(MediaRoute2Info.CONNECTION_STATE_CONNECTED) |