Merge "Filters docs: removes references to forward-locking Bug 3055286" into ics-mr0
diff --git a/Android.mk b/Android.mk
index 586eb4a..a748b7b 100644
--- a/Android.mk
+++ b/Android.mk
@@ -412,6 +412,8 @@
 		            resources/samples/BackupRestore "Backup and Restore" \
 		-samplecode $(sample_dir)/BluetoothChat \
 		            resources/samples/BluetoothChat "Bluetooth Chat" \
+		-samplecode $(sample_dir)/BluetoothHDP \
+		            resources/samples/BluetoothHDP "Bluetooth HDP Demo" \
 		-samplecode $(sample_dir)/BusinessCard \
 		            resources/samples/BusinessCard "Business Card" \
 		-samplecode $(sample_dir)/ContactManager \
diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java
index ea5c3db..d971652 100644
--- a/core/java/android/bluetooth/BluetoothAdapter.java
+++ b/core/java/android/bluetooth/BluetoothAdapter.java
@@ -533,6 +533,7 @@
      * @hide
      */
     public ParcelUuid[] getUuids() {
+        if (getState() != STATE_ON) return null;
         try {
             return mService.getUuids();
         } catch (RemoteException e) {Log.e(TAG, "", e);}
diff --git a/core/java/android/server/BluetoothService.java b/core/java/android/server/BluetoothService.java
index 9ca5847..5ea8e2a 100755
--- a/core/java/android/server/BluetoothService.java
+++ b/core/java/android/server/BluetoothService.java
@@ -809,7 +809,7 @@
         }
     }
 
-    /*package*/ synchronized String getProperty(String name, boolean checkState) {
+    /*package*/ String getProperty(String name, boolean checkState) {
         // If checkState is false, check if the event loop is running.
         // before making the call to Bluez
         if (checkState) {
@@ -853,14 +853,14 @@
         return getProperty("Name", false);
     }
 
-    public synchronized ParcelUuid[] getUuids() {
+    public ParcelUuid[] getUuids() {
         mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission");
         String value =  getProperty("UUIDs", true);
         if (value == null) return null;
         return convertStringToParcelUuid(value);
     }
 
-    private synchronized ParcelUuid[] convertStringToParcelUuid(String value) {
+    private ParcelUuid[] convertStringToParcelUuid(String value) {
         String[] uuidStrings = null;
         // The UUIDs are stored as a "," separated string.
         uuidStrings = value.split(",");
@@ -933,7 +933,7 @@
      * @return The discoverability window of the device, in seconds.  A negative
      *         value indicates an error.
      */
-    public synchronized int getDiscoverableTimeout() {
+    public int getDiscoverableTimeout() {
         mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission");
         String timeout = getProperty("DiscoverableTimeout", true);
         if (timeout != null)
@@ -942,7 +942,7 @@
             return -1;
     }
 
-    public synchronized int getScanMode() {
+    public int getScanMode() {
         mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission");
         if (!isEnabledInternal())
             return BluetoothAdapter.SCAN_MODE_NONE;
@@ -968,7 +968,7 @@
         return stopDiscoveryNative();
     }
 
-    public synchronized boolean isDiscovering() {
+    public boolean isDiscovering() {
         mContext.enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission");
 
         String discoveringProperty = getProperty("Discovering", false);
@@ -2384,7 +2384,7 @@
         mDeviceProfileState.remove(address);
     }
 
-    synchronized String[] getKnownDevices() {
+    String[] getKnownDevices() {
         String[] bonds = null;
         String val = getProperty("Devices", true);
         if (val != null) {
diff --git a/docs/html/resources/resources-data.js b/docs/html/resources/resources-data.js
index 41a5a51..a35e684 100644
--- a/docs/html/resources/resources-data.js
+++ b/docs/html/resources/resources-data.js
@@ -468,6 +468,16 @@
     }
   },
   {
+    tags: ['sample', 'communication', 'new'],
+    path: 'samples/BluetoothHDP/index.html',
+    title: {
+      en: 'Bluetooth HDP Demo'
+    },
+    description: {
+      en: 'A sample application that demonstrates how to communicate with a Bluetooth Health Device Profile (HDP) device.'
+    }
+  },
+  {
     tags: ['sample', 'accountsync'],
     path: 'samples/BusinessCard/index.html',
     title: {
diff --git a/docs/html/resources/samples/images/BluetoothHDP.png b/docs/html/resources/samples/images/BluetoothHDP.png
new file mode 100644
index 0000000..c04cfde
--- /dev/null
+++ b/docs/html/resources/samples/images/BluetoothHDP.png
Binary files differ
diff --git a/docs/html/sdk/eclipse-adt.jd b/docs/html/sdk/eclipse-adt.jd
index 941f693..50b20ce 100644
--- a/docs/html/sdk/eclipse-adt.jd
+++ b/docs/html/sdk/eclipse-adt.jd
@@ -1,8 +1,8 @@
 page.title=ADT Plugin for Eclipse
-adt.zip.version=15.0.0
-adt.zip.download=ADT-15.0.0.zip
-adt.zip.bytes=6750682
-adt.zip.checksum=264f40a89a1107b0c422adae4e1ce0d1
+adt.zip.version=15.0.1
+adt.zip.download=ADT-15.0.1.zip
+adt.zip.bytes=6752327
+adt.zip.checksum=2c12a71d7124aa512b8ee016e19c0e69
 
 @jd:body
 
@@ -109,10 +109,44 @@
 </style>
 
 
+
 <div class="toggleable opened">
   <a href="#" onclick="return toggleDiv(this)">
         <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-img" height="9px"
 width="9px" />
+ADT 15.0.1</a> <em>(November 2011)</em>
+  <div class="toggleme">
+<dl>
+  <dt>Dependencies:</dt>
+  
+  <dd>ADT 15.0.1 is designed for use with <a href="{@docRoot}sdk/tools-notes.html">SDK Tools r15</a>.
+  If you haven't already installed SDK Tools r15 into your SDK, use the Android SDK and AVD Manager to
+  do so.</dd>
+  
+  <dt>Bug fixes:</dt>
+  <dd>
+    <ul>
+      <li>Fixed how source files are attached to library project <code>.jar</code> files.</li>
+      <li>Fixed how the <code>bin/</code> folder for library projects are refreshed. This ensures that parent projects pick up changes in library projects.</li>
+      <li>Fixed how a parent project's library container is updated when a library project is recompiled. This ensures that parent projects are
+      recompiled when code in a library project changes.</li>
+      <li>Fixed how <code>res/</code> folders are checked in library projects. This ensures that all <code>res</code> folders are properly included
+      even if Eclipse is not aware of them due to refresh issues.</li>
+      <li>Fixed issue that prevented <code>aapt</code> from running when editing certain XML files.</li>
+      <li>Fixed minor XML formatting issues.</li>
+    </ul>
+  </dd>
+</dl>
+
+</div>
+</div>
+
+
+
+<div class="toggleable closed">
+  <a href="#" onclick="return toggleDiv(this)">
+        <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px"
+width="9px" />
 ADT 15.0.0</a> <em>(October 2011)</em>
   <div class="toggleme">
 <dl>
diff --git a/docs/html/sdk/sdk_toc.cs b/docs/html/sdk/sdk_toc.cs
index afe6a6e..0ae2c6d 100644
--- a/docs/html/sdk/sdk_toc.cs
+++ b/docs/html/sdk/sdk_toc.cs
@@ -169,7 +169,7 @@
       <span style="display:none" class="zh-TW"></span>
       </h2>
     <ul>
-      <li><a href="<?cs var:toroot ?>sdk/eclipse-adt.html">ADT 15.0.0
+      <li><a href="<?cs var:toroot ?>sdk/eclipse-adt.html">ADT 15.0.1
       <span style="display:none" class="de"></span>
       <span style="display:none" class="es"></span>
       <span style="display:none" class="fr"></span>