Snap for 6213256 from 32a3ed1253b59607f2f613a130c6710d2bdf81ef to q-keystone-qcom-release

Change-Id: I18b4bc3555b5fb8a78a7f23c6e092b5bf00068f8
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