Revert "Disable selecting the default audio route when a BT route is avaiable"
am: fa6f70e225
Change-Id: Ie3ceb852d7b78eeb7f7492cafbda205f6f313398
This commit is contained in:
@@ -219,12 +219,26 @@ public class MediaRouter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (mBluetoothA2dpRoute != null) {
|
if (mBluetoothA2dpRoute != null) {
|
||||||
if (mSelectedRoute == mDefaultAudioVideo || mSelectedRoute == null) {
|
final boolean a2dpEnabled = isBluetoothA2dpOn();
|
||||||
|
if (mainType != AudioRoutesInfo.MAIN_SPEAKER &&
|
||||||
|
mSelectedRoute == mBluetoothA2dpRoute && !a2dpEnabled) {
|
||||||
|
selectRouteStatic(ROUTE_TYPE_LIVE_AUDIO, mDefaultAudioVideo, false);
|
||||||
|
} else if ((mSelectedRoute == mDefaultAudioVideo || mSelectedRoute == null) &&
|
||||||
|
a2dpEnabled) {
|
||||||
selectRouteStatic(ROUTE_TYPE_LIVE_AUDIO, mBluetoothA2dpRoute, false);
|
selectRouteStatic(ROUTE_TYPE_LIVE_AUDIO, mBluetoothA2dpRoute, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean isBluetoothA2dpOn() {
|
||||||
|
try {
|
||||||
|
return mAudioService.isBluetoothA2dpOn();
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
Log.e(TAG, "Error querying Bluetooth A2DP state", e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void updateDiscoveryRequest() {
|
void updateDiscoveryRequest() {
|
||||||
// What are we looking for today?
|
// What are we looking for today?
|
||||||
int routeTypes = 0;
|
int routeTypes = 0;
|
||||||
@@ -894,11 +908,6 @@ public class MediaRouter {
|
|||||||
static void selectRouteStatic(int types, @NonNull RouteInfo route, boolean explicit) {
|
static void selectRouteStatic(int types, @NonNull RouteInfo route, boolean explicit) {
|
||||||
Log.v(TAG, "Selecting route: " + route);
|
Log.v(TAG, "Selecting route: " + route);
|
||||||
assert(route != null);
|
assert(route != null);
|
||||||
if (route == sStatic.mDefaultAudioVideo && sStatic.mBluetoothA2dpRoute != null) {
|
|
||||||
Log.i(TAG, "Change the route to a BT route: " + sStatic.mBluetoothA2dpRoute
|
|
||||||
+ "\nDo not select the default route when a BT route is available.");
|
|
||||||
route = sStatic.mBluetoothA2dpRoute;
|
|
||||||
}
|
|
||||||
final RouteInfo oldRoute = sStatic.mSelectedRoute;
|
final RouteInfo oldRoute = sStatic.mSelectedRoute;
|
||||||
if (oldRoute == route) return;
|
if (oldRoute == route) return;
|
||||||
if (!route.matchesTypes(types)) {
|
if (!route.matchesTypes(types)) {
|
||||||
@@ -908,6 +917,16 @@ public class MediaRouter {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final RouteInfo btRoute = sStatic.mBluetoothA2dpRoute;
|
||||||
|
if (btRoute != null && (types & ROUTE_TYPE_LIVE_AUDIO) != 0 &&
|
||||||
|
(route == btRoute || route == sStatic.mDefaultAudioVideo)) {
|
||||||
|
try {
|
||||||
|
sStatic.mAudioService.setBluetoothA2dpOn(route == btRoute);
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
Log.e(TAG, "Error changing Bluetooth A2DP state", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
final WifiDisplay activeDisplay =
|
final WifiDisplay activeDisplay =
|
||||||
sStatic.mDisplayService.getWifiDisplayStatus().getActiveDisplay();
|
sStatic.mDisplayService.getWifiDisplayStatus().getActiveDisplay();
|
||||||
final boolean oldRouteHasAddress = oldRoute != null && oldRoute.mDeviceAddress != null;
|
final boolean oldRouteHasAddress = oldRoute != null && oldRoute.mDeviceAddress != null;
|
||||||
@@ -947,7 +966,7 @@ public class MediaRouter {
|
|||||||
static void selectDefaultRouteStatic() {
|
static void selectDefaultRouteStatic() {
|
||||||
// TODO: Be smarter about the route types here; this selects for all valid.
|
// TODO: Be smarter about the route types here; this selects for all valid.
|
||||||
if (sStatic.mSelectedRoute != sStatic.mBluetoothA2dpRoute
|
if (sStatic.mSelectedRoute != sStatic.mBluetoothA2dpRoute
|
||||||
&& sStatic.mBluetoothA2dpRoute != null) {
|
&& sStatic.mBluetoothA2dpRoute != null && sStatic.isBluetoothA2dpOn()) {
|
||||||
selectRouteStatic(ROUTE_TYPE_ANY, sStatic.mBluetoothA2dpRoute, false);
|
selectRouteStatic(ROUTE_TYPE_ANY, sStatic.mBluetoothA2dpRoute, false);
|
||||||
} else {
|
} else {
|
||||||
selectRouteStatic(ROUTE_TYPE_ANY, sStatic.mDefaultAudioVideo, false);
|
selectRouteStatic(ROUTE_TYPE_ANY, sStatic.mDefaultAudioVideo, false);
|
||||||
@@ -1279,7 +1298,12 @@ public class MediaRouter {
|
|||||||
selectedRoute == sStatic.mDefaultAudioVideo) {
|
selectedRoute == sStatic.mDefaultAudioVideo) {
|
||||||
dispatchRouteVolumeChanged(selectedRoute);
|
dispatchRouteVolumeChanged(selectedRoute);
|
||||||
} else if (sStatic.mBluetoothA2dpRoute != null) {
|
} else if (sStatic.mBluetoothA2dpRoute != null) {
|
||||||
dispatchRouteVolumeChanged(sStatic.mBluetoothA2dpRoute);
|
try {
|
||||||
|
dispatchRouteVolumeChanged(sStatic.mAudioService.isBluetoothA2dpOn() ?
|
||||||
|
sStatic.mBluetoothA2dpRoute : sStatic.mDefaultAudioVideo);
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
Log.e(TAG, "Error checking Bluetooth A2DP state to report volume change", e);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
dispatchRouteVolumeChanged(sStatic.mDefaultAudioVideo);
|
dispatchRouteVolumeChanged(sStatic.mDefaultAudioVideo);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user