Merge "Bump mms whitelist time up to 1 minute." into mnc-dev
diff --git a/core/java/android/bluetooth/BluetoothDevice.java b/core/java/android/bluetooth/BluetoothDevice.java
index c96fe71e..d27dfa0 100644
--- a/core/java/android/bluetooth/BluetoothDevice.java
+++ b/core/java/android/bluetooth/BluetoothDevice.java
@@ -92,7 +92,8 @@
      * <p>Always contains the extra fields {@link #EXTRA_DEVICE} and {@link
      * #EXTRA_CLASS}. Can contain the extra fields {@link #EXTRA_NAME} and/or
      * {@link #EXTRA_RSSI} if they are available.
-     * <p>Requires {@link android.Manifest.permission#BLUETOOTH} to receive.
+     * <p>Requires {@link android.Manifest.permission#BLUETOOTH} and
+     * {@link android.Manifest.permission#ACCESS_COARSE_LOCATION} to receive.
      */
      // TODO: Change API to not broadcast RSSI if not available (incoming connection)
     @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java
index 3bf8129..5290cac 100644
--- a/media/java/android/media/AudioManager.java
+++ b/media/java/android/media/AudioManager.java
@@ -3859,8 +3859,8 @@
      */
     public void registerAudioDeviceCallback(AudioDeviceCallback callback,
             android.os.Handler handler) {
-        if (callback != null && !mDeviceCallbacks.containsKey(callback)) {
-            synchronized (mDeviceCallbacks) {
+        synchronized (mDeviceCallbacks) {
+            if (callback != null && !mDeviceCallbacks.containsKey(callback)) {
                 if (mDeviceCallbacks.size() == 0) {
                     if (mPortListener == null) {
                         mPortListener = new OnAmPortUpdateListener();
@@ -3924,21 +3924,20 @@
                     calcListDeltas(current_ports, mPreviousPorts, GET_DEVICES_ALL);
 
             if (added_devices.length != 0 || removed_devices.length != 0) {
-                Collection<NativeEventHandlerDelegate> values;
                 synchronized (mDeviceCallbacks) {
-                    values = mDeviceCallbacks.values();
-                }
-                for (NativeEventHandlerDelegate delegate : values) {
-                    handler = delegate.getHandler();
-                    if (handler != null) {
-                        if (added_devices.length != 0) {
-                            handler.sendMessage(
-                                Message.obtain(handler,MSG_DEVICES_DEVICES_ADDED, added_devices));
-                        }
-                        if (removed_devices.length != 0) {
-                            handler.sendMessage(
-                                Message.obtain(handler,MSG_DEVICES_DEVICES_REMOVED,
-                                               removed_devices));
+                    for (int i = 0; i < mDeviceCallbacks.size(); i++) {
+                        handler = mDeviceCallbacks.valueAt(i).getHandler();
+                        if (handler != null) {
+                            if (added_devices.length != 0) {
+                                handler.sendMessage(Message.obtain(handler,
+                                                                   MSG_DEVICES_DEVICES_ADDED,
+                                                                   added_devices));
+                            }
+                            if (removed_devices.length != 0) {
+                                handler.sendMessage(Message.obtain(handler,
+                                                                   MSG_DEVICES_DEVICES_REMOVED,
+                                                                   removed_devices));
+                            }
                         }
                     }
                 }