Merge "HearingAid: Ignore A2DP suspend for HearingAid." into q-keystone-qcom-dev
diff --git a/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerStateMachine.java b/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerStateMachine.java
index ec85592..e0317f6 100644
--- a/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerStateMachine.java
+++ b/src/com/android/bluetooth/avrcpcontroller/AvrcpControllerStateMachine.java
@@ -117,6 +117,7 @@
boolean mRemoteControlConnected = false;
boolean mBrowsingConnected = false;
final BrowseTree mBrowseTree;
+ private boolean smActive = false;
private AvrcpPlayer mAddressedPlayer = new AvrcpPlayer();
private RemoteDevice mRemoteDevice;
private int mPreviousPercentageVol = -1;
@@ -151,6 +152,7 @@
addState(mConnected);
addState(mDisconnecting);
+ smActive = true;
mGetFolderList = new GetFolderList();
addState(mGetFolderList, mConnected);
@@ -228,7 +230,7 @@
}
synchronized void onBrowsingConnected() {
- if (mBrowsingConnected) return;
+ if (mBrowsingConnected || (!smActive)) return;
mService.sBrowseTree.mRootNode.addChild(mBrowseTree.mRootNode);
BluetoothMediaBrowserService.notifyChanged(mService
.sBrowseTree.mRootNode);
@@ -237,7 +239,7 @@
}
synchronized void onBrowsingDisconnected() {
- if (!mBrowsingConnected) return;
+ if (!mBrowsingConnected || (!smActive)) return;
mAddressedPlayer.setPlayStatus(PlaybackState.STATE_ERROR);
mAddressedPlayer.updateCurrentTrack(null);
if (mBrowseTree != null && mBrowseTree.mNowPlayingNode != null) {
@@ -799,6 +801,9 @@
// If the receiver was never registered unregister will throw an
// IllegalArgumentException.
}
+ synchronized(AvrcpControllerStateMachine.this) {
+ smActive = false;
+ }
// we should disacrd, all currently queuedup messages.
quitNow();
}
diff --git a/src/com/android/bluetooth/map/BluetoothMapMasInstance.java b/src/com/android/bluetooth/map/BluetoothMapMasInstance.java
index e4270b1..8e0b2d3 100644
--- a/src/com/android/bluetooth/map/BluetoothMapMasInstance.java
+++ b/src/com/android/bluetooth/map/BluetoothMapMasInstance.java
@@ -477,16 +477,17 @@
}
}
- public void setRemoteFeatureMask(int supportedFeatures, int remoteProfileVersion) {
- Log.d(mTag, "setRemoteFeatureMask supportedFeatures : "
+ public void setRemoteFeatureMask(int supportedFeatures, int remoteProfileVersion,
+ BluetoothDevice rd) {
+ if (D) Log.d(mTag, "setRemoteFeatureMask supportedFeatures "
+ Integer.toHexString(supportedFeatures) +", remoteProfileVersion: "
+ Integer.toHexString(remoteProfileVersion));
mPeerProfileVersion = remoteProfileVersion;
if (Utils.isPtsTestMode()) {
mRemoteFeatureMask =
SDP_MAP_MAS_FEATURES_ADV;
- } else if ((remoteProfileVersion > SDP_MAP_MAS_VERSION)
- && (!BluetoothMapFixes.isMapAdvDisabled())){
+ } else if ((remoteProfileVersion > SDP_MAP_MAS_VERSION_ADV)
+ && (!BluetoothMapFixes.isMapAdvDisabled() && BluetoothMapFixes.isRebonded(rd))){
mRemoteFeatureMask =
supportedFeatures & SDP_MAP_MAS_FEATURES_ADV;
} else {
diff --git a/src/com/android/bluetooth/map/BluetoothMapService.java b/src/com/android/bluetooth/map/BluetoothMapService.java
index 076916f..5c81376 100644
--- a/src/com/android/bluetooth/map/BluetoothMapService.java
+++ b/src/com/android/bluetooth/map/BluetoothMapService.java
@@ -1100,12 +1100,12 @@
mBluetoothMnsObexClient.setMnsRecord(mMnsRecord);
}
if (status != -1 && mMnsRecord != null) {
+ BluetoothMapFixes.showNotification(BluetoothMapService.this, remoteDevice);
for (int i = 0, c = mMasInstances.size(); i < c; i++) {
mMasInstances.valueAt(i)
.setRemoteFeatureMask(mMnsRecord.getSupportedFeatures(),
- mMnsRecord.getProfileVersion());
+ mMnsRecord.getProfileVersion(), remoteDevice);
}
- BluetoothMapFixes.showNotification(BluetoothMapService.this, remoteDevice);
}
if (mSdpSearchInitiated) {
mSdpSearchInitiated = false; // done searching